基于Xilinx Kintex-7的DDR3控制器的设计和仿真
1: Xilinx® 7 DDR3 MIS的介绍
The Xilinx® 7 series FPGAs memory interface solutions (MIS)集成了前端预处理控制器和物理层控制器(PHY),完成对DDR3芯片的控制。用户测接口可以实现基本localbus或者基于AMBA的AXI4 slave接口到MIS,该系列的MIS不同于Spartan-6系列的MIG硬核解决方案,使用了软核来实现,并且运用了7系列中的PHASER_IN、PHASER_OUT、PHY控制器块和I/O FIFOs等资源。用户测接口实现1/2或者1/4的数据流变速箱。
下图为Xilinx® 7 DDR3 MIS的整体框图:

图 1.1 7 Series FPGAs Memory Interface Solution
2:定制MIS IP核
在定制IP核的时候首先要明确以下几点:
(1):DDR2/3芯片的型号和频率,确定用户接口测的频率等;
(2):DDR2/3芯片的终结电阻阻值多大;
(3):预先验证过的DDR2/3的xdc引脚约束文件;
以下是IP核的生成过程:
(1):新建目标器件工程
本设计采用Kintex-7系列325TFFG900-1作为目标器件。

图 2.1 工程目标器件
(2):添加定制IP MIS核
步骤如下:

图 2.1 新建IP

图 2.2 设置用户侧、组建名称

图 2.3 设置是否需要引脚兼容

图 2.4 选取DDR3 SDRAM

图 2.5 设置DDR3芯片属性和频率

图 2.6 设置其他

图 2.7 设置时钟

图 2.8 IN_TERAM

图 2.9 是否开始新的设计或者导入xdc

图 2.10 新建引脚分配

图 2.11 设置时钟输入(无关)

图 2.12 完成IP设置

图 2.13 新建IP完成,Generate文件
3:Demo模板搭建
Demo模板主要分为2个模块
4:TestBench模板搭建
5:仿真脚本编写
编写Questa-sim仿真脚本如下:
1 echo "=======================================================================" 2 echo "=== Start of Compile The Resouce and Testbench ! ===" 3 echo "=======================================================================" 4 vlib work 5 vlog -incr ../../src/ip/mig_7series_0/mig_7series_0/user_design/rtl/clocking/*.v 6 vlog -incr ../../src/ip/mig_7series_0/mig_7series_0/user_design/rtl/controller/*.v 7 vlog -incr ../../src/ip/mig_7series_0/mig_7series_0/user_design/rtl/ecc/*.v 8 vlog -incr ../../src/ip/mig_7series_0/mig_7series_0/user_design/rtl/ip_top/*.v 9 vlog -incr ../../src/ip/mig_7series_0/mig_7series_0/user_design/rtl/phy/*.v 10 vlog -incr ../../src/ip/mig_7series_0/mig_7series_0/user_design/rtl/ui/*.v 11 vlog -incr ../../src/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0_mig_sim.v 12 vlog -incr ../../src/ip/mig_7series_0/mig_7series_0/user_design/rtl/mig_7series_0.v 13 14 vlog -incr -sv +define+den4096Mb +define+x4Gb +define+sg125 +define+x16 ../../src/ip/ddr3_model/ddr3.v 15 16 vlog -incr $env(XILINX_VIVADO)/data/verilog/src/glbl.v 17 18 vlog -incr -sv ../../src/rtl/*.sv 19 vlog -incr -sv ./testbench/*.sv 20 echo "=======================================================================" 21 echo "=== End of Compile The Resouce and Testbench ! ===" 22 echo "=======================================================================" 23 vsim -t fs -novopt +notimingchecks -L vivado_unisims_ver -L vivado_secureip work.tb_top glbl 24 echo "=======================================================================" 25 echo "=== Start of Simulation The TB top ! ===" 26 echo "=======================================================================" 27 run -all
6:运行仿真查看结果
(1):运行仿真


等待仿真完成。
(2):波形分析
7:DDR3读写的在板验证
8:一个应用举例
浙公网安备 33010602011771号