メールボックス機能は入出力の両方に使用でき、カーネルのすべての s_axilite
I/O に対して指定する必要があります。次の Vitis HLS の config_interface
コマンドを使用して、インターフェイスのグローバル オプションでイネーブルにします。
config_interface -s_axilite_mailbox both
config_interface -s_axilite_auto_restart_counter 1
config_interface
オプションを設定したら、メールボックスは HW
copy
および SW copy
と呼ばれるレジスタのペアをインプリメントします。次の図に示すように、入力メールボックスと出力メールボックスには独立したレジスタのペアがあります。カーネルとの通信には次が含まれます。
- 入力メールボックス
-
- ホスト アプリケーションが、一部またはすべての要素をメールボックスの
SW copy
レジスタに書き込みます。 - ホスト アプリケーションが、
SW copy
が更新されたことをメールボックスに通知します。 - ハードウェア カーネルが再起動すると、
SW copy
レジスタがHW copy
レジスタにコピーされます。 -
HW copy
が更新されたことがホスト アプリケーションに通知され、必要に応じてSW copy
レジスタを再度変更できます。ヒント: ハードウェア カーネルによる複数の読み出しは、ホストアプリケーションからの更新なしに発生する可能性があります。
- ホスト アプリケーションが、一部またはすべての要素をメールボックスの
- 出力メールボックス
-
- ホスト アプリケーションが、メールボックスの更新されたコピーを読み出すことをメールボックスに通知します。ハードウェアが、現在のカーネル実行の最後に、メールボックスの
HW copy
レジスタに一部またはすべての要素を書き込みます。 - カーネルが終了すると、
HW copy
がSW copy
レジスタにコピーされます。 - ホストアプリケーションには、
SW copy
が更新されたことが通知され、いつでも読み出せるようになります。ヒント: ハードウェアによる複数の書き込みは、ソフトウェアの更新要求なしで発生する可能性があります。
- ホスト アプリケーションが、メールボックスの更新されたコピーを読み出すことをメールボックスに通知します。ハードウェアが、現在のカーネル実行の最後に、メールボックスの