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

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

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

MAC+PCSバリエーションのイーサネット インテルFPGA IP向けEタイル ハードIP RXクライアント・インターフェイスでは、Avalon-STプロトコルを採用しています。Avalon-STプロトコルは、同期ポイントツーポイントの単方向インターフェイスであり、データストリームのプロデューサー (ソース) とデータのコンシューマー (シンク) を接続します。このインターフェイスの主なプロパティーは次の通りです。

  • パケット開始 (SOP) 信号およびパケット終了 (EOP) 信号でフレーム転送を区切ります。
  • SOPは常にMSB内に存在させる必要があります。これにより、インターフェイスでの着信データの解釈および処理が簡単になります。
  • valid信号によって信号をソースからシンクへ限定します。

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

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

名前

説明

i_sl_clk_rx

i_sl_clk_rx[n-1:0]

i_clk_rx

各チャネルで1ビット

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

o_sl_rx_data

o_sl_rx_data[n-1:0]

o_rx_data

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

512 ビット (100G)

RXデータ。最上位ビットはMSB、ビット0はLSBです。バイトは通常の左から右の順に読み出されます。IPコアによってバイト順が逆になり、イーサネット規格の要件が満たされます。

o_sl_rx_valid

o_sl_rx_valid[n-1:0]

o_rx_valid

各チャネルで1ビット

アサートされると、RXデータが有効であることを示します。SOP信号とEOP信号の間でのみ有効です。

この信号がディアサートされる可能性があるのは、SOP信号とEOP信号のアサートの間です。

o_sl_rx_empty

o_sl_rx_empty[n-1:0]

o_rx_empty

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

各チャネルで6ビット (100G)

RXデータ信号上の空のバイト数を示します。これは、EOP信号がアサートされたときに行われ、最下位バイト (LSB) から始まります。

o_sl_rx_startofpacket

o_sl_rx_startofpacket[n-1:0]

o_rx_startofpacket

各チャネルで1ビット

アサートされると、RXデータ信号によるパケット内データの最初のクロックサイクルの保持を示します (パケットの開始) 。IPコアによるこの信号のアサートは、各パケットで1クロックサイクルの間だけです。

SOP信号がアサートされると、RXデータのMSBによってパケットの開始が駆動されます。

o_sl_rx_endofpacket

o_sl_rx_endofpacket[n-1:0]

o_rx_endofpacket

各チャネルで1ビット

アサートされると、RXデータ信号によるパケット内データの最初のクロックサイクルの保持を示します (パケットの終了) 。IPコアによるこの信号のアサートは、各パケットで1クロックサイクルの間だけです。 SOP信号がアサートされると、RXデータのMSBによってパケットの終了が駆動されます。

サイズが小さいフレームの場合、または長さがちょうど64バイトのフレームの場合は、SOP信号とEOP信号のアサートは、同じクロックサイクルで行われることがあります。

o_sl_rx_error

o_sl_rx_error[n-1:0]

o_rx_error

各コントローラーで6 ビット クライアント・インターフェイス上で内容を送信中のイーサネット・フレーム内の特定のタイプのエラーを報告します。この信号は、EOPサイクル内でのみ有効です。

個々のビットによってさまざまなタイプのエラーが報告されます。

  • ビット [0] : 誤った形式のパケットエラー。このビットの値が1の場合は、パケットの形式に誤りがあります。 誤った形式のパケットがIPコアによって識別されるのは、制御文字のうち終端文字以外のものを受信した場合です。
  • ビット [1] : CRCエラー。このビットの値が1の場合、IPコアによってフレーム内のCRCエラーまたはエラー文字が検出されたということです。
  • ビット [2] : アンダーサイズ・フレーム。このビットの値が1の場合、フレームサイズは9バイトから63バイトです。このとき、IPコアでは、o_rx_error[1] を設定して、CRCエラーを通知します。

    IPコアでは、サイズが8バイト以下の着信フレームはフレームとして認識しないため、そのようなケースはここでは報告されません。プリアンブル・パススルーおよびCRC転送の設定が原因で、RX MACによってバイトが削除され、フレーム内に8バイト以下しか残らないと、IPコアではフレームを認識しないため、そのようなケースはここでは報告されません。フレームの形式が正しくない場合は、ここでは報告されません。

  • ビット [3] : オーバーサイズ・フレーム。このビットの値が1の場合、フレームサイズは、パラメーター・エディターの RX Maximum Frame Size パラメーター値として指定した最大フレームサイズまたは rx_max_frame_size RTLパラメーターで上書きしたものよりも大きくなります。

    フレームに誤りがある場合は、ここでは報告されません。

  • ビット [4] : ペイロード長エラー。このビットの値が1の場合、フレームで受信されたペイロードは、長さフィールドの値より短く、長さフィールドの値は1500バイト以下です。フレームがオーバーサイズまたはアンダーサイズの場合は、ここでは報告されません。フレームの形式に誤りがある場合は、ここでは報告されません。
  • ビット [5] : 予約済み。

o_sl_rxstatus_valid

o_sl_rxstatus_valid[n-1:0]

o_rxstatus_valid

各チャネルで1ビット アサートされると、 o_rxstatus_data が有効なデータを駆動していることを示します。

o_sl_rxstatus_data

o_sl_rxstatus_data[n-1:0]

o_rxstatus_data

各コントローラーで40ビット

受信フレームに関する情報を指定します。次のフィールドが定義されます。

  • [ビット39] : アサートされるとPFCフレームを示します。
  • [ビット38:36] : 予約済み
  • [ビット35] : アサートされるとPAUSEフレームを示します。
  • [ビット34] : アサートされるとControl (タイプは0x8808) フレームを示します。
  • [ビット33] : アサートされるとVLANフレームを示します。
  • [ビット32] : アサートされるとスタックVLANフレームを示します。
  • ビット [31:0] : 予約済み

o_sl_rx_pause

o_sl_rx_pause[n-1:0]

o_rx_pause

各チャネルで1ビット アサートされると、IPコアによってPAUSE XOFFフレームの受信がイーサネット・リンク上で行われたことを示します。IPコアによってこの信号がディアサートされるのは、PAUSE XOFF要求からのクアンタカウントが期限切れになった場合です。

パラメーター・エディターの Stop TX traffic when link partner sends pause パラメーターをYesの値に設定するか、 flow_control RTLパラメーターをsfc または both の値で上書きすると、TX MACでは、PAUSE XOFFフレームに応答してトラフィックを停止します。 この場合クアンタカウントは、IPコアによるトラフィックの停止中は減少します。

設定によってTX MACに指示して、PAUSE XOFFフレームに応答したトラフィックの停止がされない場合、クアンタカウンターは、TX MACクライアント・インターフェイス上の有効なサイクルごとに減少します。各クアンタでは512ビットを表します。したがって、カウンターの減少は、100Gバリエーションの場合、有効なクロックサイクルごとに2分の1です。

o_sl_rx_pfc

o_sl_rx_pfc[n-1:0]

o_rx_pfc

各コントローラーで8ビット ビットがアサートされると、IPコアによるPFC XOFFフレームのイーサネット・リンク上での受信が、対応するプライオリティー・キューに対して行われたことを示します。XOFFフレームのクアンタカウントが期限切れになると、IPコアによって各ビットがディアサートされます。PFCクアンタカウンターは、TX MACクライアント・インターフェイス上の有効なサイクルごとに減少します。各クアンタは512ビットを表します。したがって、カウンターの減少は、100Gバリエーションの場合、有効なクロックサイクルごとに2分の1です。つまり、パルス幅で示されるのは、キューのトラフィックで要求された一時停止の長さです。
図 36. RX MACクライアント・インターフェイスを使用したデータ受信

上の図で示しているのは、RX MACクライアント・インターフェイスを使用したデータ受信方法です。このインターフェイスは、Avalon-STインターフェイス仕様に準拠しています。

  • パケットの開始は、常に i_rx_data のバイトの左端からです。 (SOPは整列)
  • フレームが終了すると、 i_rx_empty の設定は、 i_rx_data の未使用のバイト数になります。開始は右 (バイト0) からです。
    • この例では、パケットの最後のサイクルの i_rx_data には、空のバイトが5つあります。
    • 最後のサイクルの最小バイト数は1です。
  • フレーミング・ポートおよびデータポートが有効なのは、 o_rx_data がHighの場合のみです。
注: インターフェイスでは直接のバックプレッシャーは受けません。
表 24.  o_rx_data内のRX MACフィールドの位置 (プリアンブル・パススルーがディスエーブルの場合)
100G

i_tx_data

10G/25G

i_sl_tx_data

MACフィールド
[511:504] [63:56]’ Dest Addr[47:40] 送信先アドレスの最初のオクテットは、開始フレーム区切り文字 (SFD) に従います。
[503:496] [55:48]’ Dest Addr[39:32]  
[495:488] [47:40]’ Dest Addr[31:24]  
[495:480] [39:32]’ Dest Addr[23:16]  
[479:472] [31:24]’ Dest Addr[15:8]  
[471:464] [23:16]’ Dest Addr[7:0]  
[463:456] [15:8]’ Src Addr[47:40]  
[455:448] [7:0]’ Src Addr[39:32]  
[447:440] [63:56] Src Addr[31:24]  
[439:432] [55:48] Src Addr[23:16]  
[431:424] [47:40] Src Addr[15:8]  
[423:416] [39:32] Src Addr[7:0]  
[415:408] [31:24] Length/Type[15:0]  
[407:400] [23:16] Length/Type[7:0]  
[399:0] [15:0]  
図 37. RX MACステータスおよびエラーこの図で示しているのは、RXパケット到着時のステータスおよびエラー情報の表示方法です。

status validポートは、下位互換性のために提供されています。ただし、 o_rx_endofpacket がアサートされて有効な場合は常にアサートされます。