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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3974|回复: 11

做过DDR控制的大虾请看过来......

[复制链接]
发表于 2004-6-18 11:42:02 | 显示全部楼层 |阅读模式

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

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

x
    我现在做一个简化的DDR控制器,仅支持读/写(均带auto precharge)/AUTO REFRESH/LOAD MODE REGISTER命令,不支持BURST TERMINATE和SELF REFRESH命令。在设计DDR状态机DDR_FSM时碰到问题,请帮忙解答。
   DDR_FSM的设计思路是这样的:
   (1)DDR状态机DDR_FSM在clkn_ddr上升沿翻转;
   (2)Trcd计数器和Tcaslat计数器分别用于控制Trcd时间和CAS Lat,也采用clkn_ddr上升沿控制。
   (3)发送读请求rd_req时,DDR_FSM进入RD_ACT状态,发送ACTIVE命令,并转入TRCD_WAIT状态,同时装载Trcd计数器的初值并开始计数,计数器到规定值时trcd_end信号有效,DDR_FSM从RCD_WAIT状态进入RD_COM状态,发送READ COMMMAND命令,并转入CASLT_WAIT状态,同时装载Tcaslt计数器的初值并开始计数,计数器到规定值时tcaslt_end信号有效,DDR_FSM进入RD_BRST状态,同时装载brst_cnt计数器的初值(突发长度)并开始计数,计数器到规定值时brst_end信号有效,DDR_FSM进入IDLE状态,等待后续读/写/刷新请求。
    问题是在突发读操作时,DDR_FSM的状态由读请求信号rd_req、Trcd计数器、Tcaslat计数器以及brst_cnt计数器的trcd_end、tcaslt_end以及brst_end信号控制,要想无缝突发读,读请求信号rd_req必须间隔突发长度/2个时钟周期(以突发长度为8计算为4个时钟周期),Trcd一般1~3个时钟周期、Tcaslt一般2、2.5或3个时钟周期,加起来大约3~6个时钟周期,这样在发送下一个rd_req时,DDR_FSM的状态可能处于CASLT_WAIT状态甚至RCD_WAIT状态,如果响应后续读请求rd_req,则进入RD_ACT状态,发送ACTIVE命令,还没有来得及发送送READ COMMMAND命令,这样第一个读请求乃至后续读请求就无法得到正确的响应。
    请问各位大虾是如何处理的?在线等待回复,谢了先!
发表于 2004-6-18 11:50:47 | 显示全部楼层

做过DDR控制的大虾请看过来......

你这种方法不能实现无缝读写
“仅支持读/写(均带auto precharge)”
当DDR完成读写操作后,自动进行precharge,这时需要经过tRP时间
发表于 2004-6-18 11:54:16 | 显示全部楼层

做过DDR控制的大虾请看过来......

不要把Tcaslat状态机的转移有关
 楼主| 发表于 2004-6-18 12:05:45 | 显示全部楼层

做过DDR控制的大虾请看过来......

我的地址策略是不同的rd_req对应不同的bank,写操作也是这样,因此应该可以无缝操作,
SDRAM的控制我就是这样做的,但是DDR的状态机的状态转移似乎不太好做,因为数据传送周期减半了。
发表于 2004-6-18 12:11:17 | 显示全部楼层

做过DDR控制的大虾请看过来......

(3)发送读请求rd_req时,DDR_FSM进入RD_ACT状态,发送ACTIVE命令,并转入TRCD_WAIT状态,同时装载Trcd计数器的初值并开始计数,计数器到规定值时trcd_end信号有效,DDR_FSM从RCD_WAIT状态进入RD_COM状态,发送READ COMMMAND命令,并转入CASLT_WAIT状态,同时装载Tcaslt计数器的初值并开始计数,计数器到规定值时tcaslt_end信号有效,DDR_FSM进入RD_BRST状态,同时装载brst_cnt计数器的初值(突发长度)并开始计数,计数器到规定值时brst_end信号有效,DDR_FSM进入IDLE状态,等待后续读/写/刷新请求。
发送READ COMMMAND命令后,经过BL/2就可以进行下一次读操作了
发表于 2004-6-18 12:13:18 | 显示全部楼层

做过DDR控制的大虾请看过来......

可以无缝写了吗
 楼主| 发表于 2004-6-18 12:36:18 | 显示全部楼层

做过DDR控制的大虾请看过来......

不好意思,刚才吃饭去了,现在试试,多谢!不过你的建议是不是应该将RD_BRST状态去掉(caslt_end有效后状态由CASLT_WAIT转移到RD_BRST)?
发表于 2004-6-18 13:17:06 | 显示全部楼层

做过DDR控制的大虾请看过来......

我觉得应该去掉
反正时间到了,就可以进行下一次读了
 楼主| 发表于 2004-6-18 13:18:53 | 显示全部楼层

做过DDR控制的大虾请看过来......

多谢!可以了!但是好象不规范,通用的DDR控制器要支持无缝读写不知是怎么作的?
发表于 2004-6-18 13:20:21 | 显示全部楼层

做过DDR控制的大虾请看过来......

你的仿真模型是什么
能给我一个吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2025-5-14 22:41 , Processed in 0.026110 second(s), 8 queries , Gzip On, MemCached On.

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