AR# 51954

MIG 7 Series DDR2/DDR3 - PHY の初期化およびキャリブレーション

説明

MIG 7 Series DDR2/DDR3 PHY ロジックには、パワーアップ後に SDRAM メモリを初期化するステート ロジックが含まれており、システムのスタティック遅延およびダイナミック遅延を考慮する読み出し/書き込みデータ パスのタイミング トレーニングが実行されます。このアンサーは、MIG デザイン アシスタントの一部で、パワーアップ時に PHY で実行される初期化およびキャリブレーションについて説明します。
PHY ロジックの詳細は、『7 シリーズ FPGA メモリ インターフェイス ソリューション ユーザー ガイド』 (UG586) を参照してください。このガイドの「DDR2/DDR3 SDRAM Memory Interface Solution」→「Core Architecture」→「PHY」をよくお読みください。
http://japan.xilinx.com/support/documentation/ipinterconnect_mig-7series.htm
注記 : このアンサーは、ザイリンクス MIG ソリューション センター (ザイリンクス アンサー 34243) の一部です。ザイリンクス MIG ソリューション センターには、MIG に関する質問を解決するのに役立つ情報が掲載されています。MIG を含むデザインを新しく作成する場合、または問題をトラブルシュートする場合は、このザイリンクス MIG ソリューション センターから情報を入手してください。

ソリューション

次の図に、7 シリーズ PHY の初期化およびキャリブレーション シーケンスを示します。
7 シリーズ キャリブレーション
7 シリーズ キャリブレーション

キャリブレーションが完了すると、init_calib_complete がアサートします。次のセクションでは、これらのステージについて説明し、キャリブレーションに関する一般的な質問への回答を提供します。各ステージの詳細は、UG586 の PHY のセクションを参照してください。
PHASER_IN PHASELOCKED キャリブレーション
このステージでは、PHASER_IN のフリーランニング周波数基準クロックが、関連付けられている読み出し DQS に位相アラインするように、読み出しキャリブレーションに各 PHASER_IN が配置されます。キャリブレーション ロジックにより連続読み出しコマンドが出力され、PHAESER_IN ブロックがロックするよう、DQS パルスの連続ストリームがこのブロックに供給されます。各 DQS には PHAESER_IN ブロックが 1 つ関連付けられています。すべての PHAESER_IN がロックすると Dbg_pi_phase_locked がアサートされ、PHASER_IN は標準動作モードになります。

PHASER_IN DQSFOUND キャリブレーション

このステージでは、異なる DQS グループが同じ PHY_Clk にアラインされ、読み出しコマンドに対し最適な読み出しデータ オフセット位置が検出されます。キャリブレーション ロジックにより、4 つの連続読み出しが出力されますが、読み出しの間隔は空いています。各 Phaser_IN により、読み出し DQS プリアンブルが検出されます。1 つの読み出しデータ オフセット値がすべての DQS グループに対し決定されます。このデータ オフセットは後で PHY_CONTROL ブロックへの読み出しリクエスト中に使用されます。

ライト レベリング - DDR3 のみ

DDR3 SDRAM の新機能であるライト レベリングでは、DDR3 SDRAM デバイスに転送される CK とは独立して、各書き込み DQS 位相をコントローラーで調整できます。これにより DQS と CK の間のスキューが補正され、tDQSS 仕様が満たされます。このステージでは、ライト レベリングの開始を示すため、PHY 制御ブロックへの Write_Calib_N 入力が PHY ロジックによりアサートされます。周期的 DQS パルスを生成するため、PHY 制御ブロックに周期的な書き込みリクエストが出力されます。DQ IN_FIFO へ DQ フィードバックを取り込むため、PHASER_IN はフリーランニング クロックを出力します。フィードバック DQ で 0 から 1 への遷移が見られるまで、1 度に 1 タップずつ DQS を位相シフトさせるため、PHASER_OUT のファインおよびコース タップが使用されます。

ライト レベリングはキャリブレーション プロセスの 3 つの異なるポイントで実行されます。メモリ初期化が完了した後、PHASER_OUT のファインおよびコース タップは 0 に設定されます。ライト レベリングはこの後 DQS を CK にアラインするためまず実行されます。OCLKDELAYED キャリブレーションが完了した後、最初のライト レベリング中に検出されたコース タップ値が繰り越され、ファイン タップ値は 0 にリセットされます。DQS/CK の関係がまだ正しい状態であることを確認するため、ライト レベリングがもう 1 度実行されます。最後に、書き込みキャリブレーション中に、ファインおよびコース両方の遅延が繰り越され、最終的な調節が適宜行われます。書き込みキャリブレーション中、該当パターンを検出する必要があります。ライト レベリングで DQS が間違った CK クロックにアラインされている場合、DQS を 2 CK クロック サイクル移動させるため、最終の PHASER_OUT ファイン/コース遅延調整が必要になります。
(ザイリンクス アンサー 35094) 追加ライト レベリング情報

MPR リード レベリング エラー - DDR3 のみ
このステージでは、書き込み DQ ウィンドウで書き込み DQS は中央に揃えられません。また、読み出し DQ ウィンドウでも読み出し DQS は中央に揃えられません。DDR3 MPR (MPR : 多目的レジスタ) が、読み出し DQ ウィンドウで読み出し DQS を中央揃えにするために使用されます。MPR には、01010101 または 10101010 のあらかじめ定義されているパターンがあり、これはキャリブレーションのこのステージでリードバックされます。読み出し DQS 中央揃えは、OCLKDELAYED キャリブレーションという次のステージで必要になります。

(ザイリンクス アンサー 34359) JEDEC 仕様 - 多目的レジスタ

OCLKDELAYED キャリブレーション - DDR3 のみ
このステージでは、書き込み DQ ウィンドウで書き込み DQS を中央に揃えます。この中央揃えは、PHASER_OUT ステージ 3 の遅延ラインを使用して行います。ステージ 3 の開始タップ値は 30 です。まず、エッジが検出されるか、タップ値が 0 になるまで、タップ値はデクリメントされます。ステージ 3 のタップはこの後、30 までインクリメントして戻され、エッジ検出が 31 から開始され、エッジが検出されるか、タップ値が 63 になるまで続きます。検出されたエッジに基づき中央点は計算され、ステージ 3 のタップはこの値までデクリメントされます。

ライト レベリング中に正しい DQS と CK の関係が維持されるよう、ステージ 3 のタップを 1 デクリメントするたびに、ステージ 2 のタップは 2 ずつインクリメントされる点に注意してください。同様に、ステージ 3 のタップを 1 インクリメントするたびに、ステージ 2 のタップは 2 ずつデクリメントされます。ステージ 2 のタップが 0 または 63 に達したら、ステージ 3 のタップのインクリメント/デクリメントは、tDQSS 違反を避けるため、この時点から 15 回しか行われません。このステージの最後で、ステージ 2 のタップを使用して DQS および CK をアラインするためライト レベリングが再実行されます。

書き込みキャリブレーション
DQS を正しい CK エッジにアラインするには書き込みキャリブレーションが必要です。ライト レベリング中、DQS は CK の最も近い立ち上がりエッジにアラインされます。しかし、このエッジは書き込みコマンドを取り込むエッジでない可能性があります。インターフェイス タイプ (UDIMM、RDIMM、またはコンポーネント) によっては、DQS は 1、2 CK サイクル早かったり、または書き込みコマンドを取り込む CK エッジにアラインしている可能性があります。

これはキャリブレーションに基づいたパターンなので、このステージでは、複数の書き込みの後に 1 つの読み出しが続いて出力されます。次のようなデータ パターンが見られる可能性があります。
- 時間どおりの書き込みパターン リードバック : FF00AA5555AA9966
- 1 CK サイクル早い書き込みパターン リードバック : AA5555AA9966BB11
- 2 CK サイクル早い書き込みパターン リードバック : 55AA9966BB11EE44
- 1 CK サイクル遅い書き込みパターン リードバック : XXXXFF00AA5555AA
--キャリブレーションではこのパターンを修正できません。CK が DQS よりも短くなっている、トレース遅延が間違っていることをこのパターンは示しています。

読み出し中に上記のパターンがどれも検出されない場合は、MPR リード レベリングの IDELAY 設定が間違っているとアルゴリズムで想定され、そのバイトに関連付けられている DQ ビットの IDELAY は 0 に設定されます。クロック サイクル間で 01010101 と 10101010 のパターンを区別できないため、MPR リード レベリングの IDELAY 設定が間違っている可能性があります。

リード レベリング
読み出し DQ 中央揃えへの最終読み出し DQS はこのステージで行われます。まず、IDELAY および PHASER_IN ステージ 2 のタップ値が 0 にデクリメントされ、MPR リード レベリングを元に戻します。MPR リード レベリングは OCLKDELAYED キャリブレーションのみに必要でした。リード レベリングのこのステージでは、読み出し DQ ウィンドウで読み出し DQS が 993377EECC992244 というデータ パターンを使用して正確に中央に揃えられます。このステージのキャリブレーションが完了すると、init_calib_complete 信号がアサートされ、キャリブレーションは完了します。

PRBS リード レベリング - MIG 1.7 で追加
このステージでは、長さ 128 の PRBS シーケンス (64 ビットの LFSR ロジックから生成) を使用して読み出しデータ有効ウィンドウを決定します。これは 1 度書き込まれ DDR3 SDRAM から連続してリードバックされます。リード レベリング キャリブレーション ステージ中に決められた DQS PHASER_IN ファイン タップ設定 (初期タップ値) で、アルゴリズムは開始し、読み出しデータを予期データと比較しながらデータ不一致が検出されるまで 1 度に 1 タップずつデクリメントします。SDRAM に長さ 128 の PRBS シーケンスを書き込むのに使用されたのと同じ 64 ビットの LFSR ロジックを使用して、予期データは生成されます。データ不一致のタップ値は左エッジとして記録されます。この後、アルゴリズムは初期タップ値にインクリメントし、データ不一致が検出されるか、タップ値が 63 になるまでこの初期タップ値の後インクリメントしながらエッジ検出を開始します。この後、アルゴリズムは検出されたエッジに基づいて、読み出しデータ有効ウィンドウの中央を計算します。
その他の情報
(ザイリンクス アンサー 51687) 温度モニター キャリブレーション - MIG 1.7 で追加
(ザイリンクス アンサー 43344) ダイナミック キャリブレーションおよび周期的読み出し
(ザイリンクス アンサー 43879) ハードウェア デバッグ ガイド
(ザイリンクス アンサー 35163) ビット単位のスキュー調整

アンサー レコード リファレンス

マスター アンサー レコード

サブアンサー レコード

AR# 51954
日付 03/01/2013
ステータス アクティブ
種類 ソリューション センター
デバイス
IP