図 1. XCLBIN のビルド プロセス
カーネルは、C/C++ または OpenCL C コードで記述するか、パッケージされた RTL デザインから作成できます。上の図に示すように、Vitis コンパイラ (v++
) コマンド、Vitis HLS ツール、または RTL カーネルは package_xo
コマンドを使用して、各ハードウェア カーネルが個別にザイリンクス オブジェクト (.xo) ファイルにコンパイルされます。
ザイリンクス オブジェクト (.xo) ファイルは v++ --link
コマンドによりターゲット ハードウェア プラットフォームにリンクされて FPGA バイナリ (.xclbin) が作成され、これがターゲット プラットフォーム上のザイリンクス デバイスに読み込まれます。Alveo データセンター アクセラレータ カードでは、.xclbin ファイルはシステムをブートおよび実行するために必要なビルド オブジェクトです。
エンベデッド プロセッサ プラットフォームでは、システムのビルドに追加の手順が必要です。Vitis コンパイラのパッケージ プロセス (v++
--package
) は、エミュレーションおよびデバッグ実行用またはターゲット ハードウェア上でのブートおよび実行用のブート イメージをビルドするために必要なエレメントを収集します。
図 2. エンベデッド プラットフォーム パッケージ プロセス
FPGA バイナリをビルドする際に重要なのは、生成するビルド ターゲットを決定することです。詳細は、ビルド ターゲット を参照してください。
ビルド プロセスの詳細は、デバイス バイナリのビルド を参照してください。