インテルのみ表示可能 — GUID: iyc1519721735516
Ixiasoft
インテルのみ表示可能 — GUID: iyc1519721735516
Ixiasoft
2.11.3. ユーザーロジックへのTX PCSインターフェイス
PCS Onlyバリエーションのイーサネット インテルFPGA IP向けEタイル ハードIP TXクライアント・インターフェイスでは、メディア独立インターフェイス (MII) プロトコルを採用しています。
クライアントはソースとして機能し、TX PCSは送信方向のシンクとして機能します。
信号名 |
幅 | 説明 |
---|---|---|
i_sl_clk_tx i_sl_clk_tx[n-1:0] i_clk_tx |
各チャネルで1ビット | チャネルを駆動するIPコアのTXクロック。 |
i_sl_tx_mii_d i_sl_tx_mii_d[n-1:0] i_tx_mii_d |
各チャネルで64ビット (10G/25G) 256ビット (100G) |
TX MIIデータ。データはMIIエンコーディングにしてください。 i_tx_mii_d[7:0] では、IPコアによってイーサネット・リンク上で送信される最初のバイトを保持します。 i_tx_mii_d[0] では、IPコアによってイーサネット・リンクで送信される最初のビットを保持します。 TX MII valid信号の値が0、またはアラインメント・マーカー挿入ビット信号の値が1の間は、さらに1クロックサイクルの間、この信号の値を安定した状態に保つ必要があります。このビヘイビアを信号値のフリーズと呼んでいます。 |
i_sl_tx_mii_c i_sl_tx_mii_c[n-1:0] i_tx_mii_c |
各チャネルで8ビット (10G/25G) 32 ビット (100G) |
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の場合、対応するデータバイトはデータです。 Start of Packetバイト (0xFB) 、End of Packetバイト (0xFD) 、Idleバイト (0x07) 、およびエラーバイト (0xFE) は制御バイトですが、プリアンブル・バイト、Start of Frame (SFD) バイト (0xD5) 、CRCバイト、およびペイロードバイトはデータバイトです。 TX MII valid信号の値が0、またはアラインメント・マーカー挿入ビット信号の値が1の間は、この信号の値をフリーズする必要があります。 |
i_sl_tx_mii_valid i_sl_tx_mii_valid[n-1:0] i_tx_mii_valid |
各チャネルで1ビット | TX MIIデータ信号が有効であることを示します。 この信号のアサートは、IPコアによるready信号の立ち上げ後に固定クロックサイクル数だけ行い、この信号のディアサートは、IPコアによるready信号のディアサート後に、同じクロックサイクル数だけ行ってください。この数は1から10クロックサイクルの範囲内にしてください。 この信号の値を0に保持している間は、TX MIIデータおよびTX MII制御ビット信号の両方の値を安定した状態でフリーズしてください。 |
o_sl_tx_mii_ready o_sl_tx_mii_ready[n-1:0] o_tx_mii_ready |
各チャネルで1ビット | PCSで新しいデータの受信準備ができていることを示します。 |
i_sl_tx_mii_am i_sl_tx_mii_am[n-1:0] i_tx_mii_am |
各チャネルで1ビット | アラインメント・マーカー挿入ビット。
アラインメント・マーカー挿入ビット信号のディアサートからアラインメント・マーカー挿入ビット信号の再アサートまでの有効クロックサイクル数は am_period です。 シミュレーション用にこの設定を処理し、シミュレーション用にi_tx_mii_am信号を適切に駆動する例については、PCS OnlyのバリエーションのIPコアのデザイン例を参照してください。IPコアのデザイン例の生成方法については、 デザイン例ユーザーガイドを参照してください。 sim_mode RTLパラメーターについては、このユーザーガイドのRTLパラメーターの項を参照してください。この信号の値を1に保持している間は、TX MIIデータとTX MII制御ビット信号の両方の値をフリーズしてください。 |
上の図で示しているのは、パケットを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から10サイクルまでの固定レイテンシーで間隔を空けます。
- valid信号がディアサートされたら、 i_tx_mii_d および i_tx_mii_c を一時停止させてください。
- PCSモードのTXインターフェイスのバイトオーダーは、MACクライアントのバイトオーダーと逆です。バイトの流れは右から左です。インターフェイスから送信される最初のバイトは 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 | Start of Packet |
i_tx_mii_d[15:8] | 0x55 | i_tx_mii_c[1] | 0 | Preamble |
i_tx_mii_d[23:16] | 0x55 | i_tx_mii_c[2] | 0 | Preamble |
i_tx_mii_d[31:24] | 0x55 | i_tx_mii_c[3] | 0 | Preamble |
i_tx_mii_d[39:32] | 0x55 | i_tx_mii_c[4] | 0 | Preamble |
i_tx_mii_d[47:40] | 0x55 | i_tx_mii_c[5] | 0 | Preamble |
i_tx_mii_d[55:48] | 0x55 | i_tx_mii_c[6] | 0 | Preamble |
i_tx_mii_d[63:56] | 0xD5 | i_tx_mii_c[7] | 0 | SFD |
アラインメント・マーカー挿入のタイミングは非常に厳格です。アラインメント・マーカーの遅延には、イーサネット・リンクの中断が必要です。有効なサイクルを使用してアラインメント・マーカーをカウントします。 i_tx_mii_valid がLowの場合、アラインメント・マーカー・カウンターおよび入力はフリーズしてください。
Highに保たれる i_tx_mii_am のサイクル数は、インターフェイスのレートによって異なります。
- 100G : 5サイクル
- 25Gx1 (RS-FEC付き): 4サイクル
- 10Gx1または25x1 (PTPまたはRS-FECなし) : 0サイクル (Lowに接続)
am期間のサイクル数は、インターフェイスの速度やシミュレーションとハードウェアのどちらであるかによって異なります。
- シミュレーションでは、一般的には、リンクの両側で短いam期間を使用して、ロックタイムの速度を上げます。
- 100Gリンク : 315
- 25G×1リンク (RS-FEC付き) : 5119
- ハードウェアでは、
- 100Gリンク : 81915
- 25G×1リンク (RS-FEC付き) : 81916