宽禁带半导体 Quartz 细胞因子 NTFS权限 mysql安装 npm安装 flask highcharts mono 建造师报考条件 vue全局组件 大数据驾驶舱 ipex接口 spark大数据处理技术 arraylist删除指定元素 字符串中包含某个字符串 ubuntu显示隐藏文件夹 汇编语言clr java高级特性 svn安装后右键不显示 range函数python python类 python高级 python开发工具 python中文 python中time java实战 java的继承 java接口文档 java函数式接口 学习java基础 java连接sql数据库 java定义字符串 java网页 一键刷入recovery 网络适配器驱动 乱码查看器 万能低格工具 getelementbyid js文件上传
当前位置: 首页 > 学习教程  > 编程语言

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

2021/1/28 23:58:32 文章标签:

如何操作SDRAM的自刷新命令而不影响正常读写操作? 今天和大侠简单聊一聊如何操作SDRAM的自刷新命令而不影响正常读写操作,话不多说,上货。 在做SDRAM设计中,大家都有所了解,SDRAM从开始工作,一直伴随着64…

 

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

今天和大侠简单聊一聊如何操作SDRAM的自刷新命令而不影响正常读写操作,话不多说,上货。

在做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内一遍,合理设置自刷新周期计时器,考虑读写一个周期所花的时间,使得在发出自刷新信号的时候,等待本次正在进行的读写周期完成后,再写入自刷新命令。

以上内容是我如何对自刷新操作和读写操作进行合理安排的一种解决方案,后来细想其实可以更加的合理,微调后的方案:15 us的定时计数器不断地进行,没计到15us发出刷新请求信号,同时计数器重新计数(上个方案是等到正式发出刷新命令以后才开始重新计数),本次微调的技巧应该更加理想些(因为读写周期即使是全页的,也就是10us以内完全在15us的范围以内)。

 

【QQ交流群】

群号:173560979,进群暗语:FPGA技术江湖粉丝。

多年的FPGA企业开发经验,各种通俗易懂的学习资料以及学习方法,浓厚的交流学习氛围,QQ群目前已有1000多名志同道合的小伙伴,无广告纯净模式,给技术交流一片净土,从初学小白到行业精英业界大佬等,从军工领域到民用企业等,从通信、图像处理到人工智能等各个方向应有尽有。

 

【微信交流群】

现微信交流群已建立08群,人数已达数千人,欢迎关注“FPGA技术江湖”微信公众号,可获取进群方式。

后续会持续更新,带来Vivado、 ISE、Quartus II 、candence等安装相关设计教程,学习资源、项目资源、好文推荐等,希望大侠持续关注。

江湖偌大,继续闯荡,愿大侠一切安好,有缘再见!


本文链接: http://www.dtmao.cc/news_show_650351.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?