AXI4-Lite インターフェイス - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語

概要表示

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 オフセット オプション を参照してください。