Eタイル ハードIPユーザーガイド: イーサネット インテルFPGA IP向けEタイル ハードIPおよび EタイルCPRI PHYインテルFPGA IP

ID 683468
日付 5/17/2019
Public
ドキュメント目次

2.11.4. ユーザーロジックへのRX PCSインターフェイス

PCS Onlyバリエーションのイーサネット インテルFPGA IP向けEタイル ハードIP RXクライアント・インターフェイスでは、メディア独立インターフェイス (MII) プロトコルを採用しています。

RX PCSはソースとして、クライアントはシンクとして受信方向で機能します。

表 27.  MII RXクライアント・インターフェイス信号インターフェイス信号はすべて、RXクロックによってクロッキングされます。信号名は標準のAvalon-ST信号で、わずかな違いによってバリエーションを示します。例 :
  • シングル10GE/25GEチャネルを持つバリアントの場合 : i_sl_rx_data
  • 1つ以上のチャネルを持つバリアントの場合 : i_sl_rx_data[n-1:0]
  • シングル100Eチャネルを持つバリアントの場合 : i_rx_data

信号名

説明

i_sl_clk_rx

i_sl_clk_rx[n-1:0]

i_clk_rx

各チャネルで1ビット

チャネルを駆動するIPコアのRXクロック。

o_sl_rx_mii_d

o_sl_rx_mii_d[n-1:0]

o_rx_mii_d

各チャネルで64ビット (10G/25G)

256 ビット (100G)

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

o_sl_rx_mii_c[n-1:0]

o_rx_mii_c

各チャネルで8ビット (10G/25G)

32ビット (100G)

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

o_sl_rx_mii_valid[n-1:0]

o_rx_mii_valid

各チャネルで1ビット RX MIIデータ、RX MII制御ビット、およびRX validアラインメント・マーカー信号が有効であることを示します。

o_sl_rx_mii_am_valid

o_sl_rx_mii_am_valid[n-1:0]

o_rx_mii_am_valid

各チャネルで1ビット IPコアがイーサネット・リンク上で有効なアラインメント・マーカーを受信したことを示します。

RX MII valid信号の値が0の場合、この信号の値は無効です。RX MII valid信号の値は、IPコアによるこの信号のアサート中に低下することがあります。

この信号は、PCS_ONLYモードで考慮されます。他のモードでは無視しても問題ありません。

o_sl_rx_pcs_fully_aligned

o_sl_rx_pcs_fully_aligned[n-1:0]

o_rx_pcs_fully_aligned

各チャネルで1ビット RX PCSでデータの受信準備ができたときにアサートします。
図 40. PCSモードのRXインターフェイスを使用したデータ受信

上の図で示しているのは、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] です。
注: PCSモードのRXインターフェイスはSOP整列ではありません。新しいパケットの開始は、8で割り切れる任意のバイト位置からすることができます (PCSデータの転送は8バイトブロックです)。
表 28.  PCSモードのTXインターフェイスからのプリアンブルを備えた開始パケットブロックの読み出し
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
図 41. アラインメント・マーカーの受信

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と同等のものがないためです。