ヒント: ツールを実行する前に、Vitis 環境の設定 に説明されているように、コマンド シェルまたはウィンドウを設定します。
カーネルのコンパイル プロセスでは、カーネルが C/C++、OpenCL C、RTL のいずれで記述されていても、ザイリンクス オブジェクト ファイル (
.xo
) が生成されます。システムのパッケージ に示すように、リンク段階では、異なるカーネルからの XO ファイルがプラットフォームにリンクされ、FPGA バイナリ コンテナー ファイル (.xclbin) または Vitis パッケージ プロセスで使用されるハードウェア定義ファイル (.xsa) が作成されます。 重要: 2022.1 リリースでは、
v++ --link
コマンドで
Versal®
デバイス プラットフォーム (vck190、vck5000 など) のハードウェア定義 (.xsa) ファイルを生成し、v++ --package
コマンドでそのファイルを使用して、.xclbin ファイルを生成します。
Alveo™
データセンター アクセラレータ カードおよびエンベデッド プロセッサ プロセッサ カードの場合、v++ --link
コマンドで .xclbin ファイルを直接生成します。ただし、v++ --package
コマンドはまだ必要な場合があります。コンパイルと同様、リンクにも複数のオプションが必要です。次に、vadd
カーネルをリンクするコマンド例を示します。
v++ -t hw_emu --platform xilinx_u200_gen3x16_xdma_2_202110_1 --link vadd.xo -o'vadd.sw_emu.xclbin' \
--config ./system.cfg
このコマンドには、次の引数が含まれます。
-
-t <arg>
- ビルド ターゲットを指定します。ソフトウェア エミュレーション (
sw_emu
) が例として使用されています。リンクでは、入力 (XO) ファイルをコンパイルしたときに指定したのと同じ-t
および--platform
引数を指定する必要があります。 -
--platform <arg>
- カーネルをリンクするプラットフォームを指定します。エンベデッド プロセッサ アプリケーションのカーネルをリンクするには、
--platform $PLATFORM_REPO_PATHS/zcu102_base/zcu102_base.xpfm
のようにエンベデッド プロセッサ プラットフォームを指定します。 -
--link
- カーネルとプラットフォームを FPGA バイナリ ファイル (xclbin) にリンクします。
-
<input>.xo
- オブジェクト ファイルを入力します。複数のオブジェクト ファイルを .xclbin にビルドできます。
-
-o'<output>.xclbin'
- 出力ファイル名を指定します。リンク段階の出力ファイルは、.xsa ファイルです。デフォルトの出力ファイル名は a.xsa です。
-
--config ./system.cfg
-
v++
コマンドのオプションを定義するコンフィギュレーション ファイルを指定します。--config
オプションの詳細は、Vitis コンパイラ コマンド を参照してください。
次に、出力に .xsa ファイルを指定した、Versal デバイス プラットフォームのリンク コマンド ラインの例です。
v++ -t hw_emu --platform xilinx_vck190_base_202210_1 --link vadd.xo -o"binary_container_1.xsa" \
--config ./system.cfg
リンク段階が完了すると、このプロセス中に生成されたすべてのレポートが <kernel_name>.link_summary に収集されます。このレポートのコレクションは、Vitis アナライザーで link_summary を開くと確認でき、サマリ レポート、ハードウェア デザインを示すシステムおよびプラットフォーム ダイアグラム、タイミングとリソースの見積もりを提供するシステム見積もり、リンクの改善とシステムのパフォーマンスを向上させるための推奨事項を示すシステム ガイダンスが含まれます。また、インターフェイス接続、クロック、リセット、および割り込みなどのデザインの詳細を提供する Vivado オートメーション サマリも含まれます。詳細は、Vitis アナライザーの使用を参照してください。
ヒント: さまざまな出力ファイルの生成場所は、v++ コマンドの出力ディレクトリ を参照してください。
リンク プロセスでは、ザイリンクス オブジェクト (XO) ファイルがリンクされるだけでなく、デザインのアーキテクチャの重要な詳細も指定されます。特に、プロファイルまたはデバッグ用にデザインをイネーブルにし、ハードウェアにインスタンシエートする計算ユニット (CU) 数を指定し、CU を SLR に割り当て、カーネル ポートからグローバル メモリまたはストリーミング ポート間の接続を定義します。次のセクションでは、これらのビルド オプションのいくつかを説明します。