このドキュメントの新しいバージョンが利用できます。お客様は次のことを行ってください。 こちらをクリック 最新バージョンに移行する。
1. 外部メモリー・インターフェイス・インテル® Agilex™ FPGA IPについて
2. インテルAgilex™ FPGA EMIF IP – 概要
3. インテルAgilex FPGA EMIF IP – 製品アーキテクチャー
4. インテルAgilex FPGA EMIF IP – エンドユーザーの信号
5. インテルAgilex FPGA EMIF IP – メモリーIPのシミュレーション
6. インテルAgilex FPGA EMIF IP – DDR4のサポート
7. インテルAgilex FPGA EMIF IP – QDR-IVのサポート
8. インテルAgilex FPGA EMIF IP – タイミング・クロージャー
9. インテルAgilex FPGA EMIF IP – I/Oのタイミング・クロージャー
10. インテルAgilex FPGA EMIF IP – コントローラーの最適化
11. インテルAgilex FPGA EMIF IP – デバッグ
12. 外部メモリー・インターフェイス・インテルAgilex FPGA IPユーザーガイド・アーカイブ
13. 外部メモリー・インターフェイス・インテルAgilex FPGA IPユーザーガイドの改訂履歴
3.1.1. インテルAgilex EMIFのアーキテクチャー: I/Oサブシステム
3.1.2. インテルAgilex EMIFのアーキテクチャー: I/O SSM
3.1.3. インテルAgilex EMIFのアーキテクチャー: I/Oバンク
3.1.4. インテルAgilex EMIFのアーキテクチャー: I/Oレーン
3.1.5. インテルAgilex EMIFのアーキテクチャー: 入力DQSクロックツリー
3.1.6. インテルAgilex EMIFのアーキテクチャー: PHYクロックツリー
3.1.7. インテルAgilex EMIFのアーキテクチャー: PLLリファレンス・クロック・ネットワーク
3.1.8. インテルAgilex EMIFのアーキテクチャー: クロックの位相アライメント
4.1.1.1. DDR4のlocal_reset_req
4.1.1.2. DDR4のlocal_reset_status
4.1.1.3. DDR4のpll_ref_clk
4.1.1.4. DDR4のpll_locked
4.1.1.5. DDR4のac_parity_err
4.1.1.6. DDR4のoct
4.1.1.7. DDR4のmem
4.1.1.8. DDR4のstatus
4.1.1.9. DDR4のafi_reset_n
4.1.1.10. DDR4のafi_clk
4.1.1.11. DDR4のafi_half_clk
4.1.1.12. DDR4のafi
4.1.1.13. DDR4のemif_usr_reset_n
4.1.1.14. DDR4のemif_usr_clk
4.1.1.15. DDR4のctrl_amm
4.1.1.16. DDR4のctrl_amm_aux
4.1.1.17. DDR4のctrl_auto_precharge
4.1.1.18. DDR4のctrl_user_priority
4.1.1.19. DDR4のctrl_ecc_user_interrupt
4.1.1.20. DDR4のctrl_ecc_readdataerror
4.1.1.21. DDR4のctrl_ecc_status
4.1.1.22. DDR4のctrl_mmr_slave
4.1.1.23. DDR4のhps_emif
4.1.1.24. DDR4のemif_calbus
4.1.1.25. DDR4のemif_calbus_clk
4.1.2.1. QDR-IVのlocal_reset_req
4.1.2.2. QDR-IVのlocal_reset_status
4.1.2.3. QDR-IVのpll_ref_clk
4.1.2.4. QDR-IVのpll_locked
4.1.2.5. QDR-IVのoct
4.1.2.6. QDR-IVのmem
4.1.2.7. QDR-IVのstatus
4.1.2.8. QDR-IVのafi_reset_n
4.1.2.9. QDR-IVのafi_clk
4.1.2.10. QDR-IVのafi_half_clk
4.1.2.11. QDR-IVのafi
4.1.2.12. QDR-IVのemif_usr_reset_n
4.1.2.13. QDR-IVのemif_usr_clk
4.1.2.14. QDR-IVのctrl_amm
4.1.2.15. QDR-IVのemif_calbus
4.1.2.16. QDR-IVのemif_calbus_clk
4.2.1. ctrlcfg0
4.2.2. ctrlcfg1
4.2.3. dramtiming0
4.2.4. sbcfg1
4.2.5. caltiming0
4.2.6. caltiming1
4.2.7. caltiming2
4.2.8. caltiming3
4.2.9. caltiming4
4.2.10. caltiming9
4.2.11. dramaddrw
4.2.12. sideband0
4.2.13. sideband1
4.2.14. sideband4
4.2.15. sideband6
4.2.16. sideband7
4.2.17. sideband9
4.2.18. sideband11
4.2.19. sideband12
4.2.20. sideband13
4.2.21. sideband14
4.2.22. dramsts
4.2.23. niosreserve0
4.2.24. niosreserve1
4.2.25. sideband16
4.2.26. ecc3: ECCエラーおよび割り込みのコンフィグレーション
4.2.27. ecc4: ステータスとエラー情報
4.2.28. ecc5: 最新のSBEまたはDBEのアドレス
4.2.29. ecc6: 最新のドロップされた訂正コマンドのアドレス
4.2.30. ecc7: 最新のSBEまたはDBEのアドレスの拡張
4.2.31. ecc8: 最新のドロップされた訂正コマンドのアドレスの拡張
6.1.1. インテルAgilex EMIF IPにおけるDDR4のパラメーター: General
6.1.2. インテルAgilex EMIF IPにおけるDDR4のパラメーター: Memory
6.1.3. インテルAgilex EMIF IPにおけるDDR4のパラメーター: Mem I/O
6.1.4. インテルAgilex EMIF IPにおけるDDR4のパラメーター: FPGA I/O
6.1.5. インテルAgilex EMIF IPにおけるDDR4のパラメーター: Mem Timing
6.1.6. インテルAgilex EMIF IPにおけるDDR4のパラメーター: Controller
6.1.7. インテルAgilex EMIF IPにおけるDDR4のパラメーター: Diagnostics
6.1.8. インテルAgilex EMIF IPにおけるDDR4のパラメーター: Example Designs
7.1.1. インテルAgilex EMIF IPにおけるQDR-IVのパラメーター: General
7.1.2. インテルAgilex EMIF IPにおけるQDR-IVのパラメーター: Memory
7.1.3. インテルAgilex EMIF IPにおけるQDR-IVのパラメーター: FPGA I/O
7.1.4. インテルAgilex EMIF IPにおけるQDR-IVのパラメーター: Mem Timing
7.1.5. インテルAgilex EMIF IPにおけるQDR-IVのパラメーター: Controller
7.1.6. インテルAgilex EMIF IPにおけるQDR-IVのパラメーター: Diagnostics
7.1.7. インテルAgilex EMIF IPにおけるQDR-IVのパラメーター: Example Designs
11.1. インターフェイスのコンフィグレーションにおける性能の問題
11.2. 機能的な問題の評価
11.3. タイミング問題の特性
11.4. Signal Tapロジック・アナライザーでのメモリーIPの検証
11.5. ハードウェアのデバッグ・ガイドライン
11.6. ハードウェアの問題の分類
11.7. 外部メモリー・インターフェイス・デバッグ・ツールキットを使用したデバッグ
11.8. デフォルトのトラフィック・ジェネレーターの使用
11.9. コンフィグレーション可能なトラフィック・ジェネレーター (TG2) の使用
11.10. EMIFオンチップ・デバッグ・ポート
11.11. Efficiency Monitor
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メモリーデバイスのデータシートを参照してください。
- (DDR4) DDR4のアドレスおよびコマンドパリティー機能を使用します。FPGAはアドレスおよびコマンド・パリティー・ビットを送信します。また、DDR4メモリーデバイスはパリティービットが検出されると警告信号で応答します。メモリーデバイスからの警告信号は、パリティービットを受信していることをFPGAに伝えます。
読み出しのキャリブレーション
- 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) CKとDKの関係を最適化します。ループバック・モードを使用するアドレスおよびコマンドのスキュー調整で対応します。
- デスキュー・キャリブレーション — 書き込みストローブとクロックに対する書き込みデータのビットごとのスキュー調整を実行します。書き込みのデスキュー・キャリブレーションでは、dqs_outの遅延は変化しません。書き込みクロックは、書き込みのレベリング時にCKクロックにアライメントされます。
- VREF-Outキャリブレーション — (DDR4) VREFレベルをメモリーデバイスでキャリブレーションします。VREF-Outのキャリブレーション・アルゴリズムは、VREF-Inのキャリブレーション・アルゴリズムに類似しています。