1.Block RAM(BRAM)
Block ram 由一定数量固定大小的存储块构成的,使用 BLOCK RAM 资源不占用额外的逻辑资源,并且速度快。 但是使用的时候消耗的 BLOCK RAM 资源是其块大小的整数倍。如 Xilinx公司的结构中每个 BRAM 有 36Kbit 的容量,既可以作为一个 36Kbit 的存储器使用,也可以拆分为两个独立的 18Kbit 存储器使用。反过来相邻两个 BRAM 可以结合起来实现 72Kbit 存储器,而且不消耗额外的逻辑资源。
Block RAM 都有两套访问存储器所需的地址总线、数据总线及控制信号灯信号,因此其既可以作为单端口存储器,也可以作为双端口存储器。需要注意的时访问 BRAM 需要和时钟同步,异步访问不支持的。
2. 查找表存储器——分布式 RAM(DRAM)
只有成为 SLICEM 的逻辑块里的查找表才可以用做分布式 RAM。
利用查找表为电路实现存储器,既可以实现芯片内部存储,又能提高资源利用率。
**分布式RAM 的特点是可以实现 BRAM 不能实现的异步访问。
**不过使用分布式 RAM 实现大规模的存储器会占用大量的 LUT,可用来实现逻辑的查找表就会减少。 因此建议仅在需要小规模存储器时,使用这种分布式 RAM。
LUT:LUT指显示查找表(Look-Up-Table),本质上就是一个RAM。它把数据事先写入RAM后,每当输入一个信号就等于输入一个地址进行查表,找出地址对应的内容,然后输出。
引用b站大佬rong晔手册