インテルのみ表示可能 — GUID: exa1600583964128
Ixiasoft
インテルのみ表示可能 — GUID: exa1600583964128
Ixiasoft
7.7. PCSモードのTXインターフェイス
F-Tile Ethernet Intel® FPGA Hard IP TXクライアント・インターフェイスのPCSバリエーションでは、Media Independent Interface (MII) プロトコルを採用しています。
送信方向において、クライアントはソースとして機能し、TX PCSはシンクとして機能します。
信号名 |
幅 | 内容 |
---|---|---|
i_tx_mii_d[1023:0] i_tx_mii_d[511:0] i_tx_mii_d[255:0] i_tx_mii_d[127:0] i_tx_mii_d[63:0] |
1024ビット (400GE) 512ビット (200GE) 256ビット (100GE) 128ビット (40GE/50GE) 64ビット (10GE/25GE) |
TX MIIデータ。データはMIIエンコーディングにする必要があります。i_tx_mii_d[7:0] では、IPコアがイーサネット・リンクで送信する最初のバイトを保持します。i_tx_mii_d[0] では、IPコアがイーサネット・リンクで送信する最初のビットを保持します。 TX MII Valid信号の値が0、またはアライメント・マーカー挿入ビット信号の値が1の期間とさらに1クロックサイクルの間、この信号の値を安定して保つ必要があります。この動作は信号値のフリーズと呼ばれます。 |
i_tx_mii_c[127:0] i_tx_mii_c[63:0] i_tx_mii_c[31:0] i_tx_mii_c[15:0] i_tx_mii_c[7:0] |
128ビット (400GE) 64ビット (200GE) 32ビット (100GE) 16ビット (40GE/50GE) 8ビット (10GE/25GE) |
TX MII制御ビット。各ビットは、TX MIIデータ信号の1バイトに対応します。例えば、i_tx_mii_c[0] は i_tx_mii_d[7:0] に対応し、i_tx_mii_c[1] は i_tx_mii_d[15:8] に対応します (以降も同様)。 ビットの値が1の場合、対応するデータバイトは制御バイトです。ビットの値が0の場合、対応するデータバイトはデータです。 |
i_tx_mii_valid |
1ビット | TX MIIデータ信号が有効であることを示します。 この信号は、IPコアでReady信号を立ち上げてから固定クロックサイクル数後にアサートし、IPコアでReady信号をデアサートしてから同じクロックサイクル数後にデアサートする必要があります。このクロックサイクル数は1から6の範囲になります。 |
o_tx_mii_ready |
1ビット | PCSで新しいデータを受信する準備ができていることを示します。 |
i_tx_mii_am |
1ビット | アライメント・マーカー挿入ビット。 |
上の図は、パケットをPCSモードのTXインターフェイスに直接書き込む方法を示しています。
- パケットの書き込みにはMIIを使用します。
- i_tx_mii_d の各バイトには対応するビットが i_tx_mii_c にあり、それによってそのバイトが制御バイトかデータバイトかを示します。例えば、i_tx_mii_c[1] は i_tx_mii_d[15:8] の制御ビットです。
- i_tx_mii_valid は、次の条件に準拠している必要があります。
- Valid信号は、Ready信号がアサートされている場合にのみアサートします。また、Ready信号がデアサートされている場合にのみデアサートします。
- この2つの信号の間隔は、1から6サイクルまでの固定レイテンシーになります。
- Valid信号がデアサートしたら、i_tx_mii_d および i_tx_mii_c を一時停止する必要があります。
- PCSモードのTXインターフェイスのバイト順序は、MAC Avalon® ストリーミング・インターフェイスのバイト順序と逆になります。バイトはLSBからMSBに流れます。インターフェイスから送信される最初のバイトは i_tx_mii_d[7:0] です。
- PCSモードのTXインターフェイスのビット順序は、MACクライアントのビット順序と同じです。インターフェイスから送信される最初のビットは i_tx_mii_d[0] です。
MIIデータ | MIIコントロール | イーサネット・パケット・バイト | ||
---|---|---|---|---|
i_tx_mii_d[7:0] | 0xFB | i_tx_mii_c[0] | 1 | パケットの開始 |
i_tx_mii_d[15:8] | 0x55 | i_tx_mii_c[1] | 0 | プリアンブル |
i_tx_mii_d[23:16] | 0x55 | i_tx_mii_c[2] | 0 | プリアンブル |
i_tx_mii_d[31:24] | 0x55 | i_tx_mii_c[3] | 0 | プリアンブル |
i_tx_mii_d[39:32] | 0x55 | i_tx_mii_c[4] | 0 | プリアンブル |
i_tx_mii_d[47:40] | 0x55 | i_tx_mii_c[5] | 0 | プリアンブル |
i_tx_mii_d[55:48] | 0x55 | i_tx_mii_c[6] | 0 | プリアンブル |
i_tx_mii_d[63:56] | 0xD5 | i_tx_mii_c[7] | 0 | SFD |
ファブリックでは、アライメント・マーカー挿入のタイミングを制御します。イーサネット・リンクを中断することなくアライメント・マーカーを遅延することはできません。有効なサイクルを使用して、アライメント・マーカーをカウントします。i_tx_mii_valid がLowの場合は、アライメント・マーカー・カウンターと入力をフリーズさせる必要があります。
アライメント・マーカーのカウントには、有効なサイクルのみを使用します。i_tx_mii_valid がLowの場合は、アライメント・マーカー・カウンターと入力データをフリーズさせる必要があります。
i_tx_mii_am がHighに保たれるサイクル数は、インターフェイスのレートによって異なります。
- 400GE: 2サイクル
- 200GE: 2サイクル
- 100GE: 5サイクル
- 50GE-2 (RS-FECあり) またはIEEEの50GE-1: 2サイクル
- 50GE-2 (RS-FECなし) または40GE: 2サイクル
- 25GE (RS-FECあり): 4サイクル
am期間のサイクル数は、インターフェイスのレートや、シミュレーションかハードウェアかによって異なります。
- シミュレーションでは一般的に、短いam期間をリンクの両側で使用してロックタイム時間の向上を目指します。
- 400GE: 640
- 200GE: 640
- 100GE: 1280
- 50GE-2 (RS-FECあり): 512
- 50GE-2 (RS-FECなし) または50GE: 640
- 40GE: 128
- 25GE (RS-FECあり): 1280
- ハードウェアの場合
- 400GE: 40960
- 200GE: 40960
- 100GE: 81920
- 50GE-2 (RS-FEC RS(272,258)) またはIEEEの50GE-1: 40960
- 40GEまたは50GE-2 (RS-FECなし): 32768
- 25GE (RS-FECあり): 81920
適切な動作を実現するには、MAC、PCS、およびオプションのFECをプログラムすることで、同じam期間を使用します。
FECモードでは、少なくとも2アライメント・マーカー期間が経過するまでTXデータパスのリセットは完全に終了しません。i_tx_mii_am の駆動は、適切な間隔で、o_tx_pll_lanes_stable がHighになる前に開始する必要があります。この信号は、o_tx_pll_locked がHighになり、o_tx_mii_ready のトグルが開始したらすぐに駆動することができます。外部カスタム・レート・インターフェイスを有効にしている場合は、i_custom_cadence の駆動を開始する必要があります。詳細は、カスタム・レート・インターフェイス を参照してください。