Vitis コンパイラの一般オプション - 2020.1 Japanese

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

Document ID
UG1393
Release Date
2020-08-20
Version
2020.1 Japanese

Vitis コンパイラでは、コンパイル プロセスとリンク プロセスで多数のオプションがサポートされます。これらのオプションにはさまざまな機能があり、コンパイルまたはリンクのいずれかにのみ適用できるものもあれば、コンパイルとリンクの両方に対して設定する必要のあるものもあります。

ヒント: Vitis コンパイラのコンフィギュレーション ファイル で説明するように、Vitis コンパイラ オプションはすべて、--config オプションで指定する設定ファイルに含めることができます。たとえば --platform オプションは、設定ファイルで次の構文を使用して、セクション ヘッドなしで指定できます。
platform=xilinx_u200_xdma_201830_2

--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 と共に使用することはできません。v++ -c を実行し、カーネル ソース ファイルから .xo ファイルを生成します。

--config

適用先
コンパイルおよびリンク
--config <config_file> ...

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

v++ コマンドに複数の設定ファイルを指定できます。使用するファイルごとに個別の --config オプションが必要となります。次に例を示します。

v++ -l --config cfg_connectivity.txt --config cfg_vivado.txt ...

--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 および 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 ファイルがないことを示すエラー メッセージが表示されます。

-D | --define

適用先
コンパイルおよびリンク
--define <arg>

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

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

--dk

適用先
コンパイルおよびリンク
--dk <arg>

ハードウェア デバッグ用に FPGA バイナリ (.xclbin) へのデバッグ IP コアの挿入をイネーブルにします。このオプションでは、追加するデバッグ コアのタイプと、 ChipScope™ で監視する計算ユニットおよびインターフェイスを指定できます。--dk オプションを使用すると、デバッグおよびパフォーマンス監視目的に、AXI プロトコル チェッカーと System ILA コアをカーネルへのインターフェイスに接続できます。

System Integrated Logic Analyzer (ILA) を使用すると、トランザクション レベルでアクセラレーション カーネルまたはハードウェアで実行される関数を表示できます。System ILA コアでは、特定の AXI トラフィックをキャプチャして表示させることもできます。

AXI Protocol Checker デバッグ コアは、アクセラレーション カーネル上の AXI4 インターフェイスを監視します。CU のインターフェイスに接続すると、プロトコル違反をアクティブにチェックし、違反が発生した場合にそれを通知します。

<arg> に有効な値は、次のとおりです。

[protocol|chipscope|list_ports]:<cu_name>:<interface_name>

説明:

  • protocol: デザインに AXI Protocol Checker デバッグ コアを追加します。all キーワードまたは <cu_name>:<interface_name> を使用して指定できます。
  • chipscope: デザインに System Integrated Logic Analyzer デバッグ コアを追加します。chipscope オプションには all キーワードは使用できないので、<cu_name> を指定する必要があり、オプションで <interface_name> を指定することもできます。
  • list_ports は、現在のデザインの有効な計算ユニットとポート組み合わせのリストを表示します。この情報は、コマンド ラインまたはコンフィギュレーション ファイルを作成するのに役立ちます。
  • <cu_name> には --dk オプションを適用する計算ユニットを指定します。
  • <interface_name> はオプションです。指定しない場合、指定した CU のすべてのポートが解析されます。

次に例を示します。

v++ --link --dk chipscope:vadd_1

--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++ -t hw -l -k kernel1 -export_script ...

--from_step

適用先
コンパイルおよびリンク
--from_step <arg>

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

重要: --from_step および --to_step オプションはインクリメンタル ビルド オプションで、--from_step を使用して Vitis コンパイラを再起動する際は、--to_step を使用してビルドを開始したのと同じプロジェクト ディレクトリを使用する必要があります。
次に例を示します。
v++ --link --from_step vpl.update_bd

-g | --debug

適用先
コンパイルおよびリンク
-g

カーネルをデバッグするコードを生成します。このオプションを使用すると、カーネルがコンパイルされて FPGA バイナリが作成される際に、カーネルをデバッグしやすくする機能が追加されます。

次に例を示します。

v++ -g ...

-h | --help

-h

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

v++ -h

-I | --include

適用先
コンパイルおよびリンク
--include <arg>

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

<input_file>

適用先
コンパイルおよびリンク
<input_file1> <input_file2> ...

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

次に例を示します。

v++ -l kernel1.xo kernelRTL.xo ...

--interactive

適用先
コンパイルおよびリンク
--interactive [ impl ]

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

Vivado ツールをインタラクティブに起動するので、リンク プロセスは vpl ステップで停止します。これは、v++ コマンドで --to_step vpl オプションを使用するのと同じことです。Vivado ツールを使用し終え、デザイン チェックポイント (DCP) を保存したら、-from_step を使用してリンク コマンドを再実行して、vpl プロセス時点のコマンドから実行します。

次に例を示します。

v++ --interactive impl

-j | --jobs

適用先
コンパイルおよびリンク
--jobs <arg>

並列ジョブの数を指定します。

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

次に例を示します。

v++ --link --jobs 4

-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

適用先
コンパイルおよびリンク
--kernel_frequency <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

-l | --link

--link

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

--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 ...

--lsf

適用先
コンパイルおよびリンク
--lsf <arg>

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

次に例を示します。

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

--message_rules

適用先
コンパイルおよびリンク
--message-rules <file_name>

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

次に例を示します。

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

--no_ip_cache

適用先
コンパイルおよびリンク
--no_ip_cache

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

次に例を示します。

v++ --no_ip_cache ...

-O | --optimize

適用先
コンパイルおよびリンク
--optimize <arg>

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

  • 0: デフォルトの最適化です。コンパイル時間を削減し、デバッグで予測される結果を生成します。
  • 1: 消費電力を削減するように最適化します。デザインのビルド時間は長くなります。
  • 2: カーネル速度を上げるように最適化します。ビルド時間が長くなりますが、生成されるカーネルのパフォーマンスは向上します。
  • 3: 生成されたコードのパフォーマンスは最高レベルになりますが、コンパイル時間はかなり長くなります。
  • s: サイズを小さくするよう最適化します。カーネルで使用されるデバイスのロジック リソースが削減されます。
  • quick: Vivado インプリメンテーション時間は短くなりますが、カーネルのパフォーマンスは低下し、カーネルで使用されるリソースも多くなります。

次に例を示します。

v++ --link --optimize 2

-o | --output

適用先
コンパイルおよびリンク
-o <output_name>

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

次に例を示します。

v++ -o krnl_vadd.xo

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

  • コンパイル: a.o
  • リンク: a.xclbin

-f | --platform

適用先
コンパイルおよびリンク
--platform <platform_name>

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

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

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

次に例を示します。

v++ --platform xilinx_u200_xdma_201830_2 ...
ヒント: Vitis コンパイラ オプションは設定ファイルで指定し、--config オプションでその設定ファイルを指定できます。たとえば platform オプションは、設定ファイルで次の構文を使用して、セクション ヘッドなしで指定できます。
platform=xilinx_u200_xdma_201830_2

--profile_kernel

適用先
コンパイルおよびリンク
--profile_kernel <arg>

カーネルとホスト間のデータ トラフィック、カーネル ストール、カーネル実行時間のプロファイル データを収集します。--profile_kernel には、次の 3 つのオプションがあります。

  • data: モニター IP を介してデータ ポートを監視します。このオプションは、リンク時には指定する必要があります。
  • stall: FPGA バイナリにストール監視ロジックを含めます。これには、カーネル インターフェイスにストール ポートを追加する必要があります。そのため、コンパイルおよびリンクの両方で stall オプションを指定する必要があります。
  • exec: カーネルの実行時間を記録し、システム実行中に最小限のポート データ コレクションを示します。カーネルの実行時間は、data または stall データ コレクションでもデフォルトで収集されます。このオプションは、リンク時には指定する必要があります。
重要: v++--profile_kernel オプションを使用するには、xrt.ini ファイルに profile=true を追加する必要もあります。xrt.ini ファイル を参照してください。

data プロファイルの構文は、次のとおりです。

data:[ <kernel_name> | all ]:[ <cu_name> | all ]:[ <interface_name> | all ](:[ counters | all ])

kernel_namecu_nameinterface_name を使用して、パフォーマンス モニターが適用されるインターフェイスを指定できます。all キーワードを使用して、1 つのオプションで既存のカーネル、計算ユニット、インターフェイスすべてを監視できるよう設定することもできます。

最後のオプション <counters|all> は必須ではありません。指定しない場合はデフォルトで all になります。大型デザインの場合は情報の収集を counters に制限できますが、all を指定して実際のトレース情報が収集されるようにすることもできます。

stall または exec プロファイルの構文は、次のとおりです。

[ stall | exec ]:[ <kernel_name> | all ]:[ <cu_name> | all ](:[ counters | all ])
ヒント: stall または exec の場合、<interface_name> フィールドは使用されません。

次の例では、すべてのカーネルのすべての CU 上にある all インターフェイスで data プロファイルが記録されるようにしています。

v++ -g -l --profile_kernel data:all:all:all ...
ヒント: --profile_kernel オプションは、異なるカーネル、CU、インターフェイスのプロファイルを指定するのにいくつでも使用できます。

--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_impl

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

インプリメント済みデザイン チェックポイント (DCP) のパスとファイル名を指定して、FPGA バイナリ ファイル (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 を使用して Vitis コンパイラを再起動する際は、--to_step を使用してビルドを開始したのと同じプロジェクト ディレクトリを使用する必要があります。

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

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

--trace_memory

適用先
コンパイルおよびリンク
--trace_memory <arg>

ハードウェア ターゲットのリンク時に --profile_kernel オプションと共に使用し、トレース データを収集するのに使用するメモリのタイプおよび量を指定します。

プロファイル用にトレース バッファー メモリのタイプを <FIFO>:<size>|<MEMORY>[<n>] という形式で指定します。

  • FIFO:<size>: KB で指定します。デフォルトは FIFO:8K です。最大値は 4G です。
  • Memory[<N>]: プラットフォームのメモリ リソースのタイプおよび数を指定します。ターゲット プラットフォームのメモリ リソースは、platforminfo コマンドで指定できます。サポートされるメモリ タイプは、HBM、DDR、PLRAM、HP、ACP、MIG、および MC_NOC などです。たとえば、DDR[1] などです。
重要: リンクで --trace_memory を使用する場合は、xrt.ini ファイル で説明するように、xrt.ini ファイル内で [Debug] trace_buffer_size も使用する必要があります。

-v | --version

-v

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

v++ -v

--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) またはザイリンクス 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. インストール ディレクトリからのザイリンクス 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. インストール ディレクトリからのザイリンクス IP カタログ (例: <Install_Dir>/Vitis/2019.2/data/ip/)

次に例を示します。

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