AXI4-Stream ユーザー インターフェイス - 1.2 日本語

FEC 付き Versal ACAP 統合 600G Interlaken サブシステム 製品ガイド (PG371)

Document ID
PG371
Release Date
2023-01-19
Version
1.2 日本語

ユーザー側のデータ インターフェイスは、セグメントごとのチャネル制御機能を備えるセグメント AXI4-Stream です。これはシステムに ILKNF を簡単に統合できるように設計された、シンプルなパケット インターフェイスです。ユーザー側の AXI4-Stream インターフェイスの幅は総帯域幅に基づいて構成ごとに決定されます。設定可能な値は 2048、1024、1536、768、および 512 ビットです。AXI4-Stream は、128 ビットのセグメントに分割されます。

注記: 表中の <M> は、セグメント番号 (0 ~ 15) を表します。
表 1. TX セグメント AXI4-Stream インターフェイス信号の説明
ポート名 クロック ドメイン I/O 説明
tx_axis_tdata<M>[127:0] c0_axi_clk I 送信セグメント <M> の AXI4-Stream データ。このバスは、ユーザー ロジックからの入力データを受信します。このバスの値は、tx_axis_tuser_ena<M> のサンプル値が 1 のサイクルごとにキャプチャされます。
tx_axis_tuser_ena<M> c0_axi_clk I 送信セグメント <M> イネーブル。この信号を使用して TX AXI4-Stream インターフェイスを有効にします。AXI4-Stream インターフェイスの信号はすべて、tx_axis_tuser_ena<M> のサンプル値が 1 のサイクルでのみサンプルされます。
tx_axis_tuser_sop<M> c0_axi_clk I 送信セグメント <M> のパケットの開始。この信号のサンプル値が 1 の場合は SOP を示し、0 の場合はパケットのそれ以外の転送であることを示します。この信号は、tx_axis_tuser_ena<M> のサンプル値が 1 のサイクルでのみサンプルされます。
tx_axis_tuser_eop<M> c0_axi_clk I 送信セグメント <M> のパケットの終了。この信号のサンプル値が 1 の場合は EOP を示し、0 の場合はパケットのそれ以外の転送であることを示します。この信号は、tx_axis_tuser_ena<M> のサンプル値が 1 のサイクルでのみサンプルされます。
tx_axis_tuser_err<M> c0_axi_clk I 送信セグメント <M> のエラー。この信号のサンプル値が 1 の場合はパケットにエラーが含まれることを示し、0 の場合はパケットのそれ以外の転送であることを示します。この信号は、tx_axis_tuser_ena<M> と tx_axis_tuser_eop<M> のサンプル値が 1 のサイクルでのみサンプルされます。
tx_axis_tuser_mty<M>[3:0] c0_axi_clk I

送信セグメント <M> エンプティ。このバスは、現在のパケットの最後の転送で tx_axis_tdata<M>[127:0] バスの何バイトが空または無効であったかを示します。このバスは、tx_axis_tuser_ena<M> と tx_axis_tuser_eop<M> のサンプル値が 1 のサイクルでのみサンプルされます。

tx_axis_tuser_eop<M> と tx_axis_tuser_err<M> のサンプル値が 1 の場合、tx_axis_tuser_mty<M>[2:0] の値は無視されて 000 として扱われ、tx_axis_tuser_mty<M>[3] は通常どおり使用されます。

tx_axis_tuser_chan<M>[10:0] c0_axi_clk I

送信セグメント <M> のチャネル番号。このバスは、書き込み中のパケットのチャネル番号を受信します。このバスの値は、tx_axis_tuser_ena<M> のサンプル値が 1 のサイクルごとにキャプチャされます。

パケット モードでは、パケットの開始 (SOP) からパケットの終了 (EOP) までのパケット転送時間中、チャネル番号は変わりません。バースト インターリーブ モードでは、バーストごとにチャネル番号が変わることがあります。

tx_axis_tuser_bctl<M> c0_axi_clk I

送信セグメント <M> のバースト制御ワードの強制挿入。この入力を使用して、バースト制御ワードを強制的に挿入します。tx_axis_tuser_bctl<M> と tx_axis_tuser_ena<M> のサンプル値が 1 の場合は、CFG_C0_TX_MAIN_REG レジスタの c0_ctl_tx_burstmax フィールドの値を確認する必要がなくても、tx_axis_tdata<M> [127:0] バス上のデータが送信される前にバースト制御ワードが挿入されます。

この入力は、Interlaken IP コアの外部にあるエンハンスト スケジューリング アルゴリズムによって使用されます。

重要: セグメント AXI4-Stream には、エンハンスト スケジューリングが必要です。ユーザーがエンハンスト スケジューリングを制御しない場合、Interlaken インターフェイス上でバースト違反が発生しないように、ILKNF サブシステムは自動的にエンハンスト スケジューリングを実行します。
c0_tx_ovfout c0_axi_clk O TX FIFO オーバーフロー信号。アサートされた場合、この信号は、c0_tx_rdyout 信号によるバック プレッシャー メカニズムに違反が発生したため、リセットしてクリアする必要があることを示します。ユーザー ロジックは、TX FIFO のオーバーフローが発生しないように設計する必要があります。
c0_tx_rdyout c0_axi_clk O 送信レディ。この信号は、ILKNF サブシステムの TX パスがデータ受け入れの準備ができているかどうかを示し、ユーザー ロジックに対するバック プレッシャーの役割を果たします。値が 1 の場合、ユーザー ロジックからコアへデータを渡すことができます。値が 0 の場合、ユーザー ロジックは、CFG_C0_TX_MISC_REG レジスタの c0_ctl_tx_rdyout_thresh[3:0] レジスタ フィールドで指定されるクロック数以内にコアへのデータ転送を停止する必要があります。
注記: TX AXI4-Stream では、ユーザー ロジックに対して TREADY が連続的にアサートされる (ロジック 1) ことが暗黙的に想定されます。バック プレッシャー信号 c0_tx_rdyout を使用して、ILKNF サブシステムの TX パスを通るデータを制御できます。
表 2. RX セグメント AXI4-Stream インターフェイス信号の説明
ポート名 クロック ドメイン I/O 説明
rx_axis_tdata<M>[127:0] c0_axi_clk I 受信セグメント <M> の AXI4-Stream データ。このバスの値は、rx_axis_tuser_ena<M> のサンプル値が 1 のサイクルでのみ有効です。
rx_axis_tuser_ena<M> c0_axi_clk I 受信セグメント <M> イネーブル。この信号は、RX AXI4-Stream インターフェイスのほかの信号を有効にします。RX AXI4-Stream インターフェイスの信号は、rx_axis_tuser_ena<M> のサンプル値が 1 のサイクルでのみ有効です。
rx_axis_tuser_sop<M> c0_axi_clk I 受信セグメント <M> のパケットの開始。この信号のサンプル値が 1 の場合、SOP を示します。この信号は rx_axis_tuser_ena<M> のサンプル値が 1 のサイクルでのみ有効です。
rx_axis_tuser_eop<M> c0_axi_clk I 受信セグメント <M> のパケットの終了。この信号のサンプル値が 1 の場合、EOP を示します。この信号は rx_axis_tuser_ena<M> のサンプル値が 1 のサイクルでのみ有効です。
rx_axis_tuser_err<M> c0_axi_clk I 受信セグメント <M> のエラー。この信号のサンプル値が 1 の場合、現在受信中のパケットにエラーがあることを示します。この信号は、rx_axis_tuser_ena<M> と rx_axis_tuser_eop<M> の両方のサンプル値が 1 のサイクルでのみ有効です。この信号の値が 0 の場合、現在受信中のパケットにエラーがないことを示します。
rx_axis_tuser_mty<M>[3:0] c0_axi_clk I

受信セグメント <M> エンプティ。このバスは、現在のパケットの最後の転送で rx_axis_tdata<M>[127:0] バスの何バイトが空または無効であったかを示します。このバスは、rx_axis_tuser_ena<M> と rx_axis_tuser_eop<M> の両方のサンプル値が 1 のサイクルでのみ有効です。

rx_axis_tuser_err<M> と rx_axis_tuser_ena<M> のサンプル値が 1 の場合、rx_axis_tuser_mty<M>[2:0] の値は常に 000 になり、rx_axis_tuser_mty<M>[3] は通常どおり使用されます。

rx_axis_tuser_chan<M>[10:0] c0_axi_clk I 受信セグメント <M> のチャネル番号。このバスは転送中のパケットのチャネル番号を示します。このバスは rx_axis_tuser_ena<M> のサンプル値が 1 のサイクルでのみ有効です。
注記: RX AXI4-Stream では、ユーザー ロジックから TREADY が連続的にアサートされる (ロジック 1) ことが暗黙的に想定されます。ILKNF サブシステムの RX パスを通るデータを制御するメカニズムはありません。