AR# 68937

UltraScale/UltraScale+ DDR3 および DDR4 メモリ インターフェイス キャリブレーションおよびハードウェア デバッグ ガイド

説明

このアンサーは、UltraScale および UltraScale+ デザインでのプログラマブル ロジックによって生成される DDR3 または DDR4 メモリ インターフェイスのキャリブレーションおよびハードウェア エラーをデバッグするための情報を提供することを目的にしています。

キャリブレーション エラーが発生した場合は、次のメッセージが Vivado の Tcl コンソールに表示されます。

WARNING: [Labtools 27-3410] Calibration Failed.
解決策: さらにデバッグ情報が必要な場合は、こちらを参照してください。https://japan.xilinx.com/support/answers/68937.html

ソリューション

資料およびデザイン リソース

『UltraScale Architecture-Based FPGAs Memory IP 製品ガイド』

  • (PG150) には、UltraScale および UltraScale+ デバイスでサポートされている外部メモリ タイプすべてのデザインおよびデバッグ情報が記載されています。
    • 最新版は 2017 年 6 月 7 日付の v1.4 です。

『UltraScale アーキテクチャ PCB デザイン ユーザー ガイド』

  • (UG583) には、サポートされている外部メモリ タイプおよびコンフィギュレーションすべての UltraScale および UltraScale+ PCBA レイアウトおよび配線要件が記載されています。
    • 最新版は 2017 年 1 月 30 日付の v1.10 です。


Vivado ハードウェア マネージャーからの XSDB のダンプ

メモリ インターフェイス キャリブレーションおよびハードウェアのエラーをデバッグするための重要な情報は、ほぼ XSDB のログから入手できます。 

こうした情報はすべて (PG150) のデバッグ セクションに記載されています。

Tcl コマンド ラインの指示

get_hw_migs
  • デザインにあるメモリ インターフェイス コアをすべてリストします。
report_property [lindex [get_hw_migs] x]
  • 「x」に数値を指定し、メモリ インターフェイス コアの XSDB 情報をダンプします。
  • コマンドから返される情報をコピーして、別のファイルに保存しておきます。

  • メモリ インターフェイス コアを実行した後、または予期せずにリセットされた後に、XDSB プロパティをリフレッシュする必要がある場合は、次のリフレッシュ コマンドを使用します。
refresh_hw_mig [lindex [get_hw_migs] x]
  • 注記: シングル メモリ インターフェイス コア デザインの場合、上記の例では 0 を指定します。


Vivado ハードウェア マネージャー GUI:

  • Vivado ハードウェア マネージャーを起動して、デバイスに接続します。
  • [Hardware] ウィンドウで MIG コアを選択します。
    • [Status] 列に、MIG コアがキャリブレーションをパスしたかエラーが出ているかが表示されます。
  • MIG コアを右クリックして [Open Dashboard] をクリックします。




  • [Hardware] ウィンドウの下に [MIG Core Properties] ウィンドウがあります。
    • [Properties] タブをクリックして、フィールド内のどこかで右クリックし、[Export to Spreadsheet] をクリックします。




  • ファイル名およびファイルの保存先を選択し、デフォルト オプションをすべて使用して、[OK] をクリックし、ファイルを保存します。
    • メモリ インターフェイスの幅によりますが、ファイルには数千行含まれているはずです。




  • [MIG Dashboard] ウィンドウの [Properties] および [Status] を確認してください。
    • これらのウィンドウには、キャリブレーションをパスしたか、エラーが出ているか、どの段でそのエラーが発生したのかなど、MIG コアのステータスに関する一般情報が表示されています。




  • この情報をスクリーンショットに残しておきます。
  • [MIG Dashboard] の右側に [Calibration/Margins] ウィンドウがあります。




  • このウィンドウの下にある [Chart - Center Aligned] タブを選択します。
  • [Simple] および [Complex] の両パターンの [Read] および [Write] モード、[Rising] および [Falling] のクロック エッジのスクリーンショットを取ります。
    • ウィンドウ マージン サイズがビジュアルに確認できます。







DDR3/DDR4 キャリブレーションおよびハードウェアのデバッグ

DDR3/DDR4 インターフェイスにキャリブレーションまたはハードウェア エラーがある場合は、次の指示に従ってデザインをデバッグします。

  • 最新版の (PG150) および (UG583) をダウンロードします。
  • キャリブレーション エラーが発生している場合は、Vivado ハードウェア マネージャーで、そのメモリ インターフェイス コアのエラーが発生している段階およびエラー メッセージを確認します。
  • (PG150) を開き、「Hardware Debug in Section IX Debugging」というセクションから「General Checks」セクションまでを読みます。
  • (UG583) でメモリ インターフェイスの PCB ガイドラインをもう一度確認します。
  • (PG150) の「Debugging DDR3/DDR4 Designs」セクションで、「Calibration Stages」から「Determine the Failing Calibration Stage」まで読みます。
  • エラーが発生しているキャリブレーション段を特定できたら、(Xilinx Answer 62181) へ行き、ハードウェア デバッグのベスト プラクティス資料をダウンロードします。
    • キャリブレーション問題をデバッグするには、まず、第 1 章の説明に従って電源を計測します。すべての DRAM、FPGA コア、I/O 関連の電源レールおよびローカル グランド プレーンの電源です。
    • (PG150) のエラーが発生しているキャリブレーション段のデバッグに関する推奨事項に基づいて、第 2 章「Signal Integrity on Critical Nets」のシグナル インテグリティを計測する準備をします。

DDR3/DDR4 サンプル デザインを使用したキャリブレーション デバッグ

  • IP サンプル デザインを生成するのも、DDR3/DDR4 キャリブレーション エラーのデバッグに便利です。
    • IP サンプル デザインを使用すると、エンド ユーザーでも DDR3/DDR4 デザインを簡単に生成できますが、デバッグを高速化するためのクリーンなサンドボックスを提供できます。
  • IP サンプル デザインを生成するには、ターゲット FPGA を選択し、IP を追加して、現在のクロッキングおよびメモリ トポロジに合わせてそれをコンフィギュレーションします。
  • [Advanced Options] タブでコントローラーのデバッグ信号をイネーブルにし、[Simple TG] または [Advanced TG] のいずれかを選択します ([Advanced TG] は AXI デザインには指定できません)。
  • 設定を完了したら [OK] をクリックし、プロンプトが表示されたらグローバル合成オプションを選択します。
  • この後 [Sources] ウィンドウの [Hierarchy] タブで DDR3/DDR4 *.xci ファイルを右クリックし、[Open IP Example Design] を選択します。
    • これで新しい Vivado セッションが起動します。
    • トラフィック ジェネレーターで DDR3/DDR4 コアが生成されているのがわかります。(PG150) で説明されているキャリブレーション問題をデバッグするのに必要 ILA および VIO デバッグ信号も含まれています。
  • ここから、既存の XDC ファイルを追加し、フローに沿ってビットストリームを生成します。
    • クロック割り当ておよびリセット極性がデザインの他の部分と一致していることをもう一度確認します。
  • トラフィック ジェネレーターで完全機能している DDR3/DDR4 デザインを作成できました。これでデザインのデバッグがより簡単になります。
  • IP サンプル デザインの生成方法を知っておけば、エラーが発生しているバイト レーンのみに影響する狭いメモリ インターフェイスを生成して、ボードの問題を隔離するのも簡単になります。また、ATG を使用した負荷のかかるパターンでメモリ インターフェイスを実行することもできます。
  • キャリブレーションをパスするか、またはデザインがキャリブレーション プロセスの先に進めるかどうかを確認するのに、メモリ インターフェイスの周波数を下げて、簡単にチェックする方法もあります。


改訂履歴
2017/08/17 - 初版

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

関連アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
69611 UltraScale/UltraScale+ Memory IP - サンプル デザイン - Advanced Traffic Generator (ATG) でデータ比較エラーが発生する N/A N/A
AR# 68937
日付 11/08/2017
ステータス アクティブ
種類 エラー メッセージ
デバイス 詳細 概略
ツール
IP