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

ID 683216
日付 12/14/2020
Public

このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。

ドキュメント目次

3.3.4. インテルAgilexにおけるキャリブレーション・アルゴリズム

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

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

アドレスおよびコマンドのキャリブレーションは、次の内容で構成されます。
  • レベリング・キャリブレーション — (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キャリブレーション — (DDR4およびQDR-IV) DQSenキャリブレーションは読み出しのスキュー調整前に行われるため、問題のない読み出しの合格を得るには、単一のDQビットのみ合格する必要があります。
    • (DDR4) DQSenのキャリブレーション・アルゴリズムでは、ハードウェアのステートマシンを使用してDQSプリアンブルを検索します。アルゴリズムは、1クロックサイクル間隔で多くの連続する読み出しを送信します。ハードウェアのステートマシンは、DQSenの遅延値をスイープしながらDQSのギャップを検索します。次にアルゴリズムはVFIFOの値を増やし、パターンが見つかるまでプロセスを繰り返します。このプロセスは他の読み出しDQSグループすべてで繰り返されます。

    • (QDR-IV) 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間の適切な同期に対応できるように十分な大きさである必要があります。

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

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

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