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