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

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

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

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

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

表 34.  MII RXクライアント・インターフェイス信号インターフェイス信号はすべて、RXクロックによってクロッキングされます。信号名は標準のAvalon-ST信号で、わずかな違いによってバリエーションを示します。信号名の n の文字はチャネル数を表しています。例えば、チャネル1のMII TXデータの名前は、 i_sl_tx_mii_d[(n*width)-1:0] です。

信号名

説明

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コアによるこの信号のアサート中に低下することがあります。

図 49. 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バイトブロックです)。
表 35.  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
図 50. アラインメント・マーカーの受信

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