马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 pengyouxiaohui 于 2021-9-29 16:38 编辑
系统中需要用ddr3进行数据缓存,有关结构如图所示,其中fifo及ddr3均是IP,剩下的是自己编写的控制逻辑,用于对ddr3读写信号控制及空满标志检测等。
在网上能找到的都是按照例程对自带仿真工程进行测试。
需要的是模拟真实DDR3 IP核仿真。
1,对于fifo的添加,将fifo对应的qip文件拷贝到和.do文件在同一个文件夹下
2,DDR3 IP核添加
生成IP核的同时,会生成仿真文件(工程里DDR3 IP命名为ddr3_control)
$ddr3_ip_dir\ddr3_control\ddr3_control_example_design\simulation
($ddr3_ip_dir为IP核所在工程目录,ddr3_control是IP核的名字)
如果只是仿真IP核,按照文件README.txt的步骤进行操作即可。
在本工程中,由于是模拟实际工程进行仿真,需打开run.do文件进行查看。
具体目录
$ddr3_ip_di\ddr3_control\ddr3_control_example_design\simulation\verilog\mentor
根据.do文件描述,主要调用msim_setup.tcl,(run.do和msim_setup.tcl在同一目录下)。
主要按照tcl文件编写自己的.do文件,不必完全按照该文件进行编写,把实际需要的添加到自己的do文件中,主要分为三大块
①拷贝ROM/RAM文件到自己的仿真目录下
其中$QSYS_SIMDIR改成自己实际目录,(为防止仿真出错,可直接将这三个文件拷贝到仿真目录下)
②添加库编译库文件
库里再建文件夹比较麻烦,简单的做法是将对应的库文件拷贝到单独文件夹,然后直接进行直接编译。(在自己的仿真目录下,新建文件夹altera_lib用于存放库文件,操作很简单,按照提示,将安装目录下的库文件拷贝到当前文件夹)
③按正确顺序编译文件
需要的文件很多,简单的办法,直接用实际工程目录进行替换掉
注意:
3,模拟实际DDR3,主要对存储器接口进行控制
$ddr3_ip_di\ddr3_control\ddr3_control_example_design\simulation\verilog
该目录下文件ddr3_control_example_sim.v进行了仿真示例,该文件主要进行两部分控制,一部分是memory interface,一部分是状态控制(local_init_done等状态输出),状态控制主要是输出,可以忽略不管,按照文件里的指示对测试ddr3进行memory接口连接,添加到testbench测试文件里,并将对应的文件添加到do文件进行编译。
主要是alt_mem_if_ddr3_mem_model_top_ddr3_mem_if_dm_pins_en_mem_if_dqsn_en.sv文件对存储接口进行了控制
|