xt860706的个人空间 https://blog.eetop.cn/235459 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

在EDK中使用DDR2内存的仿真方法

已有 1917 次阅读| 2013-8-9 14:21 |个人分类:FPGA设计

Micron的网站上可以下载到DDR2的仿真模型,开始以为直接连上就好,但事实上问题很多。

1.DDR2模型配置

DDR2仿真模型文件很多,其本身就是一个可以运行的仿真模块。我们不需要那么多文件,需要用到的文件是:

在EDK中使用DDR2内存的仿真方法

Ddr2.v是内存颗粒的仿真文件,ddr2_module.v是内存模组(内存条)的仿真文件,ddr2_model_parameters.vh是参数配置文件。

首先看ddr2_module.v的接口定义:

在EDK中使用DDR2内存的仿真方法

发现少了什么?

对,是dmData mask),先把它加上,类型是input,宽度是【8:0】:

在EDK中使用DDR2内存的仿真方法

再看ddr2.v的接口定义:

在EDK中使用DDR2内存的仿真方法

其中dm_rdqs就是dm接口,它在ddr2_module.v中连接的是dqs17:9】,如图:

在EDK中使用DDR2内存的仿真方法

Dqs的类型是inoutdm的类型是output,如果不改掉的话,在顶层的tb里是联不通的。所以这里吧dqs9..17】改为dm[0..8],如图:

在EDK中使用DDR2内存的仿真方法

最后看ddr2_parameters.vh,这里面存储了DDR2的各种参数,需要改的是最下面的内容:

在EDK中使用DDR2内存的仿真方法

BA_BITSBA的位宽,在DDR2 SODIMM中,BA的宽度是2,要改掉。否则仿真时会出错。

DEBUGDebug message的开关,打开关掉都可以,但是打开的话会严重拖慢仿真速度,这里关掉就好了。修改结果如图:

在EDK中使用DDR2内存的仿真方法


modelsim中编译DDR2模块时,我是用的命令为:

vlog -novopt +define+SODIMM +define+x16 +define+sg37E  ../ddr2/ddr2_module.v  ../ddr2/ddr2.v

具体含义可以参照ddr2模块中的readme.txt

到此为止,DDR2模块的修改就完成了。

2.EDK模块的配置

如何在EDK中生成仿真模型及EDK库的配置在网上有较多说明,此处跳过。

这里要修改mhs文件,在system.mhs中,找到描述mpmc的段落,在段中加入

# #######################################

# Simulation

# #######################################

 PARAMETER C_SKIP_SIM_INIT_DELAY = 1

这句的含义是跳过DDR2的启动时间,加快仿真速度。

3.结果演示

DDR2EDK连接的过程不再赘述,下面直接给出modelsim的仿真结果:

在EDK中使用DDR2内存的仿真方法


DDR2完成启动居然花了73us,若是不加C_SKIP_SIM_INIT_DELAY可能要300-400u

DDR2的仿真可对电脑要求不低啊!


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 910

    访问数
关闭

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

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

GMT+8, 2025-2-23 23:18 , Processed in 0.016197 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部