Vitis コア開発キットで使用するために C/C++ からカーネルを生成するには、標準 Vitis HLS プロセスに従いますが、カーネルは Vitis ソフトウェア プラットフォームで動作する必要があるので、標準カーネル要件 (カーネル プロパティ を参照) にも従う必要があります。まず、インターフェイスを AXI メモリ インターフェイスとして記述することが必要です。ただし、スカラー パラメーターは例外で、AXI4-Lite インターフェイスにマップされます。ここで説明する Vitis ボトムアップ フローを使用すると、標準カーネル要件を満たすため、Vitis HLS によりインターフェイス ポートが自動的に定義されます。
HLS カーネルを作成およびコンパイルする手順の概要は、次のとおりです。このプロセスのより詳細な説明は、 Vitis HLS フロー の 新規 Vitis HLS プロジェクトの作成 を参照してください。
- Vitis HLS を起動して統合デザイン環境 (IDE) を開き、 をクリックします。
- New Vitis HLS Project ウィザードの Project nameでプロジェクト名を指定し、Location でプロジェクトの保存ディレクトリを指定して、Next をクリックします。
- Add/Remove Files ページで Add Files をクリックして、カーネル ソース コードをプロジェクトに追加します。Top Function フィールドの Browse ボタンをクリックしてカーネル関数を選択し、Next をクリックします。
- C ベース シミュレーション テストベンチがある場合は、Add Files をクリックして指定できます (オプション)。Next をクリックします。ヒント: Vitis HLS の資料で説明されるように、テストベンチを使用することを強くお勧めします。
-
Solution
Configuration ページでは、Clock Period にカーネルのクロック周期を指定する必要があります。
- Part Selection フィールドの参照ボタン (…) をクリックして、Device Selection Dialog ダイアログ ボックスを開きます。Boards を選択し、コンパイルしたカーネルのターゲット プラットフォームを選択します。OK をクリックしてプラットフォームを選択し、Solution Configuration ページに戻ります。
-
Solution
Configuration の Flow Target の下の Vitis Kernel Flow Target ドロップダウン リストを選択し、Finish をクリックして HLS カーネル プロジェクトを作成します。重要: プロジェクトからザイリンクス オブジェクト (XO) ファイルを作成するには、Vitis Kernel Flow Target を選択する必要があります。
HLS プロジェクトを作成したら、Run C-Synthesis をクリックして C 合成を実行し、カーネル コードをコンパイルできます。HLS ツール フローの詳細は、Vitis HLS の資料を参照してください。
合成が完了したら、カーネルを XO ファイルとしてエクスポートし、Vitis コア開発キットで使用できます。エクスポートするには、メイン メニューから をクリックします。
ファイル ディレクトリを指定すると、カーネルがザイリンクス オブジェクト (XO) ファイルとしてエクスポートされます。
XO ファイルは、v++
リンク プロセスの入力ファイルとして使用できます。詳細は、カーネルのリンク を参照してください。オブジェクト ファイルは、Vitis IDE プロジェクトの作成 で説明されるように、Vitis IDE のアプリケーション プロジェクトにも追加できます。
ただし、ここで説明するボトムアップ フローで作成された HLS カーネルには、Vitis アプリケーション アクセラレーション開発フローで使用する場合、制限があります。HLS カーネルを使用したアプリケーションでは、ヘッダー ファイルの依存性の重複により問題が発生するので、ソフトウェア エミュレーションはサポートされません。HLS カーネルまたは RTL カーネルのハードウェア エミュレーション フローでは、GDB デバッグはサポートされません。