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

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

Document ID
UG1393
Release Date
2020-08-20
Version
2020.1 Japanese

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

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

  1. Vitis HLS を起動して GUI を開き、File > New Project をクリックします。
  2. New Vitis HLS Project ウィザードの [Project Configurations] ページで、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] エリアの Browse ボタンをクリックして、[Device Selection Dialog] ダイアログ ボックスを開きます。Boards をクリックし、コンパイルしたカーネルのターゲット プラットフォームを選択します。OK をクリックしてプラットフォームを選択し、[Solution Configuration] ページに戻ります。
  7. [Solution Configuration] ページで Vitis Bottom Up Flow チェック ボックスをオンにし、Finish をクリックして HLS カーネル プロジェクトを作成します。
    重要: プロジェクトからザイリンクス オブジェクト (.xo) ファイルを作成するには、Vitis Bottom Up Flow をオンにする必要があります。

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

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

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

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

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