カーネルのソフトウェア要件 - 2020.1 Japanese

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

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

RTL カーネルには、C/C++ および OpenCL カーネルと同じソフトウェア インターフェイス モデルがあります。RTL カーネルは、ホスト プログラムでは void 戻り値、ポインター引数、およびスカラー引数を持つ関数として認識されます。

Vitis コア開発キットの実行モデルでは、次が検出されます。

  • スカラー引数は、AXI4-Lite スレーブ インターフェイスを介してカーネルに直接書き込まれます。
  • ポインター引数はホスト プログラムとメモリ間で転送され、RTL カーネルは 1 つまたは複数の AXI4 メモリ マップド インターフェイスを介してメモリにデータを読み出し/書き込みします。
  • カーネルは AXI4-Lite スレーブ インターフェイスを使用した制御レジスタ (次を参照) を介してホスト プログラムで制御されます。

RTL デザインに別の実行モデルがある場合は、デザインがこの方法で実行できるようにそれを適用する必要があります。

次の表に、カーネルを Vitis IDE 内で使用できるようにするのに必要なレジスタ マップを示します。制御レジスタはすべてのカーネルに必要ですが、割り込み関連のレジスタは割り込みを含むデザインにのみ必要です。すべてのユーザー定義のレジスタは、0x10 で開始する必要があります。これより下位の位置は予約されています。

表 1. アドレス マップ
アドレス 名前 説明
0x0 制御 カーネル ステータスを制御および示します。
0x4 グローバル割り込みイネーブル ホストへの割り込みをイネーブルにします。
0x8 IP 割り込みイネーブル 割り込みの生成に使用する IP で生成された信号を制御します。
0xC IP 割り込みステータス 割り込みステータスを示します。
0x10 カーネル引数 スカラーおよびグローバル メモリ引数などを含みます。
表 2. 制御 (0x0)
ビット 名前 説明
0 ap_start カーネルがデータ処理を開始するとアサートされます。ap_done がアサートされたハンドシェイクでクリアされます。
1 ap_done カーネルが処理を終了するとアサートされます。読み出しでクリアされます。
2 ap_idle カーネルがアイドルになるとアサートされます。
31:3 予約 予約
注記: ホストは通常オフセット 0 の制御レジスタに 0x00000001 を書き込みます。これは、ビット 0 をセットし、ビット 1 および 2 をクリアし、読み出し完了信号を 1 になるまでポーリングします。

次の割り込み関連のレジスタは、カーネルに割り込みがある場合にのみ必要です。

表 3. グローバル割り込みイネーブル (0x4)
ビット 名前 説明
0 グローバル割り込みイネーブル IP 割り込みイネーブル ビットと共にアサートされると、割り込みがイネーブルになります。
31:1 予約 予約
表 4. IP 割り込みイネーブル (0x8)
ビット 名前 説明
0 割り込みイネーブル グローバル割り込みイネーブル ビットと共にアサートされると、割り込みがイネーブルになります。
31:1 予約 予約
表 5. IP 割り込みステータス (0xC)
ビット 名前 説明
0 割り込みステータス 書き込みでトグルされます。
31:1 予約 予約