AR# 35183

MIG Virtex-6 DDR1/DDR3 - リード レベリング ステージ 2 のデバッグ

説明

このアンサー レコードは、MIG Virtex-6 DDR1/DDR3 のキャリブレーション プロセスのリード レベリング ステージ 2 を検証するために解析すべき点をまとめたものです。 

リード レベリング ステージ 1 のキャリブレーションの一般的な情報については、(ザイリンクス アンサー 35118) を参照してください。

注記 : このアンサー レコードは MIG ハードウェア デバッグに関連したアンサー レコードの 1 つで、ユーザーがデバッグ ポートが有効になっている MIG サンプル デザインを実行しているものと仮定しています。

ハードウェア デバッグ フローの最初から始めるのが最善です。

詳細は (ザイリンクス アンサー 34588) を参照してください。

注記 : このアンサーは、ザイリンクス MIG ソリューション センター (ザイリンクス アンサー 34243) の一部です。

ザイリンクス MIG ソリューション センターは、MIG に関する質問を解決するのに役立つ情報を掲載しています。

MIG でデザインを新しく作成する場合、または問題をトラブルシュートする場合は、このザイリンクス MIG ソリューション センターから情報を入手してください。

ソリューション

関連信号

キャリブレーション ステート マシン変数 (便利な ChipScope トリガー) :

  • cal1_state_r = ステージ 1 のステート マシン
バイト カウント (便利な ChipScope トリガー) :
 
  • cal1_cnt_cpt_r = キャリブレートされているステージ 1 のバイト
タップ カウントのチェック :
 
  • idel_tap_cnt_cpt_r = キャプチャ クロックの現在のタップ設定
キャリブレーション フラグ :
 
  • found_edge_r = ウィンドウのエッジが検出されたときにアサート
各バイトで検出されたウィンドウのサイズを確認 :

  • dbg_cpt_first_edge_cnt = 有効ウィンドウの最初のエッジ検出
  • dbg_cpt_second_edge_cnt = 有効ウィンドウの 2 番目のエッジ検出
  • ウィンドウ サイズ = 2 番目のエッジ 1 番目のエッジ
リード レベリングの完了 :
 
  • dbg_rdlvl_done[1:0]
2'b00: ステージ 1 とステージ 2 が一致しませんでした。
2'b01: リード レベリングのステージ 1 が完了しましたが、ステージ 2 は完了していません。
2'b11: リード レベリングが終了しました。
  • dbg_rdlvl_err[1:0]

関連ファイル :

リード レベリング ロジックは tl/phy/phy_rdlvl.v/.vhd モジュールに含まれています。

デバッグの手順 :
 
  1. ハードウェアでデバッグ ポートのあるサンプル デザインを実行し、上述の「ChipScope でのトリガー」 (cal1_state_r および cal1_cnt_cpt_r) を使用します。
    リード レベリング ステージ 1 は各 DQS バイト グループに対し実行されます。
    cal1_cnt_cpt_r 信号はキャリブレートされているバイト グループを示します。
    デバッグのステップは各バイト グループに対して実行することができます。
    1 つのグループでエラーが発生するとキャリブレーション/データ エラーが発生します。
    各グループに対しデバッグ ステップを実行して、バイト グループ間でウィンドウ サイズなどに違いがあれば注意することが重要です。
    これは、問題を引き起こしている特定のバイト グループを見極めるのに役立ちます。
     
  2. リード レベリング ステージ 1 で正しいデータ パターンがリードバックされていることを確認します。
    デバッグ ポートには、取り込まれた読み出しデータ dbg_rddata が含まれます。
    リード レベリング中、リード レベリング ステージ 1 のデータ パターンの 1 書き込み (FF00FF00FF00FF00) が送信されます。
    このデータ パターンは連続して読み込まれます。
    dbg_rddata デバッグ信号でこのパターンを確認します。
    パターンが正しくない場合は、問題のあるビットや間違ったデータへのパターンを検索します。
     
  3. IDELAY タップがインクリメントされていることを確認します。
    idel_tap_cnt_cpt_r 信号はキャプチャ クロックのタップ カウントを表示します。
    この値は、リード レベリング ステージ 1 でインプリメントされている必要があります。
     
  4. 検出されたエッジの数を計算します。
    周波数次第で、0、1、または 2 個のエッジが検出されるはずです。
    インターフェイスの実行速度が遅いほど、検出されるエッジ数も少なくなります。エッジは found_edge_r のアサートで検出されます。
     
  5. ウィンドウ サイズを計算します。
    最初のエッジ検出と 2 番目のエッジ検出で、タップの数に違いがあります。
    dbg_cpt_first_edge_cnt およびdbg_cpt_second_edge_cnt の値を確認します。
    IDELAY タップのウィンドウ サイズは dbg_cpt_second_edge_cnt から dbg_cpt_first_edge_cnt を差し引いた値に等しくなります。
    ウィンドウ サイズを ps で計算するには、検出されたウィンドウ タップに IDELAY タップ精度を掛けて計算します。
    REFCLK=300MHz なら 52ps、REFCLK=200MHz なら 78ps です。

どのような問題が起きますか。
  • ビットで足止め (または PCB でビットが接続されない)
  • トレースが一致しない
    • ビットごとではなく、バイトごとにリードおよびライト レベリングが実行される
  • いくつかのバイト レーンに影響するシグナル インテグリティの問題
    • キャプチャ ウィンドウに歪みが発生することがある
    • IBIS を使用したシグナル インテグリティ シミュレーションを実行すること
  • 低周波数だと最適でないキャプチャ設定になってしまう。
    低周波数で実行していて、エッジが検出されないときはリード レベリング ステージ 2 デバッグに移行。
     
  • ピン配置が間違っている
    • ビットを入れ替えると正しいバイトに属していないビットがある
    • RTL でパラメーターを調整せず別の列にバイトを移動
  • キャリブレーション データの書き込みに問題 
ボード レイアウトおよびピン配置/バンク要件が合っていることを確認するには次を参照してください。 デバッグ ポートの使用方法は、(ザイリンクス アンサー 35206) を参照してください。

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

関連アンサー レコード

AR# 35183
日付 12/03/2014
ステータス アクティブ
種類 一般
デバイス 詳細 概略
IP