单口RAM、双口RAM、FIFO

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

 

摘录:

根据我的设计经验,其实FIFO的核心还是一片RAM。只不过把RAM的操作封装了一下,添加了两个指针,也就是两个地址寄存器,一个写地址寄存器,一个读地址寄存器。 当FIFO初始化时,读地址寄存器和写地址寄存器皆为零; 当FIFO写一个数据时,把数据写入当前地址寄存器指向的RAM地址,然后写地址寄存器加1;如果加到RAM的底部了,就再次变为零; 当FIFO读数据时,把读地址寄存器的数据读出来,然后读地址寄存器加1;如果读到RAM的底部了,就再次变为零; 如果读地址寄存器追上写地址寄存器,就说明读空了,没数据可读了; 如果写地址寄存器的值又追上了读地址寄存器,就说明写满了,没法写了; 大概就是这样了。

 

FIFO就是一个双口BRAM,外部加上一些控制电路构成的,要想充分理解FIFO,最好先了解一下双口BRAM

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值