概要表示
HLS IP またはカーネルは、スレーブ AXI4-Lite インターフェイス (s_axilite
) を使用して、ホスト アプリケーションまたはエンベデッド プロセッサにより制御できます。スレーブ インターフェイスは、プロセッサとカーネル間の通信用のシステム バスとして機能します。s_axilite
インターフェイスを使用すると、ホストまたはエンベデッド プロセッサでカーネルを起動および停止したり、カーネルにデータを読み書きしたりできます。Vitis HLS でデザインを合成する際、s_axilite
インターフェイスはアダプターとしてインプリメントされ、ホストから送信されるデータをアダプター上のレジスタにキャプチャします。これらのコンセプトのいくつかの例については、GitHub の Vitis-HLS-Introductory-Examples/Interface/Register を参照してください。
AXI4-Lite インターフェイスは、Vivado IP または Vitis カーネル内でいくつかの機能を実行します。
- カーネルを開始および停止するために使用可能なブロック レベルのメカニズムをマップ。
- ホストから IP またはカーネルに
m_axi
インターフェイスのスカラー値、関数の戻り値、およびアドレス オフセットを渡すためのチャネルとして機能。 -
Vitis カーネル フローの場合:
- ツールが
s_axilite
インターフェイス プラグマを自動的に推論して、m_axi
インターフェイス、スカラー値、および関数の戻り値の型に割り当てられたポインター引数にオフセットを提供します。 -
Vitis HLS では、
s_axilite
インターフェイスに割り当てられている場合、ポインターからスカラー値への読み出しまたは書き込みができます。ポインターはデフォルトでm_axi
インタフェースに割り当てられるため、INTERFACE プラグマまたは指示子を使用してポインターをs_axilite
に手動で割り当てる必要がありますint top(int *a, int *b) { #pragma HLS interface s_axilite port=a
-
バンドル: Vitis カーネル フローでは、
s_axilite
アダプターのbundle
オプションを指定しないでください。ツールにより、デザイン全体に使用される 1 つのs_axilite
インターフェイスが作成されます。重要: Vitis カーネル フローに複数のバンドルを指定すると、HLS によりエラーが返されます。 - オフセット: インターフェイスのオフセットはツールにより自動的に選択されます。このフローではオフセットを指定しないでください。
- ツールが
-
Vivado IP フローの場合:
- このフローでは、デフォルトでは
s_axilite
インターフェイスは使用されません。 - スカラー引数、スカラー値へのポインター、
m_axi
ポインター アドレスへのオフセット、および関数戻り値のデータ型の通信チャネルとしてs_axilite
を使用するには、INTERFACE プラグマまたは指示子を手動で指定する必要があります。 -
バンドル: このフローでは、バンドルで指定された複数の
s_axilite
インターフェイスがサポートされます。詳細は、S_AXILITE バンドルの規則 を参照してください。 - オフセット: デフォルトでは、引数は制御レジスタ マップの 0x10 から順に配置されます。詳細は、S_AXILITE オフセット オプション を参照してください。
- このフローでは、デフォルトでは