当前位置:   article > 正文

【Xilinx FPGA】DDR3 MIG IP 仿真_fpga ddr3

fpga ddr3

Memory Interface Generator (MIG 7 Series)是 Xilinx 为 7 系列器件提供的 Memory 控制器 IP,使用该 IP 可以很方便地进行 DDR3 的读写操作。本文主要记录 Xilinx DDR3 MIG IP 的仿真过程,包括 IP 配置和 DDR3 读写仿真两部分内容。

目录

1 MIG IP 配置

2 DDR3 读写仿真


1 MIG IP 配置

        在 Vivado 开发平台 IP Catelog 中,输入 mig,然后选择 Memory Interface Generator (MIG 7 Series),打开 IP 向导。

        Component Name 可自行定义,这里填写 ddr3_controller。

        Memory 类型选 DDR3 SDRAM。

        时钟周期根据 FPGA 速度等级,和速率要求进行选择。这里选了 2500 ps,对应频率为 400MHz。

        Input Clock 是 MIG 内部 PLL 所需要的输入时钟,板卡带了 100M 外部晶振,因此这里选 10000ps(100MHz).

        Memory 地址排序选 BANK -> ROW -> COLUMN.

        System Clock 其实是前面的 Input Clock,这里用了外部时钟信号,所以选 Single-Ended;Reference Clock 是 FPGA PLL 生成的时钟(频率为 200MHz),这里配置为 No Buffer。

        根据硬件原理图,分配 DDR3 管脚。

2 DDR3 读写仿真

        IP 配置完成后,右键点击 ddr3_controller IP,选择 “Open IP Example Design... ”,在弹出的窗口中选择参考工程路径,确认后等待打开参考工程。

        在仿真之前,需要确认仿真器。在 Setting -> Simulation 中,选择 Target simulator 为想要的仿真器,这里选择 Modelsim Simulator。

        确定仿真器之后,点击左侧 Flow Navigator 的 Run Simulation,等待片刻,就会打开 Modelsim 并编译设计文件。

        修改 xsim.tcl 文件,将 traffic_gen 文件替换为用户设计文件,仿真自己编写的模块。

  1. #Copyright 1991-2017 Mentor Graphics Corporation
  2. #
  3. #All Rights Reserved.
  4. #
  5. #THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS THE PROPERTY OF
  6. #MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.
  7. # Simulation script
  8. onbreak {resume}
  9. # create library
  10. if [file exists work] {
  11. file delete -force work
  12. }
  13. vlib work
  14. vmap work ./work
  15. # Compile MIG IP design files
  16. vlog -incr "./src/ddr3_controller/rtl/clocking/*.v"
  17. vlog -incr "./src/ddr3_controller/rtl/controller/*.v"
  18. vlog -incr "./src/ddr3_controller/rtl/ecc/*.v"
  19. vlog -incr "./src/ddr3_controller/rtl/ip_top/*.v"
  20. vlog -incr "./src/ddr3_controller/rtl/phy/*.v"
  21. vlog -incr "./src/ddr3_controller/rtl/ui/*.v"
  22. vcom "./src/ddr3_controller/rtl/phy/*.vhd"
  23. vcom "./src/ddr3_controller/rtl/ddr3_controller_mig_sim.vhd"
  24. vcom "./src/ddr3_controller/rtl/ddr3_controller.vhd"
  25. vlog -incr "./src/ddr3_controller/ddr3/glbl.v"
  26. vlog -incr "./src/ddr3_controller/ddr3/wiredly.v"
  27. vlog -sv +define+x2Gb +define+sg125 +define+x16 "./src/ddr3_controller/ddr3/ddr3_model.sv"
  28. # Compile user design files
  29. # ...
  30. # Start simulation
  31. vsim -voptargs=+acc +notimingchecks work.ddr_scheduler_tb -L unisims_ver -L secureip -t 1fs glbl

        ddr_scheduler 设计了 2 个写通道和 2 个读通道,读/写通道命令按照优先级分别写入 wr_cmd fifo 和 rd_cmd fifo。

 

        从 pstate 的状态跳转可以看出,写命令优先级高于读命令。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/480757
推荐阅读
相关标签
  

闽ICP备14008679号