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

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

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

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

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

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

信号名

説明

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ビット アラインメント・マーカー挿入ビット。
  • RS-FEC付きの25Gx1バリエーションでは、この信号を連続して4クロックサイクルの間アサートしたままにしてください。
  • RS-FECなしの25Gx1バリエーションでは、この信号をLowに接続してください。

アラインメント・マーカー挿入ビット信号のディアサートからアラインメント・マーカー挿入ビット信号の再アサートまでの有効クロックサイクル数は 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制御ビット信号の両方の値をフリーズしてください。

図 47. PCSモードのTXインターフェイスを使用したデータ送信

上の図で示しているのは、パケットを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] です。
注: PCSモードのTXインターフェイスはSOP整列ではありません。パケットの正当な順序付けは、MII形式の場合はいずれも受け入れられます。
表 33.  PCSモードのTXインターフェイスへのプリアンブルを備えた開始パケットブロックの書き込み
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
図 48. アラインメント・マーカーの挿入

アラインメント・マーカー挿入のタイミングは非常に厳格です。アラインメント・マーカーの遅延には、イーサネット・リンクの中断が必要です。有効なサイクルを使用してアラインメント・マーカーをカウントします。 i_tx_mii_valid がLowの場合、アラインメント・マーカー・カウンターおよび入力はフリーズしてください。

Highに保たれる i_tx_mii_am のサイクル数は、インターフェイスのレートによって異なります。

  • リンク (RS-FEC付き) : 4サイクル
  • リンク (RS-FEC付き) : 4サイクル

am期間のサイクル数は、インターフェイスの速度やシミュレーションとハードウェアのどちらであるかによって異なります。

  • シミュレーションでは、一般的には、リンクの両側で短いam期間を使用して、ロックタイムの速度を上げます。RSFECがイネーブルのリンクのam期間は5119に設定されています。
  • ハードウェアでは、RSFECがイネーブルのリンクのam期間は81916に設定されています。