在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 18787|回复: 39

[求助] modelsim仿真ddr2问题

[复制链接]
发表于 2012-3-22 09:28:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
请问各位,我从美光的网站上下载了DDR2仿真模型,那个ddr2_parameters.vh的定义文件需要放进project中吗?好像我放进去就报错,不放进去吧,ddr2.v和ddr2_module.v等用到它的文件就缺少定义,总是有警告。
求助各位,应该怎样做呢?
发表于 2012-3-22 11:10:30 | 显示全部楼层
本帖最后由 catcat_2 于 2012-3-22 11:24 编辑

亲,恭喜你,终于快搞定了~!

那个ddr2_parameters.vh文件不需要放进工程中,不要编译,只编译ddr2.v 和ddr2_module.v。。
ddr2.v,ddr2_module.v和ddr2_parameters.vh 三个文件的路径最简单的是放到你的仿真目录下,和work一个目录里面。
如果你想放到别的文件夹,那么分别打开ddr2.v 和ddr2_module.v文件,里面有一行:

`include "ddr2_parameters.vh"

这个就是ddr2_parameters.vh相对于 仿真目录(simulation) 和 ddr2.v, ddr2_module.v的路径了, 你可以自己改。。

我的目录结构是这样的,你参考下:
**/simulation/work
**/simulation/sim.do
**/simulation/modelsim.ini
**/simulation/micron_ddr2/ddr2.v
**/simulation/micron_ddr2/ddr2_module.v.v
**/simulation/micron_ddr2/ddr2_parameters.vh
..........

于是我就把这条include 语句改成了:
`include "micron_ddr/ddr2_parameters.vh"

记住编译ddr2_module.v的时候要加参数哦。看看那个美光readme。。把我的脚本这段贴给你参考:

------------------------------------------------------------
vlog  ../verilog/ddr2_ip_phy_alt_mem_phy_seq_wrapper.vo
vlog +define+sg25 +define+x8 +define+SODIMM +define-GMEM_BITS=6 micron_ddr/ddr2.v micron_ddr/ddr2_module.v
vlog  ../verilog/*.v

vsim -t ps -l log.txt work.ddr2_ip_example_top_tb

log -r /*

run -all
--------------------------------------------------------------

我用的是DDR2 sodimm 封装,速度等级是25, 内存条上一个8个颗粒。。。 你如果不是sodim,可以根据美光那个readme里面的介绍改相应的参数。。

然后-GMEM_BITS 这个参数,是灵活配置你仿真的时候需要访问多大内存空间的,你访问的内存空间大小等于2^GMEM_BITS。建议这个参数配得小一点。因为仿真的时候,仿真的内存模型会映射到你系统的内存里面,模型空间越大,占用的系统内存就越大。小一点,跑仿真的时候电脑就没那么卡,太大了,modelsim会crash的。
 楼主| 发表于 2012-3-22 11:33:31 | 显示全部楼层
回复 2# catcat_2

       感谢catcat_2的热情帮助,终于看到波形了~~~~跟你当时发在Altera上的帖子一样,内牛满面啊~~呵呵~

不过现在貌似有个新问题,其他信号都挺正常的,只有ready信号没有输出。这是肿么回事呢?

   
 楼主| 发表于 2012-3-22 11:35:15 | 显示全部楼层
回复 2# catcat_2
刚才的图片没有上传成功,再试试看。

    仿真图2.jpg
仿真图3.jpg
发表于 2012-3-22 12:32:12 | 显示全部楼层
额。。 这个要看看别的信号了,烦劳从你的modelsim里面找到下面两个信号的波形,看看是什么情况:
1. cmd_gen_full :
/ddr2_ip_example_top_tb/dut/ddr2_ip_inst/ddr2_ip_controller_phy_inst/ddr2_ip_alt_mem_ddrx_controller_top_inst/controller_inst/controller_inst/input_if_inst/cmd_gen_full

2. wr_data_mem_full :
/ddr2_ip_example_top_tb/dut/ddr2_ip_inst/ddr2_ip_controller_phy_inst/ddr2_ip_alt_mem_ddrx_controller_top_inst/controller_inst/controller_inst/input_if_inst/wr_data_mem_full
 楼主| 发表于 2012-3-22 14:06:54 | 显示全部楼层
回复 5# catcat_2


    只找到了input_if_inst这个文件,但是里面没有你说的那两个cmd_gen_full和wr_data_mem_full信号噢。
有一个叫什么ready_from_cmd_gen的信号倒是有,不知道与ready信号是否相关呢?
仿真图4.jpg
发表于 2012-3-22 16:33:09 | 显示全部楼层
你的ddr2 controller可能跟我的不太一样。。 你的quartus ii是什么版本的? 生成core 的时候,你选的是high performance controller 还是 high performance controller ii ?

这个ready 信号要顺着模块一级一级查下去,看看是什么情况。
 楼主| 发表于 2012-3-22 20:03:06 | 显示全部楼层
回复 7# catcat_2

         用的是10.0生成的,选择的是HPCII。已经在逐步查看波形了,但是文件好多喔,找到头都大了,呵呵~不知道有没有更便捷的方法呢?
发表于 2012-3-23 14:59:57 | 显示全部楼层
没有便捷的办法额,只能一步一步对着代码往下找,看看驱动这个ready信号的那些信号有没有输出。看看哪个模块出了问题。我估计问题不大,就是比较难找。没办法,ddr2的debug就是这样的,so many文件,我都晕过很多次了,反复晕,习惯了就好了。

我的也是HPC II的,不过我的是11.1的,为什么我有的信号你没有呢? 你不会是少编译了几个模块吧?你用的是VHDL还是verilog ? 我的是verilog的。
 楼主| 发表于 2012-3-23 15:05:56 | 显示全部楼层
回复 9# catcat_2


    我的也是Verilog,可能不同版本生成的不一样,至少从模块上看是不一样的,不知道这两者之间的区别。我已经装上11.0的软件了,实在不行,我重新生成一次看看,呵呵。这个仿真已经我折腾了快两个星期了,总有问题,郁闷坏了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

X

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-7-6 23:44 , Processed in 0.026912 second(s), 10 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表