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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
12
返回列表 发新帖
楼主: z894811350

[求助] ddr2 刷新问题

[复制链接]
 楼主| 发表于 2015-8-12 18:52:16 | 显示全部楼层
我之前发的回复不知道为什么需要管理员审核,一直发布出去!!!
发表于 2015-8-12 21:46:08 | 显示全部楼层
好东西就要分享
发表于 2015-8-12 21:47:02 | 显示全部楼层
好东西就要分享
发表于 2015-8-13 17:58:05 | 显示全部楼层
1.再强调一下,dram正常的刷新不叫self-refresh,self-refresh是dram进入low power模式下的refresh,你可以查看ddr2 spec的cmd 真值表,普通的refresh的cke=1,csn=0,ras=0,cas=0,wen=1,而self-refresh必须要cke拉低,请你不要混淆了这两种refresh,你在文中多次提到的refresh都是self-refresh。
2.另外,看起来你生成的ddr的ip不能够disable refresh。也就是说你的controller会周期性的发出refresh 命令,哪个trefi就是refresh的书信周期,如果disable不了,你可以尝试把这个parameter设定很大,例如放大100倍,或者1000倍甚至更大,这样ddr controller就会隔很长时间再发出一个refresh命令。
3.然后你再试试跨row去读写。
发表于 2015-8-13 17:59:12 | 显示全部楼层
另外,这更ddr2或者是ddr3没有关系,ddr2和ddr3本来就没有什么本质区别,只是速度不同以及一些mode不一样罢了,基本的read/write/active/precharge/refresh都是一样的。
 楼主| 发表于 2015-8-14 12:25:44 | 显示全部楼层
回复 14# gjb649666926
您好:
    1、经过更改,总是有错误,能编译通过,下载到电路板里,跑的一直是之前的程序。    下面是报错信息,
    ERRORIT:242 - Attribute MEM_REFI_VAL on MCB instance
    在ug388文档里
In general, the MIG tool or IP Configurator tools are responsible for setting all parameter values, so the values should not be modified directly.

     没有说不可以更改参数,
    我将localparam C1_MEM_TREFI            = 7800000; 参数上调,发现每次编译都报上面那个错误,不影响生成.bit ,
    我读请求分两种情况都测试了,一种是洗完之后大约100个时钟,第二种是根据写了好多个地址之后发送一个读请求。
    将这个参数移到顶层也是如此;
    我将这个C1_MEM_BURST_LEN参数改变也没有上述错误。
    如果我将参数改小就没有上述那个错误。如果调到9000000这种情况是可以的,扩大0.5倍都有问题,但是读取到的数据还是正确的。是不是我这样改不可以呢?


   2、
ddr2_cmd.png
    self_refresh和refresh应该是没有冲突的吧?如果有self_refresh就不需要refresh了吧?
 楼主| 发表于 2015-8-14 13:03:50 | 显示全部楼层
回复 14# gjb649666926

您好:
    1、经过更改,总是有错误,能编译通过,下载到电路板里,跑的一直是之前的程序。    下面是报错信息,
    ERRORIT:242 - Attribute MEM_REFI_VAL on MCB instance
    在ug388文档里
In general, the MIG tool or IP Configurator tools are responsible for setting all parameter values, so the values should not be modified directly.

没有说不可以更改参数,
我将localparam C1_MEM_TREFI            = 7800000; 参数上调,发现每次编译都报上面那个错误,不影响生成.bit ,
我读请求分两种情况都测试了,一种是洗完之后大约100个时钟,第二种是根据写了好多个地址之后发送一个读请求。
将这个参数移到顶层也是如此;
我将这个C1_MEM_BURST_LEN参数改变也没有上述错误。
如果我将参数改小就没有上述那个错误。如果调到9000000这种情况是可以的,扩大0.5倍都有问题,但是读取到的数据还是正确的。是不是我这样改不可以呢?
   2、
self_refresh和refresh应该是没有冲突的吧?如果有self_refresh就不需要refresh了吧?
发表于 2015-9-18 14:29:07 | 显示全部楼层
回复 17# z894811350

1.self-refresh和normal refresh有区别,DRAM interface的控制信号不一样,CKE就不一样,不可能在normal的模式下做self-refresh的。
2.修改IP的parameter不行的话,我也没有其他的方法了。
3.实在不行,你可以在你generate的IP外对ras/cas/wen这几根信号线做一下mux,当{ras,cas,wen} = 3'b001的时候,也就是refresh的时候,你强制让{ras,cas,wen}变成3‘b111,也就是nop指令,这样就在硬件上面彻底屏蔽掉refresh command了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-25 10:48 , Processed in 0.020861 second(s), 8 queries , Gzip On, Redis On.

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