FPGA中Block RAM和分布式RAM的区别?分别适用的场景是什么?

FPGA中Block RAM和分布式RAM的区别?分别适用的场景是什么?

  • 1 Block RAM
  • 2 查找表存储器——分布式RAM
  • 3 嵌入式存储器的使用方法

FPGA芯片内有两种存储器资源:一种叫block ram,另一种是由LUT配置成的内部存储器(也就是分布式ram)。

1 Block RAM

Block ram由一定数量固定大小的存储块构成的,使用BLOCK RAM资源不占用额外的逻辑资源,并且速度快。但是使用的时候消耗的BLOCK RAM资源是其块大小的整数倍。如Xilinx公司的结构中每个BRAM有36Kbit的容量,既可以作为一个36Kbit的存储器使用,也可以拆分为两个独立的18Kbit存储器使用。反过来相邻两个BRAM可以结合起来实现72Kbit存储器,而且不消耗额外的逻辑资源。
FPGA中Block RAM和分布式RAM的区别?分别适用的场景是什么?_第1张图片

如图所示,每个Block RAM都有两套访问存储器所需的地址总线、数据总线及控制信号灯信号,因此其既可以作为单端口存储器,也可以作为双端口存储器。需要注意的时访问BRAM需要和时钟同步,异步访问不支持的。

2 查找表存储器——分布式RAM

只有成为SLICEM的逻辑块里的查找表才可以用做分布式RAM。
利用查找表为电路实现存储器,既可以实现芯片内部存储,又能提高资源利用率。**分布式RAM的特点是可以实现BRAM不能实现的异步访问。**不过使用分布式RAM实现大规模的存储器会占用大量的LUT,可用来实现逻辑的查找表就会减少。
因此建议仅在需要小规模存储器时,使用这种分布式RAM。

3 嵌入式存储器的使用方法

可以利用FPGA厂商提供的IP生成工具,或手动编写HDL程序。
FPGA内部众多的BRAM和分布式RAM可以并行访问,存储器访问的总带宽很大,在使用FPGA实现应用时,有效利用嵌入式存储器提供的大带宽,是实现高性能硬件的关键。
综上:
分布式RAM适用于:小规模存储器或者需异步访问的存储器。
Block RAM适用于其他场景。

你可能感兴趣的:(硬件逻辑)