微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > sdram中读写的时候数据在传送中遇到refresh的问题

sdram中读写的时候数据在传送中遇到refresh的问题

时间:10-02 整理:3721RD 点击:
sdram中读写的时候,数据在传送中遇到refresh,假设BL=8,传了5个数据时遇到refresh计数点,,sdram开始rrefresh command,因为refresh的优先级比较高(我看别人说的,我也是不清楚),这个时候剩下的3个没有传完的数据怎么处理,希望高手帮我一把,谢谢。

你只能避免这种情况了 ,sdram用起来真的是很麻烦

SDRAM的刷新周期并不是限制死的,协议上只要求在15.6ms/7.8ms中把所有的行刷新一次即可,平均7.8us要发送一次refresh命令。你这种情况下可以等待这个读写操作结束后,再发送refresh,如果你担心refresh反压的时间太长的话,可以把刷新的计数器配得稍微小一点。

为何不用模块调用?

操作完了再刷新即可

是在做SDRAM Controller模块设计吗?
处理方式:当burst操作尚未结束时,可以推迟refresh的操作,即等一个burst操作完成后,再开始refresh的操作;同样也可以中断当前的burst操作,等refresh完成后,再继续剩余的burst操作。第一种处理方式设计要简单一些。

sdram的建议
使用sdram最主要的就是如何安排时序,最大化利用带宽。
刷新时间不固定,在不超过最大限定时间,可以提前或者退后。
当在读写操作时,等到结束再启动刷新
当正在做刷新操作时,不启动读写,
前面的帖子没仔细读,可能和大家意思重复。/

学习了

谢谢各位大牛!

在读写完后再刷新数据会不会丢失啊!

一开始设计的时候就要算好时间,
系统的refresh周期=芯片要求的最大refresh周期 - 最大burst时间 - 安全性冗余(若干个时钟周期)
这样会比较好,遇到burst,推迟refresh也不会影响性能。

不会丢失

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top