-vivado および -advanced オプション - 2020.2 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2021-03-22
Version
2020.2 Japanese

--vivado オプション (--vivado オプション を参照) および --advanced オプション (--advanced オプション を参照) を使用すると、標準の Vivado 合成またはインプリメンテーションにさまざまな制御を適用できます。

  1. カスタム デザイン制約またはスクリプト化された操作を含む Tcl スクリプトを渡します。

    XDC デザイン制約をデザインのオブジェクトに割り当てる Tcl スクリプトを作成し、その Tcl スクリプトを合成およびインプリメンテーション ステップの PRE および POST Tcl スクリプト プロパティを使用して Vivado ツールに渡すことができます。Tcl スクリプトの詳細は、 『Vivado Design Suite ユーザー ガイド: Tcl スクリプト機能の使用』 (UG894) を参照してください。合成ステップは 1 つですが、インプリメンテーションには、 『Vivado Design Suite ユーザー ガイド: インプリメンテーション』 (UG904) に説明されているように複数のステップがあります。Vivado ツール用の Tcl スクリプトをステップの前に実行するか (PRE)、後に実行するか (POST) を指定できます。Tcl スクリプトを割り当てることができるステップは、SYNTH_DESIGNINIT_DESIGNOPT_DESIGNPLACE_DESIGNROUTE_DESIGNWRITE_BITSTREAM です。

    ヒント: さらに、--vivado.prop run.impl_1.steps.phys_opt_design.is_enabled=1 オプションを使用してイネーブルにできるオプションのステップがいくつかあります。イネーブルにすると、これらのステップにも Tcl PRE および POST スクリプトを指定できるようになります。

    次に、Tcl PRE および POST スクリプトの割り当て例を示します。

    --vivado.prop run.impl_1.STEPS.PLACE_DESIGN.TCL.PRE=/…/xxx.tcl

    この例では、PLACE_DESIGN ステップの前に実行するスクリプトを指定しています。コマンド ラインの各要素は、次のとおりです。

    • --vivado: Vivado ツールの指示子を指定する v++ のコマンド ライン オプションです。
    • prop プロパティ設定を渡すことを示すキーワードです。
    • run.: run プロパティを渡すことを指定するキーワードです。
    • impl_1.: run の名前です。
    • STEPS.PLACE_DESIGN.TCL.PRE: 指定する run プロパティです。
    • /.../xx.tcl: プロパティ値を指定します。
    ヒント: --advanced および --vivado オプションはどちらも v++ コマンド ラインで指定するか、コンフィギュレーション ファイルで指定してそのコンフィギュレーション ファイルを --config オプションで指定します。上記の例はコマンド ラインで指定する方法、下の例は設定ファイルで指定する方法を示します。詳細は、Vitis コンパイラのコンフィギュレーション ファイル を参照してください。
  2. run、ファイル、ファイルセットなどのデザイン オブジェクトにプロパティを設定します。
    これは上記の Tcl スクリプトを渡すのと似ていますが、この場合は複数のデザイン オブジェクトの異なるプロパティに値を渡します。たとえば、Performance_Explore のように特定のインプリメンテーション ストラテジを使用して、配置中のグローバル バッファー挿入をディスエーブルにするには、次のようにプロパティを定義します。
    [vivado]
    prop=run.impl_1.STEPS.OPT_DESIGN.ARGS.DIRECTIVE=Explore
    prop=run.impl_1.STEPS.PLACE_DESIGN.ARGS.DIRECTIVE=Explore
    prop=run.impl_1.{STEPS.PLACE_DESIGN.ARGS.MORE OPTIONS}={-no_bufg_opt}
    prop=run.impl_1.STEPS.PHYS_OPT_DESIGN.IS_ENABLED=true
    prop=run.impl_1.STEPS.PHYS_OPT_DESIGN.ARGS.DIRECTIVE=Explore
    prop=run.impl_1.STEPS.ROUTE_DESIGN.ARGS.DIRECTIVE=Explore

    上記の例では、インプリメンテーション run の STEPS.XXX.DIRECTIVE プロパティさまざまなステップに Explore という値を割り当てています。これらのプロパティを定義する構文は、次のとおりです。

    <object>.<instance>.property=<value>

    説明:

    • <object>: デザイン run、ファイル、またはファイルセット オブジェクトを指定します。
    • <instance>: オブジェクトの特定のインスタンスを指定します。
    • <property>: 割り当てるプロパティを指定します。
    • <value>: プロパティの値を指定します。

    この例では、オブジェクトは run、インスタンスはデフォルトのインプリメンテーション run (impl_1)、プロパティはさまざまなステップ名の引数で、この場合は DIRECTIVE、IS_ENABLED、および {MORE OPTIONS} です。コマンドの 構文の詳細は、--vivado オプション を参照してください。

  3. Vivado インプリメンテーション プロセスでオプションのステップを有効にする。

    ビルド プロセスは、Vivado 合成とインプリメンテーションを実行してデバイス バイナリを生成します。インプリメンテーション ステップの中には、デフォルトのビルド プロセスの一部として有効にして実行されるものもあれば、オプションで任意に有効にできるものもあります。

    オプションのステップは、--list_steps コマンドを使用するとリストでき、ます。これには、 vpl.impl.power_opt_designvpl.impl.post_place_power_opt_designvpl.impl.phys_opt_design、および vpl.impl.post_route_phys_opt_design が含まれます。

    オプションのステップは、--vivado.prop オプションを使用するとイネーブルにできます。たとえば、PHYS_OPT_DESIGN ステップをイネーブルにするには、コンフィギュレーション ファイルに次を含めます。

    [vivado]
    prop=run.impl_1.steps.phys_opt_design.is_enabled=1
    

    前述のようにオプションのステップが有効になっている場合、次の「--to_step または --from_step の実行実行」に示す -from_step/-to_step コマンドの一部として指定するか、--linkhook オプション の説明に従って、そのステップの前または後に Tcl スクリプトが実行されるようにします。

  4. パラメーターをツールに渡して処理を制御します。
    --vivado オプションでも、Vivado ツールにパラメーターを渡すことができます。パラメーターは、ツールを起動する前にツールの機能または動作を設定します。パラメーターを指定する構文は、次のとおりです。
    --vivado.param <object><parameter>=<value>

    キーワード param は、デザイン オブジェクトのプロパティではなく、Vivado ツールのパラメーターを渡すことを示します。適用するオブジェクト (<object>)、指定するパラメーター (<parameter>)、割り当てる値 (<value>) も指定する必要があります。

    次の例では、現在の Vivado プロジェクト writeIntermedateCheckpoints を値 1 で渡して、このブール型パラメーターをイネーブルにしています。

    --vivado.param project.writeIntermediateCheckpoints=1
  5. 合成およびインプリメンテーション中に生成されるレポートを管理する。
    重要: Vivado ツールで生成されるレポートをカスタマイズする際、v++ コマンド ラインで --save-temps も指定し、合成およびインプリメンテーション中に生成される一時ファイルおよびレポートが保存されるようにします。

    また、Vitis ツールのビルド プロセスの一部として実行する際は、Vivado ツールで生成される標準レポート以外の追加レポートを生成および保存すると有益な場合があります。生成されるレポートをカスタマイズするには、--advanced.misc オプションを次のように使用します。

    [advanced]
    misc=report=type report_utilization name synth_report_utilization_summary steps {synth_design} runs {__KERNEL__} options {}
    misc=report=type report_timing_summary name impl_report_timing_summary_init_design_summary steps {init_design} runs {impl_1} options {-max_paths 10} 
    misc=report=type report_utilization name impl_report_utilization_init_design_summary steps {init_design} runs {impl_1} options {} 
    misc=report=type report_control_sets name impl_report_control_sets_place_design_summary steps {place_design} runs {impl_1} options {-verbose} 
    misc=report=type report_utilization name impl_report_utilization_place_design_summary steps {place_design} runs {impl_1} options {} 
    misc=report=type report_io name impl_report_io_place_design_summary steps {place_design} runs {impl_1} options {} 
    misc=report=type report_bus_skew name impl_report_bus_skew_route_design_summary steps {route_design} runs {impl_1} options {-warn_on_violation} 
    misc=report=type report_clock_utilization name impl_report_clock_utilization_route_design_summary steps {route_design} runs {impl_1} options {} 
    

    コマンド ラインの構文は、次の例を使用して説明します。

    misc=report=type report_bus_skew name impl_report_bus_skew_route_design_summary steps {route_design} runs {impl_1} options {-warn_on_violation} 
    
    misc=report=
    --advanced.misc オプション (--advanced オプション を参照) を指定し、Vivado ツールのレポート設定を定義します。残りのコマンド ラインは、 『Vivado Design Suite Tcl コマンド リファレンス ガイド』 (UG835) に説明されている create_report_config Tcl コマンドのオプションを、名前と値のペアで指定しします。
    type report_bus_skew
    -report_type オプションに関連しており、レポート タイプを report_bus_skew に指定します。ほとんどの report_* Tcl コマンドをレポート タイプとして指定できます。
    name impl_report_bus_skew_route_design_summary
    -report_name オプションに関連しており、レポートの名前を指定します。これはレポートのファイル名ではありません。レポート名はツールで自動生成されるので、通常このオプションはスキップできます。
    steps {route_design}
    -steps オプションに関連しており、レポートを適用する合成およびインプリメンテーション ステップを指定します。レポートが各ステップで再生成されるようにレポートを複数のステップで使用するよう指定できます。その場合、レポート名は自動的に付けられます。
    runs {impl_1}
    -runs オプションに関連しており、レポートを適用するデザイン run の名前を指定します。
    options {-warn_on_violation}
    レポートを生成するときに使用する report_* Tcl コマンドのオプションを指定します。この例では、-warn_on_violationreport_bus_skew コマンドの機能です。
    重要: 指定したオプションが指定したレポート タイプに正しく適用可能なものであることはチェックされません。無効なオプションを指定すると、レポートが実行されたときにエラーが返されます。