外部メモリー・インターフェイス・ インテル® Agilex™ FPGA IPユーザーガイド

ID 683216
日付 6/20/2022
Public
ドキュメント目次

3.3.4.1.1. DDR4読み出しキャリブレーション

DQSenキャリブレーション

DQSenのキャリブレーション・アルゴリズムでは、ハードウェアのステートマシンを使用してDQSプリアンブルを検索します。このアルゴリズムは、1クロックサイクルの間隔をあけて多くの連続する読み出しを送信します。ハードウェアのステートマシンは、DQSenの遅延値をスイープしながらDQSのギャップを検索します。次にアルゴリズムはVFIFOの値を増やし、パターンが見つかるまでプロセスを繰り返します。このプロセスは、他の読み出しDQSグループすべてで繰り返されます。

図 49. ハードウェアのステートマシンを使用したDQSイネーブル・キャリブレーション

デスキュー・キャリブレーション

読み出しのデスキュー・キャリブレーションは、書き込みレベリング前に行われます。また、少なくとも2回実行する必要があります (保証された書き込みからの単純なデータパターンを使用して書き込みのキャリブレーション前に1回、複雑なデータパターンを使用して書き込みのキャリブレーション後に1回)。

保証された書き込みを正しく機能させるために、保証された書き込みの前に書き込みレベリング・フェーズのトレーニングが行われます。書き込みレベリング・フェーズ・トレーニングの目的は、書き込みDQSの立ち上がりエッジをDRAMでMEM_CLKの立ち上がりエッジに揃えることです。

図 50. 書き込みレベリング・フェーズ・トレーニング - 書き込みDQSをDRAMでMEM_CLKにアライメント

このアルゴリズムは、書き込みレベリング・フェーズ・トレーニングにDRAMの書き込みレベリング機能を使用します。このモードでは、次の動作が発生します。

  • アルゴリズムは、書き込みDQS信号をトグルしながら、DQS出力遅延を (FPGA側で) 調整します。
  • DRAMは、書き込みDQSの立ち上がりエッジを使用してMEM_CLKをサンプリングし、サンプリングした値をDQピンに出力します。
  • アルゴリズムは、write_DQS信号をトグルしながらDQS出力を調整します。これは、DQピンで0から1への遷移が検出されるまで続きます。

次の4つの図は、読み出しデスキュー・キャリブレーションの例を示しています。この例では、読み出しデスキュー・キャリブレーションの前にDQSが読み出しウィンドウ内にあり、FPGAは連続する読み出し動作から正しいデータを取得しています。

図 51. DQピンで0から1への遷移が検出されると、DQSとMEM_CLKの位相は揃っている

保証された書き込みでは、アルゴリズムは0のバーストを1つの位置に書き込み、1のバーストを別の位置に書き込みます。この2つの位置からの連続読み出しで取得するデータは、読み出しデスキュー・キャリブレーションの単純なデータパターンとして使用されます。

図 52. 保証された書き込み - メモリーへの単純なデータパターンの書き込み

書き込みキャリブレーションの前に、デスキュー・キャリブレーション・アルゴリズムは保証された書き込みを実行し、dqs_inの遅延値を低から高にスイープすることで、読み出しウィンドウの右のエッジを見つけます。次に、アルゴリズムはdq_inの遅延値を低から高にスイープし、読み出しウィンドウの左のエッジを見つけます。その後、アルゴリズムは更新されたdqs_inおよびdq_inの遅延値を適用し、読み出しウィンドウを中央に配置します。このプロセスは、すべてのデータピンで繰り返されます。

図 53. 通過している単純なデータパターンを使用した連続読み出し
図 54. dqs_in遅延を読み出しが失敗するまで引き上げ - 右のエッジを識別
図 55. dq_in遅延を読み出しが失敗するまで引き上げ - 左のエッジを識別
図 56. 読み出しウィンドウを中央へ配置

書き込みパスがキャリブレーションされたら、アルゴリズムは複雑なデータパターンを使用して別の読み出しデスキュー・キャリブレーションを実行します。

Vref-inキャリブレーション

読み出しのVref-Inキャリブレーションは、Vref-Inを任意の値でプログラミングすることから始まります。次にアルゴリズムは、Vref-Inの値を開始値から両端までスイープし、それぞれの値の読み出しウィンドウを測定します。アルゴリズムは、最大の読み出しウィンドウを提供するVref-Inの値を選択します。Vref-Inは、DQ/DQS信号に使用されるI/OバンクのVCCIOから生成され、FPGAで内部的にキャリブレーションされます。

LFIFOキャリブレーション

読み出しのLFIFOキャリブレーションは、グループ間の読み出し遅延を正規化します。PHYでは、すべてのデータを単一のデータバスとしてコントローラーに提供する必要があります。LFIFOのレイテンシーは、最も遅い読み出しデータグループに対して、また、FIFO間の適切な同期に対応できるように十分な大きさである必要があります。