AXI マスター アダプターは、HLS スケジューラからのカスタマイズされた AXI コマンドを、標準的な AXI AMBA® プロトコルに変換し、外部メモリに送信します。MAXI アダプターは、FIFO などのリソースを使用して、要求/データと ack を格納します。ここでは、各モジュールの概要と消費するリソースについて説明します。
- 書き込みモジュール: バス書き込みモジュールは書き込み操作を実行します。
-
FIFO_wreq
: この FIFO モジュールは、今後の書き込み要求を格納します。AW チャネルが利用可能になると、グローバル メモリへの新しい書き込み要求がこの FIFO から取り出されます。 -
buff_wdata
: この FIFO は、グローバル メモリに送信する必要のある今後の書き込みデータを格納します。W チャネルが利用可能で、AXI プロトコルの条件が満たされる場合、size=burst_length の書き込みデータがこの FIFO から出され、グローバル メモリに送信されます。 -
FIFO_resp
: このモジュールは、モジュールに送信されるパイプライン処理された書き込みレスポンスの数を制御します。
-
- 読み出しモジュール: これらのモジュールは、読み出し操作を実行し、次のリソースを使用します。
-
FIFO_rreq
: この FIFO モジュールは、今後の書き込み要求を格納します。AR チャネルが空いている場合、グローバル メモリへの読み出し要求がこの FIFO から取り出されます。 -
buff_rdata
: この FIFO は、グローバル メモリから受信した読み出しデータを格納します。
-
M_AXI アダプターのデバイス リソース消費量は、すべての書き込みモジュール (FIFO_wreq module
のサイズ、buff_wdata
、FIFO_resp のサイズ) の合計と、すべての読み出しモジュールの合計です。通常、FIFO のサイズは、幅 * 深さで計算されます。1 KB の FIFO ストレージといっても、32*32、8*64 などのコンフィギュレーションがあり、デザイン仕様に応じて選択されます。同様に、アダプター FIFO ストレージは、次のコンフィギュレーション コマンドのオプションを使用して、デザインに対してグローバルにコンフィギュレーションすることもできます。
-
syn.interface.m_axi_latency
-
syn.interface.m_axi_max_read_burst_length
/syn.interface.m_axi_max_write_burst_length
-
syn.interface.m_axi_num_read_outstanding
/syn.interface.m_axi_num_write_outstanding
-
syn.interface.m_axi_addr64
ヒント: また、INTERFACE プラグマや指示子に同様のオプションを使用して、特定の m_axi インターフェイスをコンフィギュレーションすることもできます。
これらのコンフィギュレーション オプションは、次のように FIFO の幅と深さを制御します。
- Size of the
FIFO_wreq
/rreq module
= (width(syn.interface.m_axi_addr64
)) * Depth(syn.interface.m_axi_latency
)).この FIFO は、Vivado ツールでシフト レジスタとしてインプリメンテーションされます。 -
buff_wdata
のサイズ/buff_rdata
モジュール = (幅 (HLS 合成後のポート幅) * 深さ (syn.interface.m_axi_num_write_outstanding
*syn.interface.m_axi_max_write_burst_length
))ヒント: この FIFO はデフォルトでブロック RAM としてインプリメントされますが、syn.interface.m_axi_buffer_impl
によって決定される LUTRAM または URAM に言インプリメントできます。 -
FIFO_resp
モジュールのサイズ = 深さ (syn.interface.m_axi_num_write_outstanding
)