重要: ユーザー管理のカーネルは、次に説明する制御レジスタおよび信号を必要としませんが、ユーザー管理の RTL カーネルの作成 で説明するように、
s_axilite
インターフェイスのレジスタを使用して制御構造をインプリメントできます。RTL モジュールが異なる制御構造をインプリメントする場合は、それを user_managed
カーネルとして定義するか、ここで説明する XRT 管理の要件に適合するようにする必要があります。次の表に、XRT 管理のカーネルを Vitis ツールと XRT 内で使用できるようにするのに必要なレジスタ マップを示します。制御レジスタは、実行モード で説明されるように、ap_ctrl_hs
および ap_ctrl_chain
制御プロトコルを指定するカーネルで必要とされます。ap_ctrl_none
および user_managed
制御プロトコルをインプリメントするカーネルは、次に示す制御レジスタを必要としません。
ヒント: 割り込み関連のレジスタは、割り込みをインプリメントするデザインにのみ必要です。
すべてのユーザー定義のレジスタは、0x10
で開始する必要があります。これより下位の位置は予約されています。これらには、メモリ マップド インターフェイスに渡されるスカラー値やアドレス オフセットなどのカーネル引数のレジスタが含まれます。
オフセット | 名前 | 説明 |
---|---|---|
0x0 | 制御 | カーネル ステータスを制御および示します。 |
0x4 | グローバル割り込みイネーブル | ホストへの割り込みをイネーブルにします。 |
0x8 | IP 割り込みイネーブル | 割り込みを生成するのに使用する IP 生成信号を制御します。 |
0xC | IP 割り込みステータス | 割り込みステータスを示します。 |
0x10 | カーネル引数 | たとえば、スカラーおよびグローバル メモリ引数などを含みます。 |
次の表は、制御レジスタ (offset 0x0
) を介してアクセスされる制御信号を示しています。制御レジスタおよびその信号は、ap_ctrl_hs
および ap_ctrl_chain
カーネル実行モードによって決定されます。
使用可能な信号は、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 によってアサートされます。 |
7 | auto_restart | ユーザー管理の終わらないカーネルでのデータのストリーミング に示すように、自動カーネル再起動を有効にするために使用します。 |
31:5 | 予約済み | 予約 |
次の割り込み関連のレジスタは、カーネルに割り込みがある場合にのみ必要です。
ビット | 名前 | 説明 |
---|---|---|
0 | グローバル割り込みイネーブル | IP 割り込みイネーブル ビットと共にアサートされると、割り込みがイネーブルになります。 |
31:1 | 予約済み | 予約済み |
ビット | 名前 | 説明 |
---|---|---|
0 | 割り込みイネーブル | グローバル割り込みイネーブル ビットと共にアサートされると、割り込みがイネーブルになります。 |
31:1 | 予約済み | 予約済み |
ビット | 名前 | 説明 |
---|---|---|
0 | 割り込みステータス | 書き込みでトグルされます。 |
31:1 | 予約済み | 予約済み |