开发环境Quartus II 13.1 ,仿真工具 ModelSim SE-64 10.4,直接使用altera官方testbench仿真测试。
目录
6 仿真工程
1 IP核配置生成
用verilog语言
注意:在生成过程中会卡住两次,每次等待一会后,在任务管理器中关闭quartus_map.exe,即可顺利生成。
2 搭建仿真工程
2.1 工程层次
生成的IP文件夹内包含了例程文件,在quartus中搭建例程工程,编译,以此工程为基础进行仿真。
2.2 _example_top.v文件更正地址
在_example_top.v文件中需要更改driver与ddr IP地址 的 对应顺序,默认生成的顺序为bank-row-col,而我们创建的IP为顺序row-bank-col
2.3 _example_driver.v文件说明
更改下图中的参数,可以调整生成local数据的长度。如果不清楚,可以先不更改,用默认值。
代码主题框架如下:
3 利用moldesim SE仿真
在quartus中编译例程工程后,设置仿真工具路径,参数。
3.1 在quartus 中设置仿真工具路径
路径末尾加斜杠,否则报错:Quartus II-can't launch the ModelSim-Altera software
3.2 设置仿真工具、testbench.
3.3 仿真文件结构
_top_tb.v中把_top.v的DDR接口接到DDR模拟器上,并监视总线控制信号,打印出
3.4 启动RTL仿真
modelsim会自动编译库文件、设计文件,时间较长。wave默认只有_tb.v中的信号,可以添加自己想看的其他信号,在modelsim中restart.
4 使用时序总结
4.1 配置
控制器会自动执行行激活、关闭;启动时自动配置mode寄存器,校准。等待初始化完成信号,可进行本地操作。
4.2 写突发
4.3 读突发
4.4 写突发local_size=1
(正常应local_size=2,对应DDR的BL=8固定),配合DM使用
突发local_size=1,local_address每次递增4。
local_address=0对应到DDR接口,用地址0起始,取固定BL=8中的低4个;
local_address=4对应到DDR接口,用地址0起始,取固定BL=8中的高4个;
4.5 odt使用情况
只在写数据时使用。
5 特别注意
上文图中已经提及,在此处再次说明。
1)IP创建卡住处理;
2)modelsim-altera 不能仿真VHDL verilog混合代码,要用SE版本;
3)设置modelsim路径时,最后要加斜杠;
4) _example_top.v中地址对应顺序要修正为row-bank-col,与IP设置相对应;
6 仿真用工程
仿真工程ddr2a.rar
https://download.csdn.net/download/leixj025/12507545