H-tile Ethernet Hard IPユーザーガイド: インテル® Stratix® 10デバイスおよび インテル® Agilex™ デバイス用

ID 683430
日付 12/08/2020
Public
ドキュメント目次

6.2. ユーザーロジックに対するRX MACインターフェイス

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

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

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

表 19.  Avalon-ST RXクライアント・インターフェイスの信号すべてのインターフェイス信号のクロッキングは、 i_clk_rx クロックにより行われます。

信号名

説明

i_clk_rx

IPコアのRXクロックは i_clk_rx です。このクロックの周波数は402.832MHzです。

o_rx_data[511:0]

RXデータです。最上位ビットはMSB、ビット0はLSBです。バイトは通常の左から右の順に読み出されます。IPコアによってバイト順が逆になり、イーサネット規格の要件が満たされます。プリアンブル・パススルー機能がイネーブルされている場合、データはプリアンブルから開始します。

o_rx_valid

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

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

o_rx_empty[5:0]

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

o_rx_startofpacket

アサートされると、o_rx_data によってパケット内データの最初のクロックサイクル (スタート・オブ・パケット) が保持されていることを示します。IPコアによるこの信号のアサートは、各パケットで1クロックサイクルの間だけ行われます。

o_rx_startofpacket がアサートされると、o_rx_data のMSBによってパケットの開始が駆動されます。
o_rx_endofpacket

アサートされると、o_rx_data によってパケット内データの最初のクロックサイクル (エンド・オブ・パケット) が保持されていることを示します。IPコアによるこの信号のアサートは、各パケットで1クロックサイクルの間だけ行われます。

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

o_rx_error[5:0] クライアント・インターフェイス上で内容を送信中のイーサネット・フレーム内の特定のタイプのエラーを報告します。この信号は、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 パラメーターで上書きしたものよりも大きくなります。

    フレームの形式が正しくない場合は、ここでは報告されません。

  • ビット [4]: ペイロード長エラー。このビットの値が1の場合、フレームで受信されたペイロードは、長さフィールドの値より短く、長さフィールドの値は1536バイト以下です。フレームがオーバーサイズまたはアンダーサイズの場合は、ここでは報告されません。フレームの形式が正しくない場合は、ここでは報告されません。
  • Bit [5]: 予約済み。
o_rxstatus_valid アサートされると、o_rxstatus_data が有効なデータを駆動していることを示します。
o_rxstatus_data[39:0]

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

  • [ビット39]: アサートされるとPFCフレームを示します。
  • [ビット38:36]: 予約済み。
  • [ビット38:36]: 予約済み。
  • [ビット34]: アサートされるとControl (タイプは0x8808) フレームを示します。
  • [ビット33]: アサートされるとVLANフレームを示します。
  • [ビット32]: アサートされるとスタックVLANフレームを示します。
  • ビット [31:0]: 予約済み。
o_rx_pause アサートされると、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ビットを表します。したがって、カウンターの減少は、有効クロックサイクルごとに2分の1です。

o_rx_pfc[7:0] ビットがアサートされると、IPコアによるPFC XOFFフレームのイーサネット・リンク上での受信が、対応するプライオリティー・キューに対して行われたことを示します。XOFFフレームのクォンタムカウントが期限切れになると、IPコアによって各ビットがデアサートされます。PFCクォンタムカウンターは、TX MACクライアント・インターフェイス上の有効なサイクルごとに減少します。各クォンタムは512ビットを表します。したがって、カウンターの減少は、有効なクロックサイクルごとに2分の1です。つまり、パルス幅で示されるのは、キューのトラフィックで要求された一時停止の長さです。
図 24.  H-tile Ethernet Hard Intel FPGA IPコアのRX Avalon-ST MACクライアント・インターフェイスIPコアのRXクライアント・インターフェイスの一般的なトラフィックを示します。