集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1931|回复: 5

如何操作SDRAM的自刷新命令而不影响正常读写操作?

[复制链接]
晓灰灰 发表于 2018-6-19 14:23:20 | 显示全部楼层 |阅读模式
        问:如何操作SDRAM的自刷新命令而不影响正常读写操作?


        众所周知,SDRAM从开始工作伊始,一直伴随着64ms刷新一遍的最基本规定(假设该SDRAM有4096行,那么必须大约15us的时间就要发出一次自刷新命令),这是为了保持SDRAM内数据能够在上电以后一直保持的原因,具体原因就不多解释了,我们还是以实际操作为主。

        正常情况下,我们要不断地对SDRAM进行读或者写操作,这样才能实现fpga和SDRAM之间的数据交流传递。假如我们在进行写操作时,15us的时间计时已经到了,发出了自刷新使能信号,这时候难道我们要打断写操作吗?显然这是不文明的野蛮的,理想的操作就是等待本次的写操作完成,SDRAM的内部状态机进入到了休闲状态,这时候才正式发出自刷新命令。
        可能大家会认为这样实际经过的时间是超过15us的,假如4096次每次都是超过15us的话,那么总时间岂不是超过64ms了,现在想起来感觉当初自己的问题真傻。因为实际上每发出一次刷新命令的周期是64ms/4096=15.625us,当初设置15us为周期就已经考虑到了这个余量,而一个写周期(假如突发长度=4)本身的时间远远小于0.625us,所以这样设计是合理的。
        但是,如果突发写长度是全页的话,要考虑SDRAM的工作频率、突发长度重新计算这个写周期时间,那么设置15us的计时时间是有问题的,应该调的更小一点。

        总结:自刷新要保证64ms内一遍,合理设置自刷新周期计时器,考虑读写一个周期所花的时间,使得在发出自刷新信号的时候,等待本次正在进行的读写周期完成后,再写入自刷新命令。

        以上内容是我如何对自刷新操作和读写操作进行合理安排的一种解决方案,后来细想其实可以更加的合理,微调后的方案::15us的定时计数器不断地进行,没计到15us发出刷新请求信号,同时计数器重新计数(上个方案是等到正式发出刷新命令以后才开始重新计数),本次微调的技巧应该更加理想些(因为读写周期即使是全页的,也就是10us以内完全在15us的范围以内)。
 楼主| 晓灰灰 发表于 2018-6-19 14:33:48 | 显示全部楼层
如何操作SDRAM的自刷新命令而不影响正常读写操作
zhangyukun 发表于 2018-6-20 09:06:22 | 显示全部楼层
如何操作SDRAM的自刷新命令而不影响正常读写操作
 楼主| 晓灰灰 发表于 2018-6-20 14:10:11 | 显示全部楼层
如何操作SDRAM的自刷新命令而不影响正常读写操作?
 楼主| 晓灰灰 发表于 2018-6-22 14:27:05 | 显示全部楼层
干货分享、、、、、、、、、、、、、、、、、
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-5-2 06:39 , Processed in 0.061493 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表