Vivado DDR3仿真记录

1、 init_calib_complete信号无法拉高 

DDR3相关例程进行仿真时出现init_calib_complete一直未变成高电平,正常情况下,init_calib_complete一般在110us左右就会变为高电平,如果在仿真跑到200us后init_calib_complete仍未变成高电平,这种情况下可以将仿真停下来了不用继续仿真了。

解决方法:

1、打开Modelsim,等待初始化完毕,然后可以看到transcript会提示很多warning,然后我们可以锁定问题:

# WARNING: sim_tb_top.ddr3_top.u_mig_7series_0.u_mig_7series_0_mig.u_memc_ui_top_std.mem_intfc0.ddr_phy_top0.u_ddr_mc_phy_wrapper.u_ddr_mc_phy: The required delay though the phaser_in to internally match the aux_out clock  to ddr clock exceeds the maximum allowable delay. The clock edge  will occur at the output registers of aux_out 556.77 ps before the ddr clock  edge. If aux_out is used for memory inputs, this may violate setup or hold time.
# WARNING: Behavioral models for independent clock FIFO configurations do not model synchronization delays. The behavioral models are functionally correct, and will represent the behavior of the configured FIFO. See the FIFO Generator User Guide for more information.
# WARNING: Behavioral models for independent clock FIFO configurations do not model synchronization delays. The behavioral models are functionally correct, and will represent the behavior of the configured FIFO. See the FIFO Generator User Guide for more information.
# ** Error (suppressible): (vsim-8630) Infinity results from division operation.
#    Time: 0 fs  Iteration: 0  Process: /sim_tb_top/mem_rnk[0]/mem/gen_mem[0]/u_comp_ddr3/#ASSIGN#532 File: ../../../../imports/ddr3_model.sv Line: 532
# Warning : input CLKIN1 period and attribute CLKIN1_PERIOD on PLLE2_ADV instance sim_tb_top.ddr3_to
### 设置和运行VivadoDDR3仿真的方法 #### 准备仿真环境 为了确保DDR3 IP核能够在ModelSim中顺利仿真,准备阶段至关重要。这涉及到创建并配置必要的文件和参数。具体而言,在初始的仿真环境中应添加特定于DDR3模型的头文件`ddr3_model_parameters.vh`以及仿真模块文件`ddr3_model.sv`[^2]。 #### 修改仿真源码 当完成IP核实例化之后,在`example_design/sim`目录下会找到所需的全部仿真组件。对于简化操作流程,建议打开`ddr3_model.sv`文件并将其中涉及外部包含路径的部分移除,即删除`include "ddr3_model_parameters.vh"`语句,并把该头文件内的定义直接复制粘贴至当前位置之下[^3]。 #### 编写测试平台脚本 编写用于启动仿真的Tcl命令脚本(通常命名为`.do`),此脚本应当能够加载设计文件、编译所需库项、设定波形显示选项等。按照惯例,在ModelSim中通过执行此类脚本来驱动整个仿真过程是非常常见的做法[^4]。 ```tcl # sim.do - ModelSim simulation script for DDR3 IP core in Vivado project transcript on if {[file exists work]} { vdel -all } vlib work vmap work work # Compile the design files here... vlog -work work ${PATH_TO_PROJECT}/path/to/ddr3_model.sv ... # Load waveform settings and run simulation vsim -novopt work.top_level_entity_name add wave * run -all ``` #### 解决常见问题 遇到“卡在executing simulate step”的情况可能是因为某些预处理指令未能正确解析或是存在未解决的依赖关系。确认所有必需的宏定义都已适当引入,并且所有的Verilog/SystemVerilog源代码均已成功编译无误后重试模拟步骤[^1]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值