Low Latency 100G Ethernet Intel® IPコア・ユーザーガイド: インテル® Stratix® 10デバイス用

ID 683100
日付 5/21/2021
Public
ドキュメント目次

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

Low Latency 100G Ethernet Intel FPGA IPコアのRXデータパスでは、 Avalon® ストリーミング・インターフェイス・プロトコルを採用しています。 Avalon® ストリーミング・インターフェイス・プロトコルは、同期ポイントツーポイントの単方向インターフェイスで、データストリームのプロデューサー (ソース) とデータのコンシューマー (シンク) を接続します。このインターフェイスの主なプロパティーは次のとおりです。

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

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

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

信号名

入力/出力

説明

clk_rxmac 出力

IPコアのRXクロックは clk_rxmac です。IPコアは、受信データからこのクロックを回復します。このクロックは、rx_pcs_ready がアサートされたときに安定していることが保証されています。このクロックの周波数は390.625MHzです。

l8_rx_data[511:0]

出力

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

l8_rx_empty[5:0]

出力

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

l8_rx_startofpacket

出力

アサートされると、パケットの開始を示します。パケットはMSBで始まります。

l8_rx_endofpacket

出力

アサートされると、パケットの終了を示します。

サイズが小さいパケット、または長さがちょうど64バイトのパケットの場合は、l8_rx_startofpacket および l8_rx_endofpacket のアサートは、同じクロックサイクルで行われます。

l8_rx_error[5:0] 出力 現在クライアント・インターフェイスで内容を送信中のイーサネット・フレーム内の特定のタイプのエラーを報告します。この信号はEOPサイクルでのみ有効です。

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

  • ビット[0]: 不正な形式のパケットエラー。このビットの値が1の場合は、パケットの形式に不正があります。IPコアでは、パケットの受信中に終端文字以外の制御文字を受信すると、不正な形式のパケットを識別します。
  • ビット[1]: CRCエラー。このビットの値が1の場合、IPコアによってフレーム内のCRCエラーが検出されたということです。
  • ビット[2]: アンダーサイズ・ペイロード。このビットの値が1の場合、フレームサイズは9バイトから63バイトです。IPコアでは、サイズが8バイト以下の着信フレームをフレームとして認識しないため、これらのケースはここでは報告されません。l8_rx_error[1] ビットもFCSエラーを通知します。
  • ビット[3]: オーバーサイズ・ペイロード。このビットの値が1の場合、フレームサイズは、オフセット0x506で RXMAC_SIZE_CONFIG レジスターにプログラムされている最大フレームサイズよりも大きくなります。
  • ビット[4]: ペイロード長エラー。このビットの値が1の場合、フレームで受信されたペイロードは、長さフィールドの値と一致せず、長さフィールドの値は1536バイト未満です。
  • ビット[5]: 予約済み。
l8_rx_valid

出力

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

この信号は、次のアサーションの間にデアサートされる可能性があります。 l8_rx_startofpacket のアサートと l8_rx_endofpacket のアサートの間でデアサートされる可能性があります。

l8_rxstatus_valid 出力 アサートされると、l8_rxstatus_data が有効なデータを駆動していることを示します。この信号は、l8_rx_endofpacket信号と同じように動作します。
l8_rxstatus_data[39:0] 出力

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

  • ビット[39]: アサートされるとPFCフレームを示します。
  • ビット[38]: アサートされると、ユニキャスト・フレームを示します。
  • ビット[37]: アサートされると、マルチキャスト・フレームを示します。
  • ビット[36]: アサートされると、ブロードキャスト・フレームを示します。
  • ビット[35]: アサートされると、一時停止フレームを示します。
  • ビット[34]: アサートされると、制御フレームを示します。
  • ビット[33]: アサートされると、VLANフレームを示します。
  • ビット[32]: アサートされると、スタックVLANフレームを示します。
  • ビット[31:16]: 宛先アドレスの最初のバイトからFCSの最後のバイトまでのフレーム長を指定します。
  • ビット[15:0]: ペイロード長を指定します。
図 19. Low Latency 100G Ethernet Intel FPGA IP用のRX Avalon-STクライアント・インターフェイスのトラフィックIPコアのRXクライアント・インターフェイスの一般的なトラフィックを示しています。