搜索
bottom↓
回复: 22

SDRAM读写速率

[复制链接]

出0入0汤圆

发表于 2013-7-30 10:37:57 | 显示全部楼层 |阅读模式

最近在写ADC采集程序,将ADC采集的数据存储至SDRAM中去,参考黑金的SDRAM程序写的。我使用的ADC是20Msps的,所以每个数据是50ns的占留时间。SDRAM使用的是100MHZ,这个是SDRAM的操作时钟频率,但是不知道读写一个数据SDRAM要花多少个时钟呢??应该这个就是SDRAM的读写速率吧。
我用modlesim做了一下仿真,使用的是黑金的程序,如图所示。从isRead有效到Done_Signal有效,读一个数据完毕,所花的时间是110ns.感觉时间太长了,这里面包含了发送行列地址,读操作等指令。。不知道我这个测量的方式是否正确??
我想这个问题应该蛮多人想知道吧,这数据采集里面,就是怕ADC采集速率和存储速率匹配不上,导致数据丢失的情况,希望知道的可以讲讲里面的知识。

本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2013-7-30 15:53:20 | 显示全部楼层
怎么没有人回复呢??哎

出0入0汤圆

发表于 2013-7-30 15:57:32 | 显示全部楼层
LZ你想多了吧,AD采样数据110ns存一个,用不着吧,一秒都快

出0入0汤圆

发表于 2013-7-30 16:11:40 | 显示全部楼层
这个情况需要用位宽换取速度,SDRAM使用16位宽或32位宽的可以满足要求,SDRAM随机读写速度很慢

出0入0汤圆

发表于 2013-7-30 16:13:30 | 显示全部楼层
随机读写是sdram的软肋  

出0入0汤圆

发表于 2013-7-30 16:18:55 | 显示全部楼层
FIFO搞到SDRAM1页深度时突发一次写,100MHz时钟,大约6us左右512个地址

出0入0汤圆

 楼主| 发表于 2013-7-30 22:02:19 | 显示全部楼层
NJ8888 发表于 2013-7-30 16:18
FIFO搞到SDRAM1页深度时突发一次写,100MHz时钟,大约6us左右512个地址

O(∩_∩)O哈哈~,你这个方法非常的好,很有远见。
你有verilog  SDRAM猝发读写的程序不??希望可以参考一下,谢谢。

出0入0汤圆

 楼主| 发表于 2013-7-30 22:03:20 | 显示全部楼层
skycomm 发表于 2013-7-30 16:13
随机读写是sdram的软肋

对呀,我也这么觉得,所有感觉好迷糊看到随机读写要花好多时间在配置操作指令,配置地址等操作上面。

出0入0汤圆

 楼主| 发表于 2013-7-30 22:05:33 | 显示全部楼层
eaglelpx 发表于 2013-7-30 15:57
LZ你想多了吧,AD采样数据110ns存一个,用不着吧,一秒都快

我采用的双通道的ADC,采样率是20MSPS的,而且A、B数据口复用到一个输出口了,所有时钟上升沿输出A口数据,下降沿输出B口数据,所有最后数据率更快了40MSPS了。

出0入0汤圆

发表于 2013-7-30 22:10:38 | 显示全部楼层
Julius20110 发表于 2013-7-30 22:02
O(∩_∩)O哈哈~,你这个方法非常的好,很有远见。
你有verilog  SDRAM猝发读写的程序不? ...

本坛我发过VHDL突发写的

出0入0汤圆

发表于 2013-8-1 08:46:06 | 显示全部楼层
NJ8888 发表于 2013-7-30 22:10
本坛我发过VHDL突发写的

学习了,我也试试

出0入0汤圆

发表于 2013-8-1 13:26:38 | 显示全部楼层
你这样只是单字节读写,速度很慢的,你这样没有把数据刷新算上去

出0入0汤圆

 楼主| 发表于 2013-8-1 23:27:47 | 显示全部楼层
弃风的云 发表于 2013-8-1 13:26
你这样只是单字节读写,速度很慢的,你这样没有把数据刷新算上去

O(∩_∩)O哈哈~  对每次,我今天看了下。

出0入0汤圆

 楼主| 发表于 2013-8-2 10:09:58 | 显示全部楼层
NJ8888 发表于 2013-7-30 16:18
FIFO搞到SDRAM1页深度时突发一次写,100MHz时钟,大约6us左右512个地址

今天我算了一下,如果是按页写的话,时钟100MHz,貌似写一页不要6us吧!!不知道是不是我算错了。
tRCD = 20ns  ,一页256个数据 就是用了256个时钟就可以写完了 ,所有是256*10ns=2560ns   加上写回的时间tWR = 15ns ,算成tWR = 20ns .这个里面没有算进去自刷新的时间。
所有总共是20ns + 2560ns + 20ns =2600ns 左右。请问这个我算的是否有纰漏呢??我刚看数据手册,可能有些没有注意到的。

出0入0汤圆

发表于 2013-8-2 12:12:58 | 显示全部楼层
Julius20110 发表于 2013-8-2 10:09
今天我算了一下,如果是按页写的话,时钟100MHz,貌似写一页不要6us吧!!不知道是不是我算错了。
tRCD =  ...

我的芯片一页512

出0入0汤圆

 楼主| 发表于 2013-8-2 13:40:39 | 显示全部楼层
NJ8888 发表于 2013-8-2 12:12
我的芯片一页512

哦,那就差不多6us了猝发一页的话。
我发现大虾对SDRAM好了解呀!我最近才看的SDRAM时序,导师安排我做FPGA控制ADC采集数据缓存入SDRAM里面,现在最主要的工作就是讲ADC的数据缓存入SDRAM里面去,书写SDRAM控制模块的程序。
感觉只有猝发读写,SDRAM的效率才能提高起来,不然single读写的话,好像效率好低。我理解猝读写下列3中情况。
1,猝发读写,长度=8,设置为自动充电,这样就每次的ACTIVE只能读写一次,下次读写就必须重新ACTIVE.
2,猝发读写,长度=8,设置手动充电,这样可以执行很多次brust 读和写操作,不用发送很多次ACTIVE如果在同一个ROW里面不同COL里面的话,如果在不同的ROW里面的话,还是要重新发送ACTIVE.这样连续brust读写的话,就不知道什么时候会遇到定时自动刷新了,比较难处理这个。
3,猝发页读写,这里也是不好处理什么时候遇到自动刷新,拍读写到页的某处,就遇到自动刷新了。


这个是我自己的理解,不知道哪里有纰漏,恳请指正一下。谢谢。

出0入0汤圆

发表于 2013-8-4 08:37:41 | 显示全部楼层
Julius20110 发表于 2013-8-2 13:40
哦,那就差不多6us了猝发一页的话。
我发现大虾对SDRAM好了解呀!我最近才看的SDRAM时序,导师安排我做FP ...

我当时写的代码,用125M时钟,不到5us完成512*16深度的突发,其中包含了刷新,就是每一次突发后都有一次刷新,虽然有点浪费带宽,但是评估过系统需求是200BYTEs/s,那种设计已经够了,带来好处是状态机简单

出0入0汤圆

发表于 2013-8-4 09:49:35 | 显示全部楼层
mark     一下

出0入0汤圆

 楼主| 发表于 2013-8-4 15:46:47 | 显示全部楼层
NJ8888 发表于 2013-8-4 08:37
我当时写的代码,用125M时钟,不到5us完成512*16深度的突发,其中包含了刷新,就是每一次突发后都有一次 ...

O(∩_∩)O哈哈~不错,你这种写法还是值得借鉴的。
我一直在纠结的是,就是突发读写的时候,定时刷新时刻到来了怎么办??
因为定时刷新必须先关闭所有的active行,然后才开始刷新的,我想在突发读写BL=1,2,4,8.的时候应该不要紧,因为突发一次读写最多就是100多ns,在定时刷新的时候,定的时间可以稍微短100多ns.这样就考虑到了定时刷新了。但是在页突发读写的时刻就不行了,毕竟一次页突发时间好长,达到几us.所有感觉你那种办法可行,就是你自己所说的蛮占带宽的。
我的想法是在突发页读写的时候,就一直判断是否刷新时间到了,到了就执行BURST TERM命令,中断页操作,这是记录下来读的页长度;然后执行自动刷新。自刷新完毕之后再执行页操作,从中断开始的地方开始读写。

出0入0汤圆

发表于 2013-8-4 16:34:16 | 显示全部楼层
Julius20110 发表于 2013-8-4 15:46
O(∩_∩)O哈哈~不错,你这种写法还是值得借鉴的。
我一直在纠结的是,就是突发读写的时候,定时刷新时刻 ...

没有必要按时刷的,只要你64ms把所有的都刷一遍就行,你可以集中刷

出0入0汤圆

发表于 2013-8-4 20:14:02 | 显示全部楼层
用的什么SDRAM芯片啊?

出0入0汤圆

 楼主| 发表于 2013-8-4 22:55:59 | 显示全部楼层
sunny_82 发表于 2013-8-4 20:14
用的什么SDRAM芯片啊?

三星的,HY57V561620FTP-H的。

出0入0汤圆

 楼主| 发表于 2013-8-4 23:02:18 | 显示全部楼层
NJ8888 发表于 2013-8-4 16:34
没有必要按时刷的,只要你64ms把所有的都刷一遍就行,你可以集中刷

不好意思,不是很懂你的意思。
集中刷是什么意思?怎么操作的呀!!技术手册上说的刷新是内部控制器产生地址的呀,不能自动控制吧。
定时自动刷,是不是每次就是刷一行呀?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-27 03:26

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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