カーネルが設計されて、Vivado IDE のサンプルの IP プロジェクトでテストされたら、最後に Vitis コンパイラで使用する RTL カーネル オブジェクト ファイル (XO) を生成します。
Generate RTL Kernel コマンドをクリックします。[Generate RTL Kernel] ダイアログ ボックスに 3 つのパッケージ オプションが表示されます。
から- Sources only kernel
- RTL デザイン ソースを直接使用してカーネルをパッケージします。
- Pre-synthesized kernel
- RTL デザイン ソースと合成済みのキャッシュされた出力を含めてカーネルをパッケージします。合成済みのキャッシュされた出力を使用すると、フローの後の方で再合成する必要はありません。ターゲット プラットフォームを変更すると、パッケージされたカーネルで合成済みのキャッシュされた出力が使用されなくなり、RTL デザイン ソースだけが使用されるようになります。
- Netlist (DCP) based kernel
- カーネルの合成済み出力により生成されたネットリストを使用して、カーネルをブラック ボックスとしてパッケージします。必要であれば、この出力は暗号化可能です。ターゲットのプラットフォームを変更した場合、カーネルが新しいデバイスにターゲットを変更できなくなる可能性があるので、ソースから生成し直す必要があります。デザインにブロック デザインが含まれている場合は、ネットリスト (DCP) ベースのカーネル パッケージ オプションのみが選択可能です。
Software Emulation Sources フィールドでは、ソフトウェア エミュレーション中に使用できるカーネルのソフトウェア モデルを指定できます (オプション)。ソフトウェア モデルに複数のファイルが含まれている場合は、ソース ファイル リストのファイル名をスペースで区切るか、GUI を使用して、CTRL キーを押しながら複数のファイルを選択します。
OK をクリックすると、カーネル出力ファイルが生成されます。あらかじめ合成済みのカーネルまたはネットリストのカーネル オプションを選択している場合は、合成を実行できます。合成が前に実行されている場合は、古くてもそのときの出力が使用されます。カーネル ザイリンクス オブジェクト (XO) ファイルは、Vivado カーネル プロジェクトの exports ディレクトリに生成されます。
この時点で、Vivado カーネル プロジェクトを閉じることができます。Vivado カーネル プロジェクトを Vitis IDE から起動した場合、host_example.cpp というサンプル ホスト コードおよびカーネル オブジェクト (XO) ファイルが自動的に Vitis IDE のアプリケーション プロジェクトの適切なサブ関数の ./src に追加されます。詳細は、ソースの追加 を参照してください。