インテルのみ表示可能 — GUID: ovh1552875607996
Ixiasoft
インテルのみ表示可能 — GUID: ovh1552875607996
Ixiasoft
2.11.7. ユーザーロジックへのTXカスタムPCSインターフェイス
カスタムPCSバリエーションのイーサネット インテルFPGA IP向けEタイル ハードIP TXクライアント・インターフェイスでは、メディア独立インターフェイス (MII) プロトコルを採用しています。
クライアントはソースとして機能し、TX PCSは送信方向のシンクとして機能します。
信号名 |
幅 | 説明 |
---|---|---|
i_sl_clk_tx[n-1:0] |
各チャネルで1ビット | チャネルを駆動するIPコアのTXクロックです。 |
i_sl_tx_mii_d[(n*width)-1:0] |
各チャネルで64 ビット |
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[(n*width):0] |
各チャネルで8ビット |
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[n-1:0] |
各チャネルで1ビット | TX MIIデータ信号が有効であることを示します。 この信号のアサートは、IPコアによるready信号の立ち上げ後に固定クロックサイクル数行い、この信号のディアサートは、IPコアによるready信号のディアサート後に、同じクロックサイクル数だけ行ってください。この数は1から10クロックサイクルの範囲内にしてください。 この信号の値を0に保持している間は、TX MIIデータおよびTX MII制御ビット信号の両方の値を安定した状態でフリーズしてください。 |
o_sl_tx_mii_ready[n-1:0] |
各チャネルで1ビット | PCSで新しいデータの受信準備ができていることを示します。 |
i_sl_tx_mii_am i_sl_tx_mii_am[n-1:0] |
各チャネルで1ビット | アラインメント・マーカー挿入ビット。
アラインメント・マーカー挿入ビット信号のディアサートからアラインメント・マーカー挿入ビット信号の再アサートまでの有効クロックサイクル数は am_period です。 シミュレーション用にこの設定を処理し、シミュレーション用に i_tx_mii_am信号を適切に駆動する例については、PCS OnlyバリエーションのIPコアのデザイン例を参照してください。IPコアのデザイン例の生成方法については、 E-tile Hard IP for Ethernet Design Example User Guideを参照してください。 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 のサイクル数は、インターフェイスのレートによって異なります。
- リンク (RS-FEC付き) : 4サイクル
- リンク (RS-FEC付き) : 4サイクル
am期間のサイクル数は、インターフェイスの速度やシミュレーションとハードウェアのどちらであるかによって異なります。
- シミュレーションでは、一般的には、リンクの両側で短いam期間を使用して、ロックタイムの速度を上げます。RSFECがイネーブルのリンクのam期間は5119に設定されています。
- ハードウェアでは、RSFECがイネーブルのリンクのam期間は81916に設定されています。