Vitis HLS でのカーネルの作成 - 2021.1 Japanese

Vitis 統合ソフトウェア プラットフォームの資料: アプリケーション アクセラレーション開発 (UG1393)

Document ID
UG1393
Release Date
2022-03-29
Version
2021.1 Japanese

Vitis コア開発キットで使用するために C/C++ からカーネルを生成するには、標準 Vitis HLS プロセスに従いますが、カーネルは Vitis ソフトウェア プラットフォームで動作する必要があるので、標準カーネル要件 (カーネル プロパティ を参照) にも従う必要があります。まず、インターフェイスを AXI メモリ インターフェイスとして記述することが必要です。ただし、スカラー パラメーターは例外で、AXI4-Lite インターフェイスにマップされます。ここで説明する Vitis ボトムアップ フローを使用すると、標準カーネル要件を満たすため、Vitis HLS によりインターフェイス ポートが自動的に定義されます。

HLS カーネルを作成およびコンパイルする手順の概要は、次のとおりです。このプロセスのより詳細な説明は、 Vitis HLS フロー 新規 Vitis HLS プロジェクトの作成 を参照してください。

  1. Vitis HLS を起動して統合デザイン環境 (IDE) を開き、File > New Project をクリックします。
  2. New Vitis HLS Project ウィザードの Project nameでプロジェクト名を指定し、Location でプロジェクトの保存ディレクトリを指定して、Next をクリックします。
  3. Add/Remove Files ページで Add Files をクリックして、カーネル ソース コードをプロジェクトに追加します。Top Function フィールドの Browse ボタンをクリックしてカーネル関数を選択し、Next をクリックします。
  4. C ベース シミュレーション テストベンチがある場合は、Add Files をクリックして指定できます (オプション)。Next をクリックします。
    ヒント: Vitis HLS の資料で説明されるように、テストベンチを使用することを強くお勧めします。
  5. Solution Configuration ページでは、Clock Period にカーネルのクロック周期を指定する必要があります。

  6. Part Selection フィールドの参照ボタン () をクリックして、Device Selection Dialog ダイアログ ボックスを開きます。Boards を選択し、コンパイルしたカーネルのターゲット プラットフォームを選択します。OK をクリックしてプラットフォームを選択し、Solution Configuration ページに戻ります。
  7. Solution ConfigurationFlow Target の下の Vitis Kernel Flow Target ドロップダウン リストを選択し、Finish をクリックして HLS カーネル プロジェクトを作成します。
    重要: プロジェクトからザイリンクス オブジェクト (XO) ファイルを作成するには、Vitis Kernel Flow Target を選択する必要があります。

HLS プロジェクトを作成したら、Run C-Synthesis をクリックして C 合成を実行し、カーネル コードをコンパイルできます。HLS ツール フローの詳細は、Vitis HLS の資料を参照してください。

合成が完了したら、カーネルを XO ファイルとしてエクスポートし、Vitis コア開発キットで使用できます。エクスポートするには、メイン メニューから Solution > Export RTL をクリックします。

ファイル ディレクトリを指定すると、カーネルがザイリンクス オブジェクト (XO) ファイルとしてエクスポートされます。

XO ファイルは、v++ リンク プロセスの入力ファイルとして使用できます。詳細は、カーネルのリンク を参照してください。オブジェクト ファイルは、Vitis IDE プロジェクトの作成 で説明されるように、Vitis IDE のアプリケーション プロジェクトにも追加できます。

ただし、ここで説明するボトムアップ フローで作成された HLS カーネルには、Vitis アプリケーション アクセラレーション開発フローで使用する場合、制限があります。HLS カーネルを使用したアプリケーションでは、ヘッダー ファイルの依存性の重複により問題が発生するので、ソフトウェア エミュレーションはサポートされません。HLS カーネルまたは RTL カーネルのハードウェア エミュレーション フローでは、GDB デバッグはサポートされません。