次の表に、カーネルを Vitis ツールと XRT 内で使用できるようにするのに必要なレジスタ マップを示します。制御レジスタは ap_ctrl_hs
および ap_ctrl_chain
実行モデルを指定する RTL カーネルに必要ですが、割り込み関連のレジスタは割り込みを含むデザインにのみ必要です。すべてのユーザー定義のレジスタは、0x10
で開始する必要があります。これより下位の位置は予約されています。
RTL デザインに別の実行モデルがある場合は、デザインがこの方法で実行できるようにそれを適用する必要があります。
ヒント:
ap_ctrl_none
を指定するカーネルは、次に示す制御レジスタを必要としません。オフセット | 名前 | 説明 |
---|---|---|
0x0 | 制御 | カーネル ステータスを制御および示します。 |
0x4 | グローバル割り込みイネーブル | ホストへの割り込みをイネーブルにします。 |
0x8 | IP 割り込みイネーブル | 割り込みの生成に使用する IP で生成された信号を制御します。 |
0xC | IP 割り込みステータス | 割り込みステータスを示します。 |
0x10 | カーネル引数 | スカラーおよびグローバル メモリ引数などを含みます。 |
次の表は、制御レジスタ (offset 0x0
) を介してアクセスされる制御信号を示しています。使用可能な信号は、XRT の資料の「サポートされるカーネル実行モデル」で説明されるように、さまざまな制御プロトコルで使用されます。たとえば、シーケンシャル実行モードの ap_ctrl_hs
の場合、ホストは通常オフセット 0 の制御レジスタに 0x00000001
を書き込みます。これにより、ビット 0 がセットされ、ビット 1 および 2 がクリアされ、ap_done
信号の読み出しが 1 になるまでポーリングされます。
ビット | 名前 | 説明 |
---|---|---|
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
) によって決定されます。
次の割り込み関連のレジスタは、カーネルに割り込みがある場合にのみ必要です。
ビット | 名前 | 説明 |
---|---|---|
0 | グローバル割り込みイネーブル | IP 割り込みイネーブル ビットと共にアサートされると、割り込みがイネーブルになります。 |
31:1 | 予約済み | 予約済み |
ビット | 名前 | 説明 |
---|---|---|
0 | 割り込みイネーブル | グローバル割り込みイネーブル ビットと共にアサートされると、割り込みがイネーブルになります。 |
31:1 | 予約済み | 予約済み |
ビット | 名前 | 説明 |
---|---|---|
0 | 割り込みステータス | 書き込みでトグルされます。 |
31:1 | 予約済み | 予約済み |