JESD204B Intel® FPGA IPユーザーガイド

ID 683442
日付 8/18/2022
Public
ドキュメント目次

5.2. プログラム可能なRBDオフセット

RX IPコアでは、プログラム可能なRBDオフセットにより、初期のRBDリリースがIPコアを介してレイテンシーを最適化するための柔軟性が提供されます。syncn_sysref_ctrl レジスターの csr_rbd_offset フィールドを使用して、RBDオフセットをコンフィグレーションできます。

安全なRBDオフセット値を設定して、あるパワーサイクルから別のパワーサイクルまでの確定レイテンシーを確保する必要があります。次の手順に従って、安全なRBDオフセット値を設定します。

  1. rx_status0 レジスターの csr_rbd_count フィールドからRBDカウントを読み出します。値を記録します。
  2. FPGAとコンバーター・デバイスで構成されるJESD204Bサブシステムの電源を入れ直します。
  3. RBDカウントを再度読み出し、値を記録します。
  4. 手順1から3を少なくとも5回繰り返し、RBDカウント値を記録します。
  5. csr_rbd_offset を1つのLMFCカウント許容値に応じて設定します。
  6. 複数のパワーサイクルを実行し、このRBDオフセット値を使用して、レーンのデスキューエラーが発生しないことを確認します。

RBDカウントは、1つのパワーサイクルから別のパワーサイクルへの2カウントの変動内で、正しく一貫している必要があります。次の例では、パラメーター値はL > 1、F=1、K=32です。LMFCカウンターの正当な値は0から ((FxK/4)-1) で、0から7となります。図 27 では、最新の到着レーン変動が1ローカル・マルチフレーム周期内にあります。このシナリオで、待ち時間が問題にならない場合は、デフォルト値のcsr_rbd_offset=0のままにしておくことができます。これは、RBDエラスティック・バッファーがLMFC境界で解放されることを意味します。図 28 では、最新の到着レーン変動が2つのローカル・マルチフレームにまたがっています。最新の到着レーン変動は、LMFC境界の前後で発生します。このシナリオでは、rx_err0 レジスターのビット4に示されているレーンのデスキューエラーを回避するために、RBDオフセットを正しくコンフィグレーションする必要があります。

図 27. 1つのローカル・マルチフレーム・シナリオ内での最新の到着レーンにおける早期RBDリリースの機会この例では、IPコアの rx_sysref ポートでのSYSREFパルスが内部レジスターによってサンプリングされます。2リンク・クロック・サイクル後、LMFCカウンターはリセットされます。SYSREFがHighをサンプリングしてからLMFCカウンターがリセットされるまでの遅延は確定的です。/K/文字から/R/文字への移行は、ILASフェーズの開始を示します。最も遅い到着レーンの次のLMFC境界に対する/R/文字のLMFCカウントの数は、RBDカウントとして報告されます。最初のパワーサイクルでは、次のLMFC境界の4 LMFCカウント前に/R/文字が受信されるため、RBDカウント = 4です。2回目のパワーサイクルでは、次のLMFC境界の3 LMFCカウント前に/R/文字が受信されるため、RBDカウント = 3になります。5回のパワーサイクルで、RBDカウントは3から5まで変化します。特性評価用のパワーサイクルとボードの数は限られているため、初期のRBDリリースの機会を設定するためのガイドとして、1つのLMFCカウント許容値が割り当てられます。したがって、csr_rbd_offset = 1に設定すると、次のLMFC境界の前にLMFCカウント7でエラスティック・バッファーの1 LMFCカウントを安全に解放できます。RBDエラスティック・バッファーが最新の到着レーンの前に解放されると、レーンデスキューのエラーが発生します。
図 28. 2つのローカル・マルチフレーム・シナリオに渡る最新の到着レーンにおける早期RBDリリースの機会この例では、RBDカウントは7から1まで変化します。RBDカウント = 1の場合、/R/文字は前のローカル・マルチフレームで受信されます。RBDカウント = 0および7の場合、現在のローカル・マルチフレームで/R/文字が受信されます。このシナリオでは、確定的なレイテンシーは保証されません。これは、RBDエラスティック・バッファーがRBDカウント = 0および1の場合に現在のLMFC境界で解放されるか、またはRBDカウント = 7の場合に次のLMFC境界で1 ローカル・マルチフレーム周期後に解放されるためです。RBDエラスティック・バッファーが常に次のローカル・マルチフレームで解放されるようにRBDオフセットを設定することによって、この問題を解決できます。csr_rbd_offset = 5を設定すると、次のLMFC境界の5 LMFCカウント前にRBDエラスティック・バッファーが強制的に解放されます。これは、現在のローカル・マルチフレームでのLMFCカウント3に対応します。このシナリオでは、csr_rbd_offsetを設定すると、IPコアを介したユーザーデータのレイテンシーが最適化されるだけでなく、確定レイテンシーの問題も解決されます。

上記の例で、レーンのデスキューエラーが発生するのは、/R/文字の最も早い到着レーンと最終到着レーンのLMFCカウント数の差の合計と、RBDエラスティック・バッファーの解放までのLMFCカウントの数がRBDエラスティック・バッファー・サイズを超える場合です。これがレーン・デスキュー・エラーの根本的な原因である場合、RBDオフセットを設定することがこの問題を解決する手法の1つになります。すべてのRBDオフセット値が有効というわけではありません。以下の図では、正当なRBDオフセット値を決定する手法を示しています。

図 29. 正当なRBDオフセット値の選択

複数のパワーサイクルを実行してRBDカウントを観察し、それに応じてレーン・デスキュー・エラーが発生しなくなるまでRBDオフセットを調整する必要があります。これは、IPコアがLMFC境界に関して最も早く到着したレーンの位置を報告しないためです。上の図の例から、推奨されるRBDオフセット値は4または5です。FおよびKコンフィグレーションのRBDエラスティック・バッファー・サイズを超えるため、RBDオフセットを1、2、または3に設定することは無効です。