インテルのみ表示可能 — GUID: yjq1582820876503
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のアーキテクチャー: クロックの位相アライメント
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
インテルのみ表示可能 — GUID: yjq1582820876503
Ixiasoft
11.9.5.2. Addressパターン
トラフィック・ジェネレーターは、コンフィグレーションされるパターンに基づきアドレスを生成します。アドレスは一意の書き込み命令ごとに生成され、その後、同じアドレスが対応する一意の読み出し命令に使用されます。書き込みおよび読み出しが繰り返される場合は、最後の一意のアドレスを再利用します。
アドレスは、次の3つのモードのいずれかで生成されます。
- Random: 指定されているシードアドレスから開始して、トラフィック・ジェネレーターは疑似ランダム * アドレスをそれぞれの命令に生成します。
- Sequential: 指定されている開始アドレスから開始して、トラフィック・ジェネレーターは指定されている値でそれぞれの命令に対してアドレスをインクリメントします。
- Random-Sequential: 指定されている開始アドレスから開始して、トラフィック・ジェネレーターは指定されている値でそれぞれの命令に対してアドレスをインクリメントします。これは、指定されている数の連続アドレスに対して繰り返されます。トラフィック・ジェネレーターはその後、疑似ランダム * アドレスを生成し、インクリメントを続けます。
* 疑似ランダムアドレスはLFSRによって生成されます。また、有効なアドレス幅全体で繰り返されないことが保証されています。Random-Sequentialモードでは、有効なアドレス幅は次のように計算されます。
wordAddrWidth - log2(wordAddrDivBy) - log2(randSeqAddrIncr) - log2(numRandSeqAddr)Randomモードでは、有効なアドレス幅は次のように計算されます。
wordAddrWidth - log2(wordAddrDivBy) - ceil_log2(burstlength) - log2(numRandSeqAddr)
計算式の詳細は次のとおりです。
- wordAddrWidthは、ctrl_ammインターフェイスのワードアドレス幅です。
- wordAddrDivByは、ctrl_ammインターフェイスのアドレスを分割する最小値であり、これによってAMMワードアドレスのアライメント要件を満たします。生成されるワードアドレスはこの値で割り切れる必要があります。
- randSeqAddrIncrは、TG_SEQ_ADDR_INCRレジスターで指定する値です。2で割り切れない場合は、ログの上限が使用されます。
- numRandSeqAddrは、TG_RAND_SEQ_ADDRS_RDレジスターまたはTG_RAND_SEQ_ADDRS_WRレジスターで指定する値です。2で割り切れない場合は、ログの上限が使用されます。Randomモードでは、これは常に1に等しくなります。
- burstlengthは、TG_BURST_LENGTHで指定する値です。2で割り切れない場合は、ログの上限が使用されます。
上記の計算における違いは、Random-SequentialモードではrandSeqAddrIncr ≥ burstlengthであるため、burstlengthの明示的なパディングが省略できることです。
重要: RandomモードまたはRandom-Sequentialモードでは、Start Addressをすべて1に設定することはできません。
次の4つの例には、次の内容が当てはまります。
- Xの値はレジスターが使用されないことを示しており、その値は無関係になります。
- アドレス幅 (31) はSYMBOL ADDRESSであり、トラフィック・ジェネレーターから出力されます。これらの例で使用されているデザインでは、AMM_WORD_ADDRESS_WIDTHは26ビットです。この差を考慮するため、トラフィック・ジェネレーターはすべてのアドレスを差の分だけ (5ビット) シフトします。以下の例ではこのシフトされたアドレスを使用していますが、外部メモリー・インターフェイスではctrl_ammインターフェイス側でこのシフトを認識しません。
- 示されている波形は、完全な命令パターンのスニペットであり、書き込み命令と対応するアドレスを示すだけのものです。スペースの制限により、すべての読み出しブロックが表示されているわけではありません。
例1: Randomアクセスモード
命令パターン
TG_LOOP_COUNT=2 TG_WRITE_REPEAT_COUNT=1 TG_RW_GEN_IDLE_COUNT=2
TG_WRITE_COUNT=3 TG_READ_REPEAT_COUNT=1 TG_RW_GEN_LOOP_IDLE_COUNT=0
TG_READ_COUNT=3 TG_BURST_LENGTH=1
アドレスパターン
TG_SEQ_START_ADDR_WR_L=0x5a5a TG_ADDR_MODE_WR=0 TG_SEQ_ADDR_INCR=X
TG_SEQ_START_ADDR_WR_H=0x5a5a TG_ADDR_MODE_RD=0 TG_RAND_SEQ_ADDRS_RD=X
TG_SEQ_START_ADDR_RD_L=0x5a5a TG_RETURN_TO_START_ADDR=0 TG_RAND_SEQ_ADDRS_WR=X
TG_SEQ_START_ADDR_RD_H=0x5a5a
図 106. Randomアクセスモード

例2: Sequentialアドレスモード
命令パターン
TG_LOOP_COUNT=2 TG_WRITE_REPEAT_COUNT=1 TG_RW_GEN_IDLE_COUNT=0
TG_WRITE_COUNT=3 TG_READ_REPEAT_COUNT=1 TG_RW_GEN_LOOP_IDLE_COUNT=1
TG_READ_COUNT=3 TG_BURST_LENGTH=1
アドレスパターン
TG_SEQ_START_ADDR_WR_L=’0 TG_ADDR_MODE_WR=1 TG_SEQ_ADDR_INCR=8
TG_SEQ_START_ADDR_WR_H=’0 TG_ADDR_MODE_RD=1 TG_RAND_SEQ_ADDRS_RD=X
TG_SEQ_START_ADDR_RD_L=’0 TG_RETURN_TO_START_ADDR=0 TG_RAND_SEQ_ADDRS_WR=X
TG_SEQ_START_ADDR_RD_H=’0
図 107. Sequentialアドレスモード

例3: TG_RETURN_TO_START_ADDR=1のSequentialアドレスモード
命令パターン
TG_LOOP_COUNT=2 TG_WRITE_REPEAT_COUNT=1 TG_RW_GEN_IDLE_COUNT=0
TG_WRITE_COUNT=3 TG_READ_REPEAT_COUNT=1 TG_RW_GEN_LOOP_IDLE_COUNT=1
TG_READ_COUNT=3 TG_BURST_LENGTH=1
アドレスパターン
TG_SEQ_START_ADDR_WR_L=’0 TG_ADDR_MODE_WR=1 TG_SEQ_ADDR_INCR=8
TG_SEQ_START_ADDR_WR_H=’0 TG_ADDR_MODE_RD=1 TG_RAND_SEQ_ADDRS_RD=X
TG_SEQ_START_ADDR_RD_L=’0 TG_RETURN_TO_START_ADDR=1 TG_RAND_SEQ_ADDRS_WR=X
TG_SEQ_START_ADDR_RD_H=’0
図 108. TG_RETURN_TO_START_ADDR=1のSequentialアドレスモード

例4: Random-Sequentialアドレスモード
命令パターン
TG_LOOP_COUNT=2 TG_WRITE_REPEAT_COUNT=1 TG_RW_GEN_IDLE_COUNT=1
TG_WRITE_COUNT=3 TG_READ_REPEAT_COUNT=1 TG_RW_GEN_LOOP_IDLE_COUNT=1
TG_READ_COUNT=3 TG_BURST_LENGTH=1
アドレスパターン
TG_SEQ_START_ADDR_WR_L=0x5a5a TG_ADDR_MODE_WR=2 TG_SEQ_ADDR_INCR=6
TG_SEQ_START_ADDR_WR_H=0x5a5a TG_ADDR_MODE_RD=2 TG_RAND_SEQ_ADDRS_RD=2
TG_SEQ_START_ADDR_RD_L=0x5a5a TG_RETURN_TO_START_ADDR=0 TG_RAND_SEQ_ADDRS_WR=2
TG_SEQ_START_ADDR_RD_H=0x5a5a
図 109. Random-Sequentialアドレスモード
