基于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:一个应用举例

  

posted on 2017-05-03 11:48  hu6536  阅读(114)  评论(0)    收藏  举报