オプションで、AXI Interconnect コア内の SI、クロスバー、MI 間の選択された経路上に AXI Data FIFO コアを挿入して、データ バッファー機能を提供し、より高いスループットを達成できます。Data FIFO の各インスタンスに関しては、書き込みデータ チャネル、読み出しデータ チャネル、またはその両方のバッファー機能を選択的に有効にできます。
また、AXI マスター デバイスとスレーブ デバイス間の任意の経路で、AXI Data FIFO コアを (AXI Interconnect コアなしで) デザインに直接インスタンシエートすることもできます。
状況によっては、データ バーストをバッファーすることでスループットが向上します。このような状況は通常、データ幅またはクロック レートの変換によって SI または MI のデータ レートが AXI Crossbar コアのデータ レートと異なる場合に見られます。データ バッファー機能を使用して、リアルタイム デバイスにトランザクションのアービトレーション レイテンシを許容させることもできます。インターコネクトのトポロジによっては、Data FIFO を AXI Crossbar の前または後、またはその両方に配置したほうが有用な場合があります。
Data FIFO には 3 つのモードがあり、書き込みパスと読み出しパスのそれぞれに設定できます。
• 深さ 32 の LUT ベースの FIFO (データ チャネル専用)。
• 深さ 512 のブロック RAM ベースの FIFO (データ チャネル専用)。
• 深さ 512 のブロック RAM ベースのパケット FIFO。
バースト中の Full/Empty によるストールを回避するために、パケット FIFO モードが使用されます。パケット モードは、データ チャネル上の深さ 512 の FIFO に加えて、対応するアドレス チャネル上に深さ 32 の FIFO をインプリメントします。書き込みにパケット モードを有効にすると、書き込みデータ バースト全体 (WLAST で終了) が SI で受信するまで、AW チャネルでの書き込みトランザクションの発行が遅延するため、遅い書き込みデータ ソースによるストールを回避できます。読み出しにパケット モードを有効にすると、 ARLEN に従って、FIFO にバースト全体を格納するのに十分な空きができるまで、AR チャネルでの読み出しトランザクションの発行が遅延します。(「空き」とは、発行済みの AR コマンドによって占有されていない R チャネル FIFO 内の空きスペースを意味します)。これにより、読み出しアクセス先が低速な場合のストールを防ぎます。
注記: 書き込みパケット モードは、AXI Data FIFO コアの MI W チャネル上での書き込みデータそのものの伝搬をゲートしません。AXI Interconnect で有効になっている SI 側のパケット モードの FIFO の場合、クロスバーは AW チャネル コマンドを受信してアービトレーションするまで、W チャネル転送を受け付けません。MI 側の FIFO の場合、WVALID が書き込みデータが現れるとすぐに AXI Interconnect の MI 上でアサートすることがあります。通常、エンドポイントのスレーブは AW コマンドを受信するまで書き込みデータを受け付けません。ただし、その間に介在する FIFO やレジスタ スライスは、トランザクション全体の処理に問題を引き起こさずに、書き込みデータをさらにダウンストリームに伝搬できます。AXI4 プロトコルでは、対応する AW コマンドの前に W 転送を伝搬することが許可されています。
AXI Data FIFO は AXI4-Lite トランザクションのバッファー機能をサポートしていません。