FPGA设计中,存储器是必不可少的。FPGA中常见的存储器件有RAM以及FIFO,RAM又可细分为单端口RAM、伪双端口RAM和双端口RAM。之前对其基本概念与使用已经进行了介绍,现在只重点将他们进行比较:
目录
一、比较
单端口RAM:对应IP核中的Single-Port RAM,只有一组控制信号线、地址线和数据线,不能同时读写,某时刻只能在控制信号作用下作为数据输入或输出的一种;
双端口RAM:对应IP核中的Dual-Port RAM,有两组独立的控制信号线、地址线和数据线,两组之间互不影响,允许两个独立的系统同时对其进行随机性的访问。即共享式多端口存储器,可以同时读写;
伪双端口RAM:对应IP核中的Simple Dual-Port RAM,一个端口只读,一个端口只写;

注意:双端口RAM同时对同一地址进行读写时,会出现仲裁;
FIFO:先进先出数据缓冲器,也是一个端口只读,另一个端口只写。但是FIFO与伪双口RAM的不同,FIFO为先入先出,没有地址线,不能对存储单元寻址;而伪双口RAM两个端口都有地址线,可以对存储单元寻址。
二、FIFO与RAM联系:
如FIFO实现专题所述,FIFO既可以利用寄存器实现,也可以使用RAM实现;
实际上,规模较大的FIFO一般都是用RAM实现的(规模特别小的FIFO才会使用寄存器实现)。
三、应用场合:
FIFO常用于数据传输缓存,避免数据丢失,如跨时钟域的数据传输就需要用到异步FIF

本文对比了FPGA设计中常见的存储器件,包括单端口RAM、伪双端口RAM、双端口RAM和FIFO。单端口RAM只能读写之一,双端口RAM允许同时读写,伪双端口RAM一读一写,FIFO遵循先进先出原则。FIFO常用于数据传输缓存,RAM则用于暂存指令或中间数据。规模较大的FIFO通常采用RAM实现。
最低0.47元/天 解锁文章
1082

被折叠的 条评论
为什么被折叠?



