--vivado オプション - 2022.1 日本語

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

Document ID
UG1393
Release Date
2022-05-25
Version
2022.1 日本語

–-vivado.XXX オプションは、デバイス バイナリ (.xclbin) の合成およびインプリメンテーション用の Vivado ツールを設定するために使用します。たとえば、生成するジョブの数、インプリメンテーション run に使用する LSF コマンド、または使用する特定のインプリメンテーション ストラテジを指定できます。最適化、配置、タイミングを設定したり、出力するレポートを指定したりできます。

重要: これらのオプションを最大限に活用するため、Vivado Design Suite の使用方法をよく理解しておいてください。詳細は、 『Vivado Design Suite ユーザー ガイド: インプリメンテーション』 (UG904) を参照してください。

--vivado.impl.jobs

--vivado.impl.jobs <arg>

Vivado Design Suite がデバイス バイナリをインプリメントするのに使用する並列ジョブ数を指定します。ジョブ数を増やすと、Vivado インプリメンテーション ステップを並列に処理することにより、ジョブを短時間で完了できます。

例:

v++ --link --vivado.impl.jobs 4

--vivado.impl.lsf

--vivado.impl.lsf <arg>

bsub コマンド ラインを LSF クラスターに渡す文字列として指定します。Vivado インプリメンテーションに IBM Platform Load Sharing Facility (LSF) を使用する場合に必要なオプションです。

例:

v++ --link --vivado.impl.lsf '{bsub -R \"select[type=X86_64]\" -N -q medium}'

--vivado.impl.strategies

--vivado.impl.strategies <arg>

Vivado インプリメンテーション run のストラテジ名のカンマ区切りのリストを指定します。ALL を使用すると、使用可能なすべてのインプリメンテーション ストラテジが実行されます。これにより、ビルド プロセス中にさまざまなインプリメンテーション ストラテジを同時に実行できるので、デザインのタイミングおよび配線の問題をより迅速に解決できます。

重要: すべてのインプリメンテーション ストラテジを実行すると、Vivado ツールで 30 回以上の実行が開始されることがあります。これは、リソースを大幅に消費する可能性があるため、推奨されません。回避するには、実行するストラテジのセットを定義し、コマンド キューを使用して、--vivado.impl.jobs または --vivado.impl.lsf コマンドなどの管理された方法でプロセス負荷を分散します。

--vivado.param

--vivado.param <arg>

FPGA のバイナリ (xclbin) の合成およびインプリメンテーションに使用する Vivado Design Suite のパラメーターを指定します。

ヒント: Vivado ツールで report_param Tcl コマンドを使用すると、使用可能なパラメーターがわかります。

--vivado.prop

--vivado.prop <arg>

FPGA のバイナリ (xclbin) の合成およびインプリメンテーションに使用する Vivado Design Suite のプロパティを指定します。

表 1. prop オプション
プロパティ名 有効な値 説明
vivado.prop <object_type>.<object_name>.<prop_name> データ型: さまざま Vivado ハードウェア コンパイル フローで使用されるプロパティを指定できます。

<object_type>run|fileset|file|project のいずれかにします。

<object_name> および <prop_name> 値については、 『Vivado Design Suite プロパティ リファレンス ガイド』 (UG912) を参照してください。

例:
vivado.prop run.impl_1.
{STEPS.PLACE_DESIGN.ARGS.MORE 
OPTIONS}={-no_bufg_opt}
vivado.prop fileset.
current.top=foo

<object_type>file に設定される場合、current はサポートされません。

<object type>run に設定される場合、それぞれ指定する必要はなく、__KERNEL__ に値 (ALL) を使用して、すべてのカーネルの run 最適化設定を指定できます。

たとえば、コマンド ラインからは次のように実行します。

v++ --link --vivado.prop run.impl_1.STEPS.PHYS_OPT_DESIGN.IS_ENABLED=true
--vivado.prop run.impl_1.STEPS.PHYS_OPT_DESIGN.ARGS.DIRECTIVE=Explore
--vivado.prop run.impl_1.STEPS.PLACE_DESIGN.TCL.PRE=/…/xxx.tcl
上記の例の場合、Vivado インプリメンテーション プロセスでオプションの PHYS_OPT_DESIGN ステップをイネーブルにし、それに Explore 指示子を設定し、PLACE_DESIGN ステップよりも前に実行する Tcl スクリプトを指定しています。
ヒント: Vivado 合成およびインプリメンテーション結果の管理 で説明するように、Vivado 合成およびインプリメンテーション プロセスには、そのステップよりも前に実行する Tcl プリスクリプトと後に実行する Tcl ポスト スクリプトを指定できます。これにより、さまざまなステップの前後に Tcl コマンドのプリプロセスとポストプロセスを挿入して、ビルド プロセスをカスタマイズできます。これらのスクリプトは、上記の例のように指定できます。

これらのオプションは、コンフィギュレーション ファイルの [vivado] セクション ヘッドの下で次のフォーマットを使用して指定できます。

[vivado]
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.PLACE_DESIGN.TCL.PRE=/…/xxx.tcl
重要: Vivado プロパティの中には、MORE OPTIONS など、名前にスペースを含むものもあります。Tcl 構文ではこれらのプロパティを波かっこ { } で囲む必要があります。ただし、--vivado オプションの波かっこの使用方法には注意が必要です。プロパティ名の一部ではなく、全体を囲む必要があります。正しい使用方法は、次のようになります。
--vivado_prop run.impl_1.{STEPS.PLACE_DESIGN.ARGS.MORE OPTIONS}={-no_bufg_opt}
次のように指定してしまうと、ビルド プロセス中にエラーになります。
--vivado.prop "run.impl_1.{STEPS.PLACE_DESIGN.ARGS.MORE OPTIONS}={-no_bufg_opt}"

--vivado.synth.jobs

--vivado.synth.jobs <arg>

Vivado Design Suite がデバイス バイナリを合成するのに使用する並列ジョブ数を指定します。ジョブ数を増やすと、Vivado 合成を並列に処理することにより、ジョブを短時間で完了できます。

例:

v++ --link --vivado.synth.jobs 4

--vivado.synth.lsf

--vivado.synth.lsf <arg>

bsub コマンド ラインを LSF クラスターに渡す文字列として指定します。Vivado 合成に IBM Platform Load Sharing Facility (LSF) を使用する場合に必要なオプションです。

例:

v++ --link --vivado.synth.lsf '{bsub -R \"select[type=X86_64]\" -N -q medium}'