搜索
bottom↓
回复: 11

[换个问题] 什么是单口RAM ,双口RAM和FIFO?

[复制链接]

出0入0汤圆

发表于 2010-8-20 18:42:55 | 显示全部楼层 |阅读模式
哎说来惭愧 ....

始终对单口RAM,双口RAM,FIFO
充满着问题 ....

它们到底是如何运作和使用的?

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

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

出0入0汤圆

发表于 2010-8-20 20:48:11 | 显示全部楼层
单口只有一套数据 地址,双口有两套,FIFO没有地址。单口作用域外部SRAM一样,双口和FIFO可以做跨时钟域两个不相干数据传输的同步化处理。举个例子,ADC采集要通过均匀的时钟间隔向缓存存储空间写入数据,同时因为缓存不够大,需要向一个具有大容量,突发传输能力的存储器转移,但是这个存储器不能均匀的写(比如这个存储器是SDRAM,要送行列地址然后突发同步写入,但是在变换地址是是不能写的,还有刷新也不能写)不过它的平均写入速度高于ADC采样速度,通过FIFO就能处理了,数据位宽变换时用双口比较方便,你可以8位并行输入,32位并行输出,处理速度可以降低到1/4

出0入0汤圆

 楼主| 发表于 2010-8-20 21:01:39 | 显示全部楼层
( ⊙ o ⊙ )啊!思路清晰不少了!

但是工作原理上还有问题
追加问题


(原文件名:sp.jpg)  


(原文件名:dp.jpg)

这两张图是cyclone 手册裁图出来的!
无论是单端口还是双端口,我始终不明白时序图 ...

典型的ram, 假设,我向 地址0 写入 0xff,然后我可以从地址0 读出 0xff。
cyclone 手册的单端口ram,时序图为什么不同呢?还有它是怎样工作呢?

出0入0汤圆

发表于 2011-7-16 13:31:36 | 显示全部楼层
单口RAM ,双口RAM和FIFO

出0入0汤圆

发表于 2012-1-28 13:32:30 | 显示全部楼层
DSP读取到ADC均匀写入的数据后,需要用burst方式储存到外部存储空间,因此需要同时读和写,并且写的速度要高于读的速度。这就牵涉到跨时钟域的问题。用FIFO和DPRAM可以解决。

出0入0汤圆

发表于 2012-2-8 10:42:43 | 显示全部楼层
单口与双口的区别在于,单口只有一组数据线与地址线,因此读写不能同时进行。而双口有两组数据线与地址线,读写可同时进行。FIFO读写可同时进行,可以看作是双口。
    双口RAM分伪双口RAM(Xilinx称为Simple two-dual RAM)与双口RAM(Xilinx称为true two-dual RAM)。伪双口RAM,一个端口只读,另一个端口只写;而双口RAM两个端口都可以读写。
    FIFO也是一个端口只读,另一个端口只写。FIFO与伪双口RAM的区别在于,FIFO为先入先出,没有地址线,不能对存储单元寻址;而伪双口RAM两个端口都有地址线,可以对存储单元寻址。
    异步时钟域的缓存只要是双口器件都可以完成。但FIFO不需对地址进行控制,是最方便的。

出0入0汤圆

发表于 2014-8-14 11:22:36 | 显示全部楼层
本帖最后由 明泰明泰 于 2014-8-14 11:27 编辑
lan_lingshan 发表于 2012-2-8 10:42
单口与双口的区别在于,单口只有一组数据线与地址线,因此读写不能同时进行。而双口有两组数据线与地址线, ...


大神,对于FIFO的满和空的判断,我一直很疑惑。

本帖子中包含更多资源

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

x

出0入0汤圆

发表于 2014-8-14 11:30:24 | 显示全部楼层
lan_lingshan 发表于 2012-2-8 10:42
单口与双口的区别在于,单口只有一组数据线与地址线,因此读写不能同时进行。而双口有两组数据线与地址线, ...

如果一个FIFO的宽度是8,深度是8,那么是不是指针先读取宽度为8的数据,然后指针+1,在读取宽度为8的数据;同样写也是如此?

出0入0汤圆

发表于 2014-8-14 20:50:45 | 显示全部楼层
同步FIFO主要搞明白一下几点:
1,循环队列的概念和原理。
2,读写地址的增加。
3,读(写)地址是下一个要读(写)的地址。
4,空和满的判断条件,以及个数的支持。这需要另外设置一个计数器。
5,读和写的时序。尤其是读数据的处理。有一种模式ALTERA 叫做SHOW AHEAD ,XILINX 叫做FIRST WORD FIRST THOUGH  ,就是说第一个要读出的数据已经出现在输出数据线,读信号线充当一个确认读出的角色。

等有时间写一个完整的介绍,另外发一个帖子。彻底讲讲同步FIFO.

而异步的FIFO比同步FIFO复杂一些,主要是因为读写时钟不是一个,这就需要让一个时钟区域产生的数据延迟两个周期或者以上再出现在另外一个时钟域,并且核心是依赖一个读写端口时钟可以不同的双口RAM。

出0入4汤圆

发表于 2014-8-17 12:09:34 | 显示全部楼层
学习了,                       

出0入0汤圆

发表于 2014-9-3 10:58:17 | 显示全部楼层
单口RAM ,双口RAM和FIFO

出0入0汤圆

发表于 2014-9-3 11:01:13 | 显示全部楼层
把你的帖子题目贴到百度上去,就都明白了。。。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-27 02:51

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

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