インテルのみ表示可能 — GUID: hcj1552875661844
Ixiasoft
インテルのみ表示可能 — GUID: hcj1552875661844
Ixiasoft
2.11.8. ユーザーロジックへのRXカスタムPCSインターフェイス
カスタムPCSバリエーションでのイーサネット インテルFPGA IP向けEタイル ハードIP RXクライアント・インターフェイスでは、MIIプロトコルを採用しています。
RX PCSはソースとして、クライアントはシンクとして受信方向で機能します。
信号名 |
幅 | 説明 |
---|---|---|
i_sl_clk_rx i_sl_clk_rx[n-1:0] |
各チャネルで1ビット | チャネルを駆動するIPコアのRXクロック。 |
o_sl_rx_mii_d[(n*width)-1:0] |
各チャネルで64 ビット |
RX MIIデータ。データはMIIエンコーディングです。 i_rx_mii_d[7:0] では、IPコアによってイーサネット・リンク上で送信される最初のバイトを保持します。 i_rx_mii_d[0] では、IPコアによってイーサネット・リンクで送信された最初のビットを保持します。 RX MII valid信号の値が0の場合、またはRX validアラインメント・マーカー信号の値が1の場合、この信号の値は無効です。 |
o_sl_rx_mii_c[(n*width)-1:0] |
各チャネルで8 ビット |
RX MII制御ビット。各ビットは、RX MIIデータ信号の1バイトに対応しています。例えば、 i_rx_mii_c[0] は i_rx_mii_d[7:0] に対応し、 i_rx_mii_c[1] は i_rx_mii_d[15:8] に相当します。 ビットの値が1の場合、対応するデータバイトは制御バイトです。ビットの値が0の場合、対応するデータバイトはデータです。 Start of Packetバイト (0xFB) 、End of Packetバイト (0xFD) 、Idleバイト (0x07) 、およびエラーバイト (0xFE) は制御バイトですが、プリアンブル・バイト、Start of Frame (SFD) バイト (0xD5) 、CRCバイト、およびペイロードバイトはデータバイトです。 RX MII valid信号の値が0、またはRX validアラインメント・マーカー信号の値が1の場合は、この信号の値は無効です。 |
o_sl_rx_mii_valid[n-1:0] |
各チャネルで1ビット | RX MIIデータ、RX MII制御ビット、およびRX validアラインメント・マーカー信号が有効であることを示します。 |
o_sl_rx_mii_am_valid[n-1:0] |
各チャネルで1ビット | IPコアがイーサネット・リンク上でvalidアラインメント・マーカーを受信したことを示します。 RX MII valid信号の値が0の場合、この信号の値は無効です。RX MII valid信号の値は、IPコアによるこの信号のアサート中に低下することがあります。 |
上の図で示しているのは、PCSモードのRXインターフェイスを使用してパケットをRX PCSから読み出す方法です。
- パケットはMIIエンコードされています。
- i_rx_mii_d 内の各バイトには、対応するビットが i_rx_mii_c 内にあり、そのバイトが制御バイトかデータバイトかが示されます。例えば、 o_rx_mii_c[2] は、 o_rx_mii_d[23:16] の制御ビットです。
- データが有効なのは、 o_rx_mii_valid がHighの場合のみです。o_rx_mii_d および o_rx_mii_c バスの内容の定義は、 o_rx_mii_valid がLowの場合はされません。
- PCSモードのRXインターフェイスのバイトオーダーは、MACクライアントのバイトオーダーと逆です。バイトの流れは右から左です。コアで受信する最初のバイトは i_rx_mii_d[7:0] です。
- PCSモードのRXインターフェイスのビットオーダーは、MACクライアントのバイトオーダーと同じです。コアで受信する最初のバイトは o_rx_mii_d[0] です。
MIIデータ | MII制御 | イーサネット・パケット・バイト | ||
---|---|---|---|---|
o_rx_mii_d[7:0] | 0xFB | o_rx_mii_c[0] | 1 | Start of Packet |
o_rx_mii_d[15:8] | 0x55 | o_rx_mii_c[1] | 0 | Preamble |
o_rx_mii_d[23:16] | 0x55 | o_rx_mii_c[2] | 0 | Preamble |
o_rx_mii_d[31:24] | 0x55 | o_rx_mii_c[3] | 0 | Preamble |
o_rx_mii_d[39:32] | 0x55 | o_rx_mii_c[4] | 0 | Preamble |
o_rx_mii_d[47:40] | 0x55 | o_rx_mii_c[5] | 0 | Preamble |
o_rx_mii_d[55:48] | 0x55 | o_rx_mii_c[6] | 0 | Preamble |
o_rx_mii_d[63:56] | 0xD5 | o_rx_mii_c[7] | 0 | SFD |
o_rx_mii_am_valid は、RX PCSからのアラインメント・マーカーの到着を示します。アラインメント・マーカーは o_rx_mii_valid にも依存します。 o_rx_mii_validがLowの場合、 o_rx_mii_am_valid は無効です。
o_rx_mii_d および o_rx_mii_c バスの内容の定義は、o_rx_mii_valid がLowの場合はされません。これは、アラインメント・マーカーが64b/66bエンコーディングの一部ではなく、MIIと同等のものがないためです。