インテルのみ表示可能 — GUID: rdk1621950394887
Ixiasoft
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のアーキテクチャー: クロックの位相アライメント
3.3.4.3.1. キャリブレーション・レポートの情報を使用してのキャリブレーション・エラーのデバッグ
3.3.4.3.2. アドレスおよびコマンドのレベリング・キャリブレーション・エラーのデバッグ
3.3.4.3.3. アドレスおよびコマンドのデスキューエラーのデバッグ
3.3.4.3.4. DQSイネーブルエラーのデバッグ
3.3.4.3.5. 読み出しのデスキュー・キャリブレーション・エラーのデバッグ
3.3.4.3.6. VREFINキャリブレーション・エラーのデバッグ
3.3.4.3.7. LFIFOキャリブレーション・エラーのデバッグ
3.3.4.3.8. 書き込みレベリングエラーのデバッグ
3.3.4.3.9. 書き込みのデスキュー・キャリブレーション・エラーのデバッグ
3.3.4.3.10. VREFOUTキャリブレーション・エラーのデバッグ
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.4.1. ctrlcfg0
4.4.2. ctrlcfg1
4.4.3. dramtiming0
4.4.4. sbcfg1
4.4.5. caltiming0
4.4.6. caltiming1
4.4.7. caltiming2
4.4.8. caltiming3
4.4.9. caltiming4
4.4.10. caltiming9
4.4.11. dramaddrw
4.4.12. sideband0
4.4.13. sideband1
4.4.14. sideband4
4.4.15. sideband6
4.4.16. sideband7
4.4.17. sideband9
4.4.18. sideband11
4.4.19. sideband12
4.4.20. sideband13
4.4.21. sideband14
4.4.22. dramsts
4.4.23. niosreserve0
4.4.24. niosreserve1
4.4.25. sideband16
4.4.26. ecc3: ECCエラーおよび割り込みのコンフィグレーション
4.4.27. ecc4: ステータスとエラー情報
4.4.28. ecc5: 最新のSBEまたはDBEのアドレス
4.4.29. ecc6: 最新のドロップされた訂正コマンドのアドレス
4.4.30. ecc7: 最新のSBEまたはDBEのアドレスの拡張
4.4.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
11.7.4.3.1. キャリブレーション・レポートの情報を使用してのキャリブレーション・エラーのデバッグ
11.7.4.3.2. アドレスおよびコマンドのレベリング・キャリブレーション・エラーのデバッグ
11.7.4.3.3. アドレスおよびコマンドのデスキューエラーのデバッグ
11.7.4.3.4. DQSイネーブルエラーのデバッグ
11.7.4.3.5. 読み出しのデスキュー・キャリブレーション・エラーのデバッグ
11.7.4.3.6. VREFINキャリブレーション・エラーのデバッグ
11.7.4.3.7. LFIFOキャリブレーション・エラーのデバッグ
11.7.4.3.8. 書き込みレベリングエラーのデバッグ
11.7.4.3.9. 書き込みのデスキュー・キャリブレーション・エラーのデバッグ
11.7.4.3.10. VREFOUTキャリブレーション・エラーのデバッグ
11.9.8.1. トラフィック・ジェネレーターの接続
11.9.8.2. トラフィック・ジェネレーターのコンフィグレーション
11.9.8.3. トラフィック・ジェネレーターのプリセットの選択
11.9.8.4. トラフィック・ジェネレーターのステータスレポート
11.9.8.5. TG2トラフィック・ジェネレーターのコンフィグレーション例
例1: すべてのメモリー位置に対して書き込みおよび読み出しを行うようにTG2をコンフィグレーション (0x555_5555_5555_5555と0xAAA_AAAA_AAAA_AAAAのデータパターンを交互に使用)
例2: 無限ループで実行するようにTG2をコンフィグレーション
インテルのみ表示可能 — GUID: rdk1621950394887
Ixiasoft
11.9.8.5. TG2トラフィック・ジェネレーターのコンフィグレーション例
例1: すべてのメモリー位置に対して書き込みおよび読み出しを行うようにTG2をコンフィグレーション (0x555_5555_5555_5555と0xAAA_AAAA_AAAA_AAAAのデータパターンを交互に使用)
この例では、227論理アドレスがEMIFコントローラーで使用可能です。この例はx72 DDR4インターフェイスで、Quarter Rate (QR) ユーザーロジックを使用するようにコンフィグレーションされています。
図 238. メモリーIPのアドレス幅
address=0x0から始まるメモリーIPのすべてのメモリー位置に書き込むには、次の要件を満たす必要があります。
TG_LOOP_COUNT x TG_BURST_LENGTH x TG_WRITE_COUNT = Total Logical Address Availableこの例では、次の条件を前提にしています。
- TG_BURST_LENGTH = 64 (10進数) またはTG_BURST_LENGTH = 0x40 (16進数)
- TG_WRITE_COUNT = 1
必要なTG_LOOP_COUNTは、次のように計算することができます。
TG_LOOP_COUNT = Total Logical Address Available / (TG_WRITE_COUNT x TG_BURST_LENGTH) = 227/64 = 2097152 (in decimal) = 0x20_0000 (in hexadecimal)
コアロジックを使用してTG2をコンフィグレーションするには、次の手順に従います。
- TG_CLEARにdata=0xFを書き込み、すべてのエラー・ステータス・レジスターをクリアします。
- 次の表1で指定されている値でレジスターをコンフィグレーションします。
- TG_STARTに書き込み、ステップ2のコンフィグレーションを使用してTG2を開始します。これにより、ユーザーモードでトラフィック・テストが開始します。
- read data=0x1になるまでTG_TEST_COMPLETEから読み出します。これは、トラフィック・テストが完了したことを示すものです。
- TG_PASS、TG_FAIL、TG_TIMEOUTを読み出し、テスト結果を確認します。
- TG_PASS: 値1は、すべてのテストステージの終わりにトラフィック・テストが合格になったことを示します。
- TG_FAIL: 値1は、コンフィグレーションされたトラフィックの実行は終了している一方で、障害 (読み出しの不一致) が観察されたことを示します。他の関連するレジスターを読み取り、障害に関する詳細情報を取得します。利用可能なレジスターに関しては、コンフィグレーション・レジスターとステータスレジスターの表を参照してください。
- TG_TIMEOUT: 値1は、1つまたは複数の読み出しコマンドに対してインターフェイスから読み出し応答を受信していないことを示します。
アドレス | レジスター名 | 値 | 備考 |
---|---|---|---|
0x8 | TG_LOOP_COUNT | 0x20_0000 | すべてのメモリー位置を網羅するには、2097152* 64が必要です。 |
0xC | TG_WRITE_COUNT | 0x1 | |
0x10 | TG_READ_COUNT | 0x1 | |
0x14 | TG_WRITE_REPEAT_COUNT | 0x1 | |
0x18 | TG_READ_REPEAT_COUNT | 0x1 | |
0x1C | TG_BURST_LENGTH | 0x40 | すべてのメモリー位置を網羅するには、2097152* 64が必要です。 |
0x38 | TG_RW_GEN_IDLE_COUNT | 0x1 | |
0x3C | TG_RW_GEN_LOOP_IDLE_COUNT | 0x1 | |
0x40 | TG_SEQ_START_ADDR_WR_L | 0x0 | 書き込み開始アドレスの下位32ビット |
0x44 | TG_SEQ_START_ADDR_WR_H | 0x0 | 書き込み開始アドレスの上位32ビット |
0x48 | TG_ADDR_MODE_WR | 0x1 | シーケンシャル・アドレス指定 |
0x50 | TG_RETURN_TO_START_ADDR | 0x0 | |
0x74 | TG_SEQ_ADDR_INCR | 0x40 | この例のバースト長と一致する必要があります。 |
0x78 | TG_SEQ_START_ADDR_RD_L | 0x0 | 読み出し開始アドレスの下位32ビット |
0x7C | TG_SEQ_START_ADDR_RD_H | 0x0 | 読み出し開始アドレスの上位32ビット |
0x80 | TG_ADDR_MODE_RD | 0x1 | シーケンシャル・アドレス指定。TG_ADDR_MODE_WRと一致する必要があります。 |
0xB4 | TG_USER_WORM_EN | 0x0 | WORMモードを無効にします。 |
0xE80 | TG_BYTEEN_SEL | 0x0 | 固定パターン |
0xC00 | TG_PPPG_SEL | 0x0 | 固定パターン |
0x400 | TG_DATA_SEED | 0x5555_5555 | DG0で使用 (DQ0/8/16/24/32/40/48/56/64) |
0x404 | TG_DATA_SEED | 0xAAAA_AAAA | DG1で使用 (DQ1/9/17/25/33/41/49/57/65) |
0x408 | TG_DATA_SEED | 0x5555_5555 | DG2で使用 (DQ2/10/18/26/34/42/50/58/66) |
0x40C | TG_DATA_SEED | 0xAAAA_AAAA | DG3で使用 (DQ3/11/19/27/35/43/51/59/67) |
0x410 | TG_DATA_SEED | 0x5555_5555 | DG4で使用 (DQ4/12/20/28/36/44/52/60/68) |
0x414 | TG_DATA_SEED | 0xAAAA_AAAA | DG5で使用 (DQ5/13/21/29/37/45/53/61/69) |
0x418 | TG_DATA_SEED | 0x5555_5555 | DG6で使用 (DQ6/14/22/20/38/46/54/62/70) |
0x41C | TG_DATA_SEED | 0xAAAA_AAAA | DG7で使用 (DQ7/15/23/31/39/47/55/63/71) |
0x800 | TG_BYTEEN_SEED | 0xFFFF_FFFF | バイト0で使用 |
0x804 | TG_BYTEEN_SEED | 0xFFFF_FFFF | バイト1で使用 |
0x808 | TG_BYTEEN_SEED | 0xFFFF_FFFF | バイト2で使用 |
0x80C | TG_BYTEEN_SEED | 0xFFFF_FFFF | バイト3で使用 |
0x810 | TG_BYTEEN_SEED | 0xFFFF_FFFF | バイト4で使用 |
0x814 | TG_BYTEEN_SEED | 0xFFFF_FFFF | バイト5で使用 |
0x818 | TG_BYTEEN_SEED | 0xFFFF_FFFF | バイト6で使用 |
0x81C | TG_BYTEEN_SEED | 0xFFFF_FFFF | バイト7で使用 |
0x820 | TG_BYTEEN_SEED | 0xFFFF_FFFF | バイト8で使用 |
例2: 無限ループで実行するようにTG2をコンフィグレーション
- すべてのエラー・ステータス・レジスターをクリアします。TG_CLEARにdata=0xFを書き込みます。
- 必要なアクセスおよびデータパターンでTG2をコンフィグレーションします。
- TG_LOOP_COUNTにdata=0x0を書き込みます。
- TG_STARTに0または1を書き込み、TG2を開始します。
- 無限ループの実行中にTG2を停止するには、TG_LOOP_COUNTにdata=0x1を書き込みます。