v++ の一般オプション - 2023.2 日本語

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

Document ID
UG1393
Release Date
2023-12-13
Version
2023.2 日本語

v++ コマンドは、次に示すように、コンパイル、リンク、パッケージ処理に必要な多くのオプションをサポートします。

ヒント: Vitis コンパイラのコンフィギュレーション ファイル で説明するように、v++ コマンド ライン オプションはすべて、コンフィギュレーション ファイルに --config オプションで指定できます。たとえば --platform オプションは、コンフィギュレーション ファイルで次の構文を使用して指定できます。
platform=xilinx_u50_gen3x16_xdma_5_202210_1

--advanced

適用先
コンパイル、リンク、パッケージ

v++ コマンドで使用されるパラメーターおよびプロパティを指定します。詳細は、--advanced オプション を参照してください。

--board_connection

適用先
リンク
--board_connection

各 DIMM (Dual Inline Memory Module) コネクタ スロットの DIMM ボード ファイルを指定します。ボードは、ボード リポジトリに表示されるように、DIMM カードの Vendor:Board:Name:Version (vbnv) 属性を使用して指定します。

次に例を示します。

<DIMM_connector>:<vbnv_of_DIMM_board>

-c | --compile

適用先
コンパイル
--compile

コンパイルには必須ですが、--link および --package と共に使用することはできません。v++ -c を実行し、カーネル ソース ファイルから XO ファイルを生成します。

--clock

適用先
リンク

リンク プロセス中にカーネルにクロックを割り当てる方法を提供します。詳細は、--clock オプション を参照してください。

--config

適用先
コンパイル、リンク、パッケージ
--config <config_file> ...

v++ コマンド オプションを含むコンフィギュレーション ファイルを指定します。コンフィギュレーション ファイルは、コンパイル、リンク、またはパッケージ ストラテジを取り込むために使用するファイルで、v++ コマンド ラインで参照することにより簡単に再利用できます。また、コンフィギュレーション ファイルを使用すると、v++ コマンド ラインで指定する必要があるのは、コンフィギュレーション ファイルで指定されていないオプションのみなので、コマンド ラインが簡潔になります。詳細は、Vitis コンパイラのコンフィギュレーション ファイル を参照してください。

ヒント: v++ コマンドに複数のコンフィギュレーション ファイルを指定できます。使用するファイルごとに個別の --config オプションが必要となります。次に例を示します。
v++ -l --config system.cfg --config vivado.cfg ...

--connectivity

適用先
リンク

リンク プロセス中にデバイス バイナリの重要なアーキテクチャの詳細を指定するために使用されます。詳細は、--connectivity オプション を参照してください。

--custom_script

適用先
コンパイル、リンク
--custom_script <kernel_name>:<file_name>

ビルド プロセスのコンパイル時またはリンク時に使用するカスタム Tcl スクリプトを指定します。--export_script オプションと共に使用し、ビルド プロセスをカスタマイズするスクリプトを作成、編集、および実行します。

このオプションを v++ --compile コマンドで使用すると、指定したカーネルのコンパイルに使用するカスタム HLS スクリプトを指定できます。このスクリプトで、Vitis HLS ツールを変更またはカスタマイズできます。--export_script オプションを使用して Vitis HLS でカーネルのコンパイルに使用する Tcl スクリプトを抽出し、必要に応じてスクリプトを変更して、--custom_script オプションを使用して再適用することにより、カーネルのビルド プロセスをより良く制御できます。

カーネル名とそのカーネルに適用する Tcl スクリプトのパスを指定します。次に例を示します。
v++ -c -k kernel1 -export_script ...
*** Modify the exported script to customize in some way, then resubmit. ****
v++ -c --custom_script kernel1:./kernel1.tcl ...

ハードウェア ビルド ターゲット (-t hw) の v++ --link コマンドと一緒に使用する場合、このオプションで編集した run_script_map.dat ファイルへの絶対パスを指定できます。このファイルには、ビルド プロセス段階のリストと、それらの段階で Vitis および AMD Vivado™ ツールにより実行される Tcl スクリプトが含まれます。run_script_map.dat を変更し、ビルド プロセスのそれらの段階で実行するカスタム Tcl スクリプトを指定できます。Tcl スクリプトをカスタマイズするには、次の手順に従います。

  1. 次に示すように --export_script オプションを使用してビルド プロセスを実行します。
    v++ -t hw -l -k kernel1 -export_script ...
  2. カスタマイズする段階で run_script_map.dat により参照される Tcl スクリプトをコピーします。たとえば、合成またはインプリメンテーションに指定されている Tcl ファイルをコピーします。ファイルは、プロジェクト ビルド構造外の別の場所にコピーする必要があります。
  3. Tcl スクリプトにコマンドを追加したり既存のコマンドを変更したりして、新しいカスタム Tcl スクリプトを作成します。
  4. run_script_map.dat を変更し、指定のインプリメンテーション段階に新しいカスタム スクリプトを設定します。
  5. --custom_script オプションを使用して run_script_map.dat ファイルへの絶対パスを指定し、ビルド プロセスを再起動します。
    v++ -t hw -l -k kernel1 -custom_script /path/to/run_script_map.dat
重要: カスタム合成実行スクリプトを編集する際は、dont_touch.xdc ファイルに関連する行をコメントアウトするか、行を変更して新しい dont_touch.xdc ファイルを指定する必要があります。コメントアウトまたは編集する行は、次のとおりです。
read_xdc dont_touch.xdc
set_property used_in_implementation false [get_files dont_touch.xdc]

このようにしないと、合成で dont_touch.xdc ファイルがないことを示すエラー メッセージが表示されます。

--debug

適用先
リンク

ハードウェア デザインへのデバッグ IP コア挿入の追加を指定します。詳細は、--debug オプション を参照してください。

-D | --define

適用先
コンパイル、リンク
--define <arg>

有効なマクロ名と定義のペアを <name>=<definition> という形式で指定します。

定義付きマクロとして名前を前もって定義します。このオプションは v++ プリプロセッサに渡されます。

--export_archive

適用先
リンク
--export_archive

このコマンドは、.xclbin デバイス バイナリや .xsa 固定プラットフォームではなく、Vitis メタデータ アーカイブ ファイル (.vma) をリンク プロセスから生成します。このコマンドと .vma ファイルの使用フローは、Vitis を Vivado にエクスポートするフロー を参照してください。

--export_script

適用先
コンパイル、リンク、パッケージ
--export_script

ビルド プロセスをスクリプト ファイルをエクスポートする時点まで実行して停止します。ビルド プロセスは、--custom_script オプションを使用して完了する必要があります。これにより、エクスポートされたスクリプトを変更し、カスタム スクリプトを使用してビルドを再実行できます。

このオプションを v++ --compile コマンドで使用すると、指定したカーネルの Tcl スクリプト ファイル <kernel_name>.tcl がエクスポートされます。このスクリプトは Vitis HLS を実行するのに使用できますが、実際に HLS が起動する前にビルド プロセスが停止します。これによりビルド プロセスを中断できるので、次の例に示すように、生成された Tcl スクリプトを編集し、--custom_script オプションを使用してビルド プロセスを再開できます。

v++ -c -k kernel1 -export_script ...
ヒント: このオプションは OpenCL カーネルのソフトウェア エミュレーション (–t sw_emu) ではサポートされません。

ハードウェア ビルド ターゲット (-t hw) に対して v++ --link コマンドでこのオプションを使用すると、run_script_map.dat ファイルが現在のディレクトリにエクスポートされます。このファイルには、ビルド プロセス段階のリストと、それらの段階で Vitis および Vivado ツールにより実行される Tcl スクリプトが含まれます。Tcl スクリプトを編集してビルド プロセスをカスタマイズし、--custom_script オプションを使用してビルド プロセスを再開できます。run_script_map.dat ファイルをエクスポートするには、次のコマンドを使用します。

v++ -l -t hw -export_script ...

--freqhz

適用先
コンパイルおよびリンク
--freqhz <value>::<cu>[.<clk_pin>][,<cu_n>[.<clk_pin_n>]]

コンパイル時にコンポーネントに対して、またはリンク時にシステムに対して周波数を指定します。--freqhz オプションは、デフォルトのクロック周波数を上書きし、コンパイル時およびリンク時に指定された周波数を適用します。

クロック周波数 (ヘルツ) と、関連付けられている演算ユニット名のリストおよびオプションでそのクロック ピンを指定します。

<value>
ヘルツで指定する必要があります。たとえば、150 MHz は 150000000 と指定します。
[cu[.clk_pin]]
オプションで、指定されたクロック周波数の PL カーネルまたは PL カーネルのインスタンス (演算ユニット) ターゲットを指定します。これにより、カーネルのインスタンスごとに異なる周波数を指定できます。また、.clk_pin 構文を追加することで、CU のクロック ピンを指定することもできます。
1 つの --freqhz オプションで 1 つの周波数値を指定して、複数の CU ピンとクロック ピンを追加できます。

次に例を示します。

v++ -l -t hw –platform <pfm_name> --freqhz=200000000:mm2s \
--freqhz=300000000:s2mm –config system.cfg
重要: --freqhz オプションは、AI エンジン、PL カーネル、またはシステム デザインでのクロックの指定に関連するさまざまな方法やコマンドを統合するために提供されています。--freqhz オプションは、ほかのクロック コマンドよりも優先され、複数のコマンドが使用されている場合、v++ がエラーを返すことがあります。

--from_step

適用先
コンパイル、リンク、パッケージ
--from_step <arg>

Vitis コンパイラ ビルド プロセスのステップ名を指定しすると、そのステップからビルド プロセスを開始できます。中間結果がある場合、リンク プロセスが早送りされて、可能であれば指定した段階から実行を開始します。--to_step を使用してビルドを実行し、プロジェクトを何らかの方法で変更した後、そのビルド プロセスを --from_step で再開できます。--list_step オプションを使用すると、有効なステップのリストが表示されます。

重要: --to_step/--from_step は順次のビルド オプションで、必ず --from_step を使用して、ビルドを開始するときに使用したのと同じプロジェクト ディレクトリ内のビルドを --to_step で再開します。

次に例を示します。

v++ --link --from_step vpl.update_bd

-g

適用先
コンパイル、リンク
-g

ソフトウェア エミュレーション中にカーネルをデバッグするコードを生成します。このオプションを使用すると、カーネルがコンパイルされる際に、カーネルをデバッグしやすくする機能が追加されます。

次に例を示します。

v++ -g ...

-h | --help

適用先
コンパイル、リンク、パッケージ
-h

v++ コマンドのヘルプを表示します。次に例を示します。

v++ -h

--hls

適用先
コンパイル

カーネル コンパイル時の Vitis HLS 合成プロセスのコマンドを指定します。

重要: v++ --mode hls が導入されたので、--hls オプション はソフトウェア エミュレーション用の v++ -c -k モードにのみ使用される必要があります。v++ --mode hls のコマンドは、v++ モードの HLS で定義されています。

-I | --include

適用先
コンパイル、リンク
--include <arg>

ヘッダー ファイルを検索するディレクトリのリストに指定のディレクトリを追加します。このオプションは Vitis コンパイラのプリプロセッサに渡されます。

--input_files <input_file>

適用先
コンパイル、リンク、パッケージ
--input_files <input_file1> <input_file2> ...

v++ コンパイル用の OpenCL または C/C++ カーネル ソース ファイル、または v++ リンク用のザイリンクス オブジェクト (XO) ファイルを指定します。

次に例を示します。

v++ -l --input_files kernel1.xo kernelRTL.xo ...
ヒント: 入力ファイルは、--input_files オプションを指定せずに、任意の位置で指定することもできます。次に例を示します。
v++ -l kernel1.xo kernelRTL.xo ...

--interactive

適用先
リンク
--interactive [ impl ]

v++ で必要な環境を設定し、Vivado ツールを起動してインプリメンテーション プロジェクトを開きます。

Vivado ツールをインタラクティブに起動するので、リンク プロセスは vpl ステップ後に停止します。これは、v++ コマンドで --to_step vpl オプションを使用するのと同じことです。

Vivado ツールでのインタラクティブな操作が終了し、デザイン チェックポイント (DCP) を保存したら、v++ --from_step rtdgen を使用して Vitis コンパイラのリンク プロセスを再開するか、または --reuse_impl オプションか --reuse_bit オプションを使用して、インプリメント済みの DCP ファイルを読み込むことができます。

次に例を示します。

v++ --interactive impl
## Interactively use the Vivado tool
v++ --from_step rtdgen

-k | --kernel

適用先
コンパイル
--kernel <arg>

入力ファイルから指定したカーネルのみをコンパイルします。1 つの v++ コマンドに使用できる -k オプションは 1 つだけです。有効な値には、入力 .cl または .c/.cpp カーネル ソース コードからコンパイルされるカーネルの名前が含まれます。

これは、C/C++ カーネルの場合は必須ですが、OpenCL カーネルの場合はオプションです。OpenCL では、kernel キーワードを使用してカーネルが識別されます。C/C++ カーネルの場合、-k または --kernel を使用してカーネルを識別する必要があります。

OpenCL ソース ファイルを -k オプションなしでコンパイルすると、ファイル内のカーネルすべてがコンパイルされます。特定のカーネルをターゲットにするには、-k コマンドを使用します。

次に例を示します。

v++ -c --kernel vadd

--kernel_frequency

重要: このコマンドは、スケーラブル クロックを持つ Alveo プラットフォームのカーネル周波数を指定するために使用します。Alveo およびエンベデッド プラットフォームの両方を含む固定クロックを使用したプラットフォームの場合は、クロック管理に --clock オプション を使用します。詳細は、クロック周波数の管理 を参照してください。
適用先
リンク
--kernel_frequency <freq> | <clockID>:<freq>[<clockID>:<freq>]

カーネルにユーザー定義のクロック周波数 (MHz) を指定し、ハードウェア プラットフォームで定義されていたデフォルトのクロック周波数を上書きします。<freq> は 1 つのクロックのみを含むカーネルのクロック周波数 1 つを指定するのに使用します。2 つのクロックをサポートするカーネルの場合は <clockID> および <freq> を指定します。

1 つのカーネル クロックのみを含むプラットフォームのクロックを上書きする構文では、単に周波数 (MHz) を指定します。

v++ --kernel_frequency 300

2 つのクロックを含むプラットフォームで特定のクロックの周波数を変更するには、クロック ID と周波数を指定します。

v++ --kernel_frequency 0:300

マルチクロック プラットフォームで両方のクロックの周波数を変更するには、各クロックの ID とその周波数を指定します。次に例を示します。

v++ --kernel_frequency 0:300|1:500
ヒント: デザインのインプリメンテーション時に Vivado 配置配線ツールが周波数仕様を満たすことができない場合、ツールがクロック周波数を達成可能な周波数にスケーリングすることがあります。

-l | --link

適用先
リンク
--link

コンパイル後のリンク プロセスに必須のオプションで、--compile または --package と共に使用することはできません。リンク モードで v++ を実行し、XO 入力ファイルをリンクし、xclbin または .xsa 出力ファイルのいずれかまたは両方を生成します。

重要: システムのリンク で説明するように、--link オプションは、ほとんどのプラットフォームの場合 .xclbin ファイルを生成しますが、AMD Versal™ プラットフォームの場合は .xsa ファイルを生成します。

--linkhook

適用先
リンク

インプリメンテーション フローの特定のステップで実行する Tcl スクリプトを指定することにより、デバイス バイナリのビルド プロセスをカスタマイズできます。詳細は、--linkhook オプション を参照してください。

--list_steps

適用先
コンパイル、リンク、パッケージ
--list_steps

指定したターゲットに有効な実行ステップをリストします。このオプションは、--from_step または --to_step オプションで使用可能なステップをリストします。このコマンドには、次のオプションを使用する必要があります。

  • -t | --target [sw_emu | hw_emu | hw ]:
  • [ --compile | --link ]: 指定したビルド ターゲットに対するコンパイルまたはリンク プロセスのいずれかからのステップのリストを指定します。

次に例を示します。

v++ -t hw_emu --link --list_steps

--log_dir

適用先
コンパイル、リンク、パッケージ
--log_dir <dir_name>

ログ ファイルを保存するディレクトリを指定します。--log_dir ディレクトリを指定しない場合は、ログファイルは ./_x/logs に保存されます。詳細は、v++ コマンドの出力ディレクトリ を参照してください。

次に例を示します。

v++ --log_dir /tmp/myProj_logs ...

--message_rules

適用先
コンパイル、リンク、パッケージ
--message-rules <file_name>

メッセージを制御するルールを含むメッセージ ルール ファイルを指定します。詳細は、メッセージ ルール ファイルの使用 を参照してください。

次に例を示します。

v++ --message_rules ./minimum_out.mrf ...

--mode

適用先
コンパイル

v++ コマンドのコンパイル モードを指定します。指定できる値は aie または hls です。v++ --mode aie は、AI エンジン コンポーネントを作成し ( 『AI エンジン ツールおよびフロー ユーザー ガイド』 (UG1076) を参照)、コンフィギュレーション コマンド (v++ モードの AI エンジン を参照) と一緒に使用できます。v++ --mode hls は、で説明されるように、HLS コンポーネントを作成し ( Vitis HLS ユーザー ガイド』 (UG1399) を参照)、コンフィギュレーション ファイル コマンド (v++ モードの HLS) と一緒にに使用できます。

--no_ip_cache

適用先
リンク
--no_ip_cache

Vivado 合成のアウト オブ コンテキスト (OOC) 合成のために IP キャッシュをディスエーブルにします。IP キャッシュ リポジトリをディスエーブルにすると、各ビルドごとに IP 合成結果を生成し直す必要があるので、ビルド時間が増える可能性があります。ただし、クリーン ビルドにもなるので、IP の早期の結果が削除されます。

次に例を示します。

v++ --no_ip_cache ...

-O | --optimize

適用先
リンク
--optimize <arg>

Vivado インプリメンテーション結果の最適化レベルを指定します。有効な最適化の値は、次のとおりです。

  • 0: デフォルトの最適化です。コンパイル時間が短縮されます。
  • 1: Vivado インプリメンテーション ストラテジ (Power_DefaultOpt) を実行して、消費電力を削減するように最適化します。デザインのビルド時間は長くなります。
  • 2: カーネル速度を上げるように最適化します。ビルド時間が長くなりますが、インプリメンテーションに PHYS_OPT_DESIGN ステップが追加されるので、生成されるカーネルのパフォーマンスは向上します。
  • 3: 生成されたコードのパフォーマンスは最高レベルになりますが、コンパイル時間はかなり長くなります。このオプションは合成時のリタイミングを指定し、インプリメンテーション中に PHYS_OPT_DESIGN および POST_ROUTE_PHYS_OPT_DESIGN の両方をイネーブルにします。
  • s: サイズに合わせてデザインを最適化します。Area_Explore インプリメンテーション ストラテジを実行することで、カーネルの使用するデバイスのロジック リソースが削減されます。
  • quick: Vivado インプリメンテーション時間は短くなりますが、カーネルのパフォーマンスは低下し、カーネルで使用されるリソースも多くなります。これにより、合成とインプリメンテーションの両方の Flow_RuntimeOptimized ストラテジがイネーブルになります。

次に例を示します。

v++ --link --optimize 2

-o | --output

適用先
コンパイル、リンク、パッケージ
-o <output_name>

v++ コマンドで生成された出力ファイルの名前を指定します。コンパイル (-c) プロセスの出力ファイル名には、ザイリンクス オブジェクト ファイルの場合は XO ファイル拡張子が付いている必要があります。リンク (-l) プロセスの出力ファイル名には、最後に .xclbin または .xsa が付いている必要があります。--export_archive コマンドの場合は、最後に .vma が必要です。--package コマンドの場合、入力に .xsa が必要で、.xclbin が出力されます。

次に例を示します。

v++ -o krnl_vadd.xo

--o または --output を指定しない場合は、出力ファイル名デフォルトで次のようになります。

Compilation (コンパイル)
a.o
リンク
a.xclbin (Versal プラットフォームの場合 a.xsa)
パッケージ
a.xclbin

-p | --package

適用先
パッケージ

エミュレーションの実行またはハードウェアでの実行用にデザインをパッケージ化する Vitis コンパイラのオプションを指定します。詳細は、--package オプション を参照してください。

--part

適用先
コンパイル、リンク、パッケージ
--part <part_name>

デザインのコンポーネントをコンパイル、リンク、パッケージングする際に使用する AMD パーツを指定します。--part コマンドは、フル プラットフォームや XSA ではなく、デバイスを指定するために使用できます。v++ --link --part <Versal part only> を指定すると、指定された AMD Versal™ デバイス用のシンプルなベース ハードウェア プラットフォーが生成されます。

次に例を示します。

v++ --part xcvc1902-vsva2197-2MP-e-S --target hw_emu ...
重要: --part を使用する必要があるのは、プラットフォームの変更が必要ない将来のプラットフォームのソフトウェア (AI エンジン および PL カーネル) の開発にのみです。Vivado でプラットフォームを作成し、ソフトウェア開発にハードウェアの変更が必要な場合に使用します。Versal デザインの --part のデフォルト クロックは 300 MHz です。デフォルト値は、クロック周波数の管理 で説明されるように、別のプロセスで決定されます。

-f | --platform

適用先
コンパイル、リンク、パッケージ
--platform <platform_name>

サポートされるアクセラレーション プラットフォームの名前を $PLATFORM_REPO_PATHS 環境変数で指定されているように指定するか、.xpfm プラットフォーム ファイルへの完全パスを指定します。そのバージョンでサポートされるプラットフォームのリストは、Vitis ソフトウェア プラットフォームのリリース ノート を参照してください。

このオプションは、ビルド プロセスのターゲット AMD プラットフォームを定義するため、コンパイルおよびリンクの両方で必要です。--platform オプションには、プラットフォーム名または xpfm プラットフォーム ファイルへのパス (完全パスまたは相対パス) を指定できます。

重要: 指定したプラットフォームおよびビルド ターゲットは、コンパイル、リンク、およびパッケージで同じである必要があります。コンパイルで XO ファイルを生成する際に指定した --platform および -t オプションは、リンクおよびパッケージで使用する --platform および -t と同じである必要があります。詳細は、platforminfo ユーティリティを参照してください。

次に例を示します。

v++ --platform xilinx_u50_gen3x16_xdma_5_202210_1 ...

--profile

適用先
コンパイル、リンク

ザイリンクス ランタイム 環境を設定するオプションを指定し、アプリケーションのパフォーマンス情報を取得します。詳細は、--profile オプション を参照してください。

--remote_ip_cache

適用先
リンク
--remote_ip_cache <dir_name>

IP のアウト オブ コンテキスト (OOC) 合成中に使用する Vivado 合成のリモート IP キャッシュ ディレクトリを指定します。OOC 合成を使用すると、Vivado 合成ツールでイテレーション中に変更されなかった IP の合成結果が再利用できるようになります。これにより、合成結果を再利用できるので .xclbin ファイルのビルドに必要な時間を削減できます。

--remote_ip_cache オプションを指定しない場合、IP キャッシュは v++ が起動された現在の作業ディレクトリに書き込まれます。このオプションを使用すると、別のキャッシュ ディレクトリを指定して、たとえば複数のプロジェクトで使用したりできます。

次に例を示します。

v++ --remote_ip_cache /tmp/IP_cache_dir ...

--report_dir

適用先
コンパイル、リンク、パッケージ
--report_dir <dir_name>

レポート ファイルを保存するディレクトリを指定します。--report_dir ディレクトリを指定しない場合は、レポート ファイルは ./_x/reports に保存されます。詳細は、v++ コマンドの出力ディレクトリ を参照してください。

次に例を示します。

v++ --report_dir /tmp/myProj_reports ...

-R | --report_level

適用先
コンパイル、リンク、パッケージ
--report_level <arg>

有効なレポート レベルは 012estimate です。

これらのレポート レベルのマップは、optMap.xml ファイルに含まれます。インストールされた optMap.xml を無効にして、カスタム レポート レベルを定義できます。

  • -R0 を指定すると、Vivado インプリメンテーション中に中間デザイン チェックポイント (DCP) は生成されません。配線後のタイミング レポートは生成されます。
  • -R1 を指定すると、-R0 で生成されるものすべてに加え、report_failfast pre-opt_designreport_failfast post-opt_design、すべての中間 DCP が生成されます。
  • -R2 を指定すると、-R1 で生成されるものすべてに加え、report_failfast post-route_design が実行されます。
  • -Restimate を指定すると、design.xml データ ファイルが存在しない場合は Vitis HLS で生成され、システム見積もりレポート で説明するように、システム見積もりレポートが生成されます。
    ヒント: このオプションは、design.xml がデフォルトでは生成されないソフトウェア エミュレーション ターゲット (-t sw_emu) の場合に便利です。

次に例を示します。

v++ -R2 ... 

--reuse_bit

--reuse_bit <arg>
適用先
リンク

生成されたビットストリーム ファイル (.bit) のパスとファイル名を指定して、デバイス バイナリ ファイル (xclbin) を生成する際に使用されるようにします。--to_step を使用して Vivado をインタラクティブに起動する方法 で説明されるように、--to_step オプションを使用すると、Vitis ビルド プロセスを中断し、合成済みデザインを手動で配置配線して、ビットストリームを生成できます。

重要: --reuse_bit オプションは、シーケンシャル ビルド オプションで、--reuse_bit を使用して Vitis コンパイラを再開する際は、ビルドを開始する際に指定した --to_step と同じプロジェクト ディレクトリを使用する必要があります。

次に例を示します。

v++ --link --reuse_bit ./project.bit

--reuse_impl

--reuse_impl <arg>
適用先
リンク

インプリメント済みデザイン チェックポイント (DCP) のパスとファイル名を指定して、デバイス バイナリ ファイル (xclbin) を生成する際に使用されるようにします。リンク プロセスは指定したインプリメント済み DCP を使用して FPGA ビットストリームを抽出し、xclbin を生成します。以前に完了した Vitis ビルドで作成された Vivado プロジェクトを手動で編集したり、--to_step オプションを指定して、Vitis ビルド プロセスを中断して、手動で合成済みデザインを配置配線したりできます。これにより、Vivado Design Suite をインタラクティブに使用してデザインを変更をし、ビルド プロセスでその DCP を使用できます。

重要: --reuse_impl オプションはインクリメンタル ビルド オプションで、--reuse_impl を使用して Vitis コンパイラ再開する際は、--to_step を使用してビルドを開始したのと同じプロジェクト ディレクトリを使用する必要があります。

次に例を示します。

v++ --link --reuse_impl ./manual_design.dcp

-s | --save-temps

適用先
コンパイル、リンク、パッケージ
--save-temps

v++ コマンドでコンパイルおよびリンク プロセス中に作成された中間ファイル/ディレクトリを保存します。--temp_dir オプションを使用すると、中間ファイルを保存するディレクトリを指定できます。

ヒント: このオプションは、ビルド プロセス中に発生した問題をデバッグするのに便利です。

次に例を示します。

v++ --save-temps ...

-t | --target

適用先
コンパイル、リンク、パッケージ
-t [ sw_emu | hw_emu | hw ]

ビルド ターゲットでの作業 で説明するようにビルド ターゲットを指定します。ビルド ターゲットにより、コンパイルおよびリンク プロセスの結果が決まります。デバッグおよびテスト用にエミュレーション モデルをビルドするか、ハードウェアで実行する実際のシステムをビルドするかを選択できます。ビルド ターゲットは -t で指定しない場合はデフォルトで hw になります。

重要: 指定したプラットフォームおよびビルド ターゲットは、コンパイルおよびリンクで同じである必要があります。コンパイルで XO ファイルを生成する際に指定した --platform および -t オプションは、リンクで使用する --platform および -t と同じである必要があります。

有効な値は、

  • sw_emu: ソフトウェア エミュレーション
  • hw_emu: ハードウェア エミュレーション
  • hw: ハードウェア

次に例を示します。

v++ --link -t hw_emu

--temp_dir

適用先
コンパイル、リンク、パッケージ
--temp_dir <dir_name>

ビルド プロセス中に作成された一時ファイルを保存するディレクトリを指定します。--save-temps オプションを指定しておかない場合、一時的な結果は v++ コンパイラで書き出された後削除されます。

--temp_dir ディレクトリを指定しない場合は、./_x/temp に一時ファイルが保存されます。詳細は、v++ コマンドの出力ディレクトリ を参照してください。

次に例を示します。

v++ --temp_dir /tmp/myProj_temp ...

--to_step

適用先
コンパイル、リンク、パッケージ
--to_step <arg>

ステップ名をコンパイルまたはリンク プロセスに変更し、そのステップからビルド プロセスを実行します。--list_step オプションを使用すると、有効なコンパイルまたはリンク ステップのリストが表示されます。

ビルド プロセスは、指定したステップが終了した後に終了します。この段階で、ビルド結果を処理できるようになります。たとえば、HLS プロジェクトや Vivado Design Suite プロジェクトに手動でアクセスして、ビルド フローに戻る前に特定のタスクを実行するには、v++ コマンドに --from_step オプションを指定します。

重要: --to_step/--from_step は順次のビルド オプションで、必ず --from_step を使用して、ビルドを開始するときに使用したのと同じプロジェクト ディレクトリ内のビルドを --to_step で再開します。

--to_step を使用する場合は、--save-temps も指定して、Vivado ツールで必要な一時ファイルを保存する必要があります。次に例を示します。

v++ --link --save-temps --to_step vpl.update_bd

--user_board_repo_paths

適用先
リンク
--user_board_repo_paths

DIMM ボード ファイルの既存のユーザー ボード リポジトリを指定します。この値は Vivado プロジェクトの board_part_repo_paths プロパティの冒頭に追加されます。

--user_ip_repo_paths

適用先
リンク
--user_ip_repo_paths <repo_dir>

カーネル デザインで使用される IP を最初に検索するユーザー IP リポジトリ パスのディレクトリを 1 つまたは複数指定します。この値は、Vivado ツールで IP コアを見つけるため、ip_repo_paths の冒頭に追加されます。これらの指定されたパスからの IP 定義は、ハードウェア プラットフォーム (.xsa) またはAMD IP カタログからの IP リポジトリより前に使用されます。

ヒント: 複数の --user_ip_repo_paths コマンドを v++ コマンド ラインに指定できます。

次に、ビルド プロセス中に検出される IP 定義の優先順序を上からリストします。

注記: 次のエントリすべてで、複数のディレクトリを含めることができます。
  • システム ハードウェア ビルド (-t hw):
    1. --user_ip_repo_paths からの IP 定義。
    2. カーネル IP 定義 (vpl --iprepo オプションの値)。
    3. プラットフォームに関連付けられた IP リポジトリからの IP 定義。
    4. インストール ディレクトリからの IP キャッシュ (例: <Install_Dir>/Vitis/2019.2/data/cache/)。
    5. インストール ディレクトリからのAMD IP カタログ (例: <Install_Dir>/Vitis/2019.2/data/ip/)
  • ハードウェア エミュレーション ビルド (-t hw_emu):
    1. --user_ip_repo_paths からの IP 定義およびユーザー エミュレーション IP リポジトリ。
    2. カーネル IP 定義 (vpl --iprepo オプションの値)。
    3. プラットフォームに関連付けられた IP リポジトリからの IP 定義。
    4. インストール ディレクトリからの IP キャッシュ (例: <Install_Dir>/Vitis/2019.2/data/cache/)。
    5. $::env(XILINX_VITIS)/data/emulation/hw_em/ip_repo
    6. $::env(XILINX_VIVADO)/data/emulation/hw_em/ip_repo
    7. インストール ディレクトリからのAMD IP カタログ (例: <Install_Dir>/Vitis/2019.2/data/ip/)

次に例を示します。

v++ --user_ip_repo_paths ./myIP_repo ...

-v | --version

-v

v++ コマンドのバージョンおよびビルド情報を表示します。次に例を示します。

v++ -v

--vivado

適用先
リンク

デバイス バイナリをビルドする前に、Vivado 合成およびインプリメンテーション環境を設定するプロパティーとパラメーターを指定します。詳細は、--vivado オプション を参照してください。