FPGA | BRAM和DRAM

BRAM(Block RAM)

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

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

DRAM(查找表存储器——分布式 RAM)

只有成为 SliceM 的逻辑块里的查找表才可以用做分布式 RAM。利用查找表为电路实现存储器,既可以实现芯片内部存储,又能提高资源利用率。

分布式RAM 的特点是可以实现 BRAM 不能实现的异步访问。不过使用分布式 RAM 实现大规模的存储器会占用大量的 LUT,可用来实现逻辑的查找表就会减少。 因此建议仅在需要小规模存储器时,使用这种分布式 RAM。

区别

1.BRAM是使用FPGA中的整块双口RAM资源

2.DRAM是FPGA中的查找表(LUT)拼凑出来的,要占用逻辑资源。

3.物理上看,BRAM 是单纯的存储资源,但是要一块一块的用,不像DRAM 想要多少bit都可以。

4.DRAM可以是纯组合逻辑,即给出地址马上出数据,BRAM是有时钟的。

你可能感兴趣的:(农夫笔记,fpga开发)