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

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

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

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

  • スタート・オブ・パケット (SOP) 信号およびエンド・オブ・パケット (EOP) 信号でフレーム転送を区切ります。
  • SOPは常にMSB内になければなりません。これにより、着信データの解釈と処理が簡単になります。
  • valid信号によってソースからシンクまでの信号を分類します。
  • シンクでは、ソースにバックプレッシャーをかけるためにReady信号を使用します。ソースは通常、シンクからのReady信号のデアサートに応答します。そのために、同じデータがシンクによって受け入れられるまで駆動します。readyLatencyで定義するのは、Ready信号のアサートとデアサートの関係や、データ転送が ready であると見なされるサイクルです。

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

表 18.  Avalon-ST TXクライアント・インターフェイスの信号すべてのインターフェイス信号のクロッキングは、i_clk_tx クロックにより行われます。H-tile Ethernet Hard IPのパラメーター・エディターで指定する Enter Ready Latency の値は、このインターフェイスのAvalon-ST readyLatency値です。

信号名

説明

i_clk_tx

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

i_tx_data[511:0]

TXデータです。

プリアンブル・パススルー機能がイネーブルされている場合、データは、プリアンブルから開始します。

H-tile Ethernet Hard IPでは、9バイト未満の着信パケットは処理しません。そのようなフレームが、TXクライアント・インターフェイスに到達しないようにしてください。IPコアでは、9から13バイトの着信パケットをエラーとしてマークするために、i_tx_error 信号をエンドオブパケットのクロックサイクルでアサートします。

各TXデータパケットの送信は、中間のIDLEサイクルなしで行ってください。したがって、アプリケーションでは、かならず単一パケットのデータの提供が、連続したクロックサイクルでできるようにしてください。データが使用できない場合は、データをデザインにバッファリングします。そして、i_tx_data で送信するパケットデータが使用可能であるか、または時間どおりに使用できるようになることが確認できたら i_tx_startofpacket をアサートしてください。

i_tx_data[0] はLSBです。

i_tx_valid

アサートされるとi_tx_data は有効です。この信号は、同じパケットに対する i_tx_startofpacketi_tx_endofpacket のアサート間で継続的にアサートされます。

i_tx_empty[5:0]

i_tx_endofpacket がアサートされたときの i_tx_data の空のバイト数を示します。

i_tx_startofpacket

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

i_tx_startofpacket がアサートされると、i_tx_data のMSBによってパケットの開始が駆動されます。
i_tx_endofpacket アサートされると、i_tx_data によってパケット内データの最後のクロックサイクルが保持されていることを示します (エンド・オブ・パケット)。アサートはパケットごとに1クロックサイクルの間だけ行います。

一部の正当なパケットでは、i_tx_startofpacket および i_tx_endofpacket は、同じクロックサイクルでアサートされます。

o_tx_ready アサートされると、MACによるデータの readyLatency クロックサイクルの受け入れが現在のサイクルの後にできることを示します。IPコアでは、o_tx_ready 信号をクロックサイクル <n> でアサートして、クロックサイクル <n +readyLatency> がreadyサイクルであることを示します。クライアントによるデータ転送は、readyサイクル中にのみできます。IPコアによる o_tx_ready のデアサートが、TX MACクライアント・インターフェイス上でのパケット転送中に行われると、クライアントでは、i_tx_data データのデータを停止する必要があります。

o_tx_ready 信号は、MACによる通常の動作モードでのデータの受信準備ができていることを示します。ただし、o_tx_ready 信号の表示は、リセット後は適切ではないことがあります。パケットの送信が、イーサネット・リンクによるパケットの送信が確実にできるようになる前に行われないようにするには、アプリケーションによるTXクライアント・インターフェイス上のパケット送信は、o_tx_lanes_stable 信号がアサートされるまでは行わないでください。

i_tx_error EOPサイクルで (i_tx_endofpacket がアサートされている間に) アサートされると、IPコアに指示して、パケットへのエラー挿入をイーサネット・リンクへのエラー送信前に行います。

この信号によるクライアントのサポートは、パケットの選択的無効化時に行われます。これは、テストとデバッグの機能でもあります。ループバック・モードでは、このパケットが戻ると、誤った形式のパケットとしてIPコアによって認識されます。

i_tx_pause アサートされると、IPコアに指示して、PAUSE XOFFフレームをイーサネット・リンク上で送信します。立ち上がりエッジによって要求がトリガーされます。この信号を1の値に維持する必要があるのは、IPコアによるPAUSE期間の終了までです。IPコアによるPAUSE XOFFフレームの送信は、現在のインフライトTXパケットの処理が完了した後と、またそれ以降も定期的に i_tx_pause 信号をデアサートするまで行います。i_tx_pause 信号をデアサートすると、IPコアでは、イーサネット・リンク上のPAUSE XONフレームを送信します。

この信号が機能するのは、標準のイーサネット・フロー制御がイネーブルされている場合のみです。

注: 標準イーサネット・フロー制御がイネーブルされるのは、RTLパラメーターの flow_control が、sfcsfc_no_xoffboth、または both_no_xoff のいずれかの場合です。RTLパラメーターの値をIPコア・インスタンスで指定しなかったが、IPコア・バリエーションを生成して、 Stop TX traffic when link partner sends pause の値をYesまたはNoに設定した場合は、一時停止フロー制御もイネーブルされます。
i_tx_pfc[7:0] ビットがアサートされると、IPコアに指示して、イーサネット・リンク上のPFC XOFFフレームの送信を対応するプライオリティー・ キューに対して行います。立ち上がりエッジによって要求がトリガーされます。この信号を1の値に維持する必要があるのは、IPコアによるPAUSE期間の終了までです。IPコアによるPFC XOFFフレームの送信は、現在のインフライトTXパケットの処理が完了した後と、またそれ以降は定期的に、i_tx_pfc ビットをデアサートするまで行います。そのビットをデアサートすると、IPコアでは、PFC XONフレームを対応するプライオリティー・ キューのイーサネット・リンク上に送信します。

この信号が機能するのは、プライオリティー・フロー制御がイネーブルされている場合のみです。

注: プライオリティー・フロー制御がイネーブルされるのは、RTLパラメーターの flow_control の値が、pfcpfc_no_xoffboth、または both_no_xoff のいずれかの場合です。RTLパラメーターの値をIPコア・インスタンスで指定しなかったが、IPコア・バリエーションを生成して、 Stop TX traffic when link partner sends pause の値をYesまたはNoに設定した場合、プライオリティー・フロー制御もイネーブルされます。
i_tx_skip_crc TX MACによる現在のTX MACクライアント・インターフェイス・パケットの処理方法を指定します。この信号を使用して、特定のパケットに対する送信元の挿入を一時的にオフにし、最小パケットサイズへのパディングおよびCRCの挿入というデフォルトのビヘイビアをオーバーライドします。

この信号がアサートされている場合は、TX MACに指示して、CRCの挿入、パディングバイトの追加、送信元アドレス挿入の実装はいずれも行わないようにします。この信号を使用して、i_tx_data のデータにCRC、パディングバイト (該当する場合) 、および正しい送信元アドレスが含まれていることを示します。

この信号がアサートされず、送信元アドレスの挿入がイネーブルになっている場合は、TX MACに指示して、送信元アドレスを上書きします。MACでは、新しい送信元アドレスを TXMAC_SADDR レジスターからコピーします。

この信号がアサートされていない場合は、送信元アドレスの挿入がイネーブルどうかにかかわらず、TX MACでは、パディングバイトを必要に応じて挿入し、CRCをパケットに挿入します。

クライアントでは、同じ値をこの信号で維持することが必要です。これをパケットの期間中 (i_tx_startofpacket をアサートするサイクルからi_tx_endofpacket をアサートするサイクルまで) 続けます。

次の例で示しているのは、転送されたデータへの readyLatency による影響です。

図 22.  H-tile Ethernet Hard IPコアのTX Avalon-ST MACクライアント・インターフェイス (readyLatency = 1)この例では、データレートは100Gbpsで、readyLatency は1です。
図 23.  H-tile Ethernet Hard IPコアのTX Avalon-ST MACクライアント・インターフェイス (readyLatency = 3)この例では、データレートは100Gbpsで、readyLatency は3です。