カーネル コードは、次の図に示すように、C、C++、OpenCL C、RTL のいずれかで記述され、カーネル コードをザイリンクス オブジェクト ファイル (.xo) にコンパイルして、.xo ファイルを FPGA バイナリ ファイル (.xclbin) にリンクすることによりビルドされます。
図 1. FPGA のビルド プロセス
このプロセスには、次の 2 つの段階があります。
- カーネル ソース コードからザイリンクス オブジェクト ファイルをビルドします。
- C、C++、または OpenCL カーネルの場合は、
v++ -c
コマンドによりソース コードがザイリンクス オブジェクト (.xo) ファイルにコンパイルされます。複数カーネルは、個別の .xo ファイルにコンパイルされます。 - RTL カーネルの場合は、
package_xo
コマンドによりリンクに使用される .xo ファイルが生成されます。詳細は、RTL カーネル を参照してください。 - Vivado HLS ツールで直接カーネル オブジェクト ファイル (.xo) を作成することもできます。詳細は、Vivado HLS でのカーネルのコンパイル を参照してください。
- C、C++、または OpenCL カーネルの場合は、
- コンパイル後、
v++ -l
コマンドにより 1 つまたは複数のカーネル オブジェクト (.xo) がハードウェア プラットフォーム (.xsa) とリンクされ、FPGA バイナリ (.xclbin) が作成されます。
ヒント:
v++
コマンドは、コマンド ラインから、スクリプト内、または make
のようなビルド システムで使用でき、また Vitis IDE の使用 に説明されているように、GUI からも使用できます。