カーネルの制御 - 2020.2 Japanese

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

Document ID
UG1393
Release Date
2021-03-22
Version
2020.2 Japanese

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

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

ヒント: ap_ctrl_none を指定するカーネルは、次に示す制御レジスタを必要としません。
表 1. レジスタ アドレス マップ
オフセット 名前 説明
0x0 制御 カーネル ステータスを制御および示します。
0x4 グローバル割り込みイネーブル ホストへの割り込みをイネーブルにします。
0x8 IP 割り込みイネーブル 割り込みの生成に使用する IP で生成された信号を制御します。
0xC IP 割り込みステータス 割り込みステータスを示します。
0x10 カーネル引数 スカラーおよびグローバル メモリ引数などを含みます。

次の表は、制御レジスタ (offset 0x0) を介してアクセスされる制御信号を示しています。使用可能な信号は、XRT の資料の「サポートされるカーネル実行モデル」で説明されるように、さまざまな制御プロトコルで使用されます。たとえば、シーケンシャル実行モードの ap_ctrl_hs の場合、ホストは通常オフセット 0 の制御レジスタに 0x00000001 を書き込みます。これにより、ビット 0 がセットされ、ビット 1 および 2 がクリアされ、ap_done 信号の読み出しが 1 になるまでポーリングされます。

表 2. 制御レジスタ信号
ビット 名前 説明
0 ap_start カーネルがデータ処理を開始するとアサートされます。ap_done がアサートされたハンドシェイクでクリア。
1 ap_done カーネルが処理を終了するとアサートされます。読み出しでクリアされます。
2 ap_idle カーネルがアイドルになるとアサートされます。
3 ap_ready カーネルが新しいデータを受け入れる準備ができたときにアサートされます。
4 ap_continue カーネルが実行され続けるように XRT によってアサートされます。
31:5 予約済み 予約済み

制御レジスタまたはその信号は、カーネル実行モード (ap_ctrl_hs または ap_ctrl_chain) によって決定されます。

ヒント: フリーランニング カーネル で説明するように、カーネル実行モードが ap_ctrl_none の場合、制御レジスタは必要ありません。

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

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