双口ram

[RAM] FPGA的学习笔记——RAM

牧云@^-^@ 提交于 2019-12-03 10:59:22
1、RAM——随机存取存储器, 分为SRAM和DRAM。 SRAM:存和取得速度快,操作简单。然而,成本高,很难做到很大。FPGA的片内存储器,就是一种SRAM,用来存放程序,以及程序执行过程中,产生的中间数据、运算结果等; DRAM:与SRAM特点相反,但速度慢只是相对SRAM慢,其实也算是很快了,比如DDR3,DDR4; 2、Altern的RAM ip核,在生成时,可以选择单还是双口RAM,如果是单端口RAM,那么同一时间只能对同一个地址进行读or写;而如果是双口RAM,那么可以在同一时间读A地址, 写B地址; 3、 来源: https://www.cnblogs.com/zf007/p/11792267.html

单口RAM、双口RAM、FIFO

偶尔善良 提交于 2019-11-26 20:02:32
单口与双口的区别在于,单口只有一组数据线与地址线,因此读写不能同时进行。而双口有两组数据线与地址线,读写可同时进行。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的底部了,就再次变为零; 如果读地址寄存器追上写地址寄存器,就说明读空了,没数据可读了;