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

ID 683741
日付 9/30/2019
Public
ドキュメント目次

3.3.4. インテル® Stratix® 10のキャリブレーション・アルゴリズム

キャリブレーションのアルゴリズムは、ターゲットとなるメモリープロトコルによって異なる場合があります。

アドレスおよびコマンドのキャリブレーション

アドレスおよびコマンドのキャリブレーションは、次の内容で構成されます。
  • レベリング・キャリブレーション— (DDR3およびDDR4のみ) CS#およびCAS#信号をトグルし、読み出しコマンドを送信します。そのほかのアドレスおよびコマンド信号は一定に保たれます。アルゴリズムは到着するDQS信号をモニターし、DQS信号がトグルすると、読み出しコマンドが受け入れられたことを示します。その後アルゴリズムは異なる遅延値を使用して繰り返し、最適なウィンドウを探します。

  • デスキュー・キャリブレーション— (DDR4およびQDR-IVのみ)
    • (DDR4) DDR4のアドレスおよびコマンドパリティー機能を使用します。FPGAはアドレスおよびコマンド・パリティー・ビットを送信し、DDR4メモリーデバイスはパリティービットが検出されると警告信号で応答します。メモリーデバイスからの警告信号は、パリティービットが受信されたことをFPGAに伝えます。

      デスキュー・キャリブレーションはPAR/ALERT#ピンを使用する必要があるため、これらのピンをデザインから省略しないでください。デスキュー・キャリブレーションにおける制限の1つは、ODTおよびCKEピンのスキュー調整ができないことです。

    • (QDR-IV) QDR-IVのループバック・モードを使用します。FPGAはアドレスおよびコマンド信号を送信し、メモリーデバイスは読み出しデータピンを介してキャプチャーしたアドレスおよびコマンド信号を送り返します。返される信号は、メモリーデバイスがキャプチャーした内容をFPGAに示します。デスキュー・キャリブレーションでは、同期しているすべてのアドレスおよびコマンド信号のスキュー調整を行うことができます。
      注: ループバック・モードに関する詳細は、お使いのQDR-IVメモリーデバイスのデータシートを参照ください。

読み出しのキャリブレーション

  • DQSenキャリブレーション— (DDR3、DDR4、RLDRAMxおよびQDRx) DQSenキャリブレーションは読み出しのスキュー調整前に行われるため、読み出しの合格を成功させるには、単一のDQビットのみ合格することが必要です。
    • (DDR3およびDDR4) DQSenキャリブレーション・アルゴリズムは、ハードウェアのステートマシンを使用してDQSプリアンブルを検索します。アルゴリズムは、1クロックサイクル間隔で多くの連続する読み出しを送信します。ハードウェアのステートマシンは、DQSenの遅延値をスイープしながらDQSのギャップを検索します。アルゴリズムはその後VFIFOの値を増加させ、パターンが見つかるまでプロセスを繰り返します。このプロセスはそのほかの読み出しDQSグループすべてで繰り返されます。

    • (RLDRAMxおよびQDRx) DQSenキャリブレーション・アルゴリズムはハードウェアのステートマシンを使用しません。代わりに、ソフトウェアを使用してサイクルレベルの遅延をキャリブレーションし、DQSトラッキング・ハードウェアを使用してサブサイクルの遅延をキャリブレーションします。このアルゴリズムはメモリー内の正確なデータを必要とするため、保証された書き込みに依存します。 (0のバーストを1つの位置に書き込み、1のバーストを別の位置に書き込みます。これらの2つの位置からの連続する読み出しを読み出しのキャリブレーションに使用します。)

      アルゴリズムはDQSトラッキングを有効にし、DQSイネーブルの位相コンポーネントをキャリブレーションします。その後保証された書き込みを発行し、連続する読み出しが続きます。アルゴリズムは読み出し動作が成功するまでDQSenの値をサイクルごとにスイープします。このプロセスはほかの読み出しグループすべてで繰り返されます。

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

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

  • Vref-Inキャリブレーション— 読み出しのVref-Inキャリブレーションは、Vref-Inを任意の値でプログラミングすることから始まります。次にアルゴリズムはVref-Inの値を開始値から両端までスイープし、それぞれの値の読み出しウィンドウを測定します。アルゴリズムは、最大の読み出しウィンドウを提供するVref-Inの値を選択します。

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

書き込みのキャリブレーション

  • レベリング・キャリブレーション— 書き込みのレベリング・キャリブレーションは、書き込みストローブとクロックをメモリークロックにアライメントし、スキューを補償します。一般的にレベリング・キャリブレーションではさまざまな遅延値を使用して書き込みウィンドウのエッジを決定し、ウィンドウを中央に配置するのに適切な値を選択します。アルゴリズムの詳細は、メモリープロトコルによって異なります。
    • (DDRx) 書き込みのレベリングは書き込みのスキュー調整前に行われるため、合格を登録するには1つのDQビットが成功することのみ必要です。書き込みのレベリングはDQバスを動かし、少なくとも1つのDQビットが有効な書き込みウィンドウ内に収まるようにします。
    • (RLDRAMx) CKDKの関係を最適化します。
    • (QDR-IV) CKDKの関係を最適化します。ループバック・モードを使用したアドレスおよびコマンドのスキュー調整で網羅されます。
    • (QDR II/II+/Xtreme) Kクロックが唯一のクロックであるため、書き込みのレベリングは必要ありません。
  • デスキュー・キャリブレーション— 書き込みストローブとクロックに対してビットごとの書き込みデータのスキュー調整を実行します。書き込みのデスキュー・キャリブレーションはdqs_outの遅延を変更しません。書き込みクロックは、書き込みのレベリング時にCKクロックにアライメントされます。

  • VREF-Outキャリブレーション— (DDR4) VREFレベルをメモリーデバイスでキャリブレーションします。VREF-Outキャリブレーション・アルゴリズムは、VREF-Inキャリブレーション・アルゴリズムに類似しています。