跳转到主要内容

XILINX BMG (Block Memory Generator)

joycha 提交于

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/zhoutaopower/article/details/105257499

1、BRAM 简介
XILINX 系列的 FPGA ,如果想要做一个 RAM,有两种方式:

1、使用逻辑资源组成分布式 RAM,即 Distributed RAM

2、使用 XILINX 专用的 Block RAM,即 BRAM

前者是由 CLB 的 SLICEM 的 LUT 组合而成,构成 RAM 后,可能分布在不同的地方,具有一定的延迟;

后者是 Block RAM 是内嵌专用的 RAM,是 XILINX 做进 FPGA 内的专用资源,具有更好的时序性能;

这里我们以 ZYNQ-7000 为例:

可以看到红色方框中,标识出了此款 FPGA 的 BRAM 资源,我们也可以了解到,一个 BRAM 资源大小为 36Kbits(注意,这里是 bits),红色方框的这款含有 140 个这样的 BRAM,也就是一共含有 36Kbits * 140 = 4.9Mbits 大小的 BRAM 资源;

在 XILINX 的官方文档上,介绍这部分的文档是:

pg058-blk-mem-gen.pdf

有兴趣的可以下载来看下;

针对 BRAM 资源的接口形式,主要分为两种:

Native:本地 BRAM

AXI4:与 AXI4 总线互联的 BRAM

这里更多的来了解一下 Native 类型的 BRAM,等到要用到 BRAM 挂到 AXI 上的时候,再来仔细分析 AXI Interface 的 BRAM;

较为新的 XILINX 介绍这部分的内容叫 BMG(Block Memory Generator)

2、Block Memory Generator Feature
2.1 Type
按照 BRAM 可以构成的器件类型来分,主要可以分为如下几种:

• Single-port RAM : 单口 RAM

• Simple Dual-port RAM:伪双口 RAM

• True Dual-port RAM:真双口 RAM

• Single-port ROM :单口 ROM

• Dual-port ROM:双口 ROM

2.1.0、Signals Descriptions
首先进行信号的描述,常用到信号含义如下表所示:

Signal Name Direction Description
clka Input Port A 的同步时钟信号
addra Input Port A 的地址信号
dina Input Port A 写操作时候的输入数据信号
douta Output Port A 读操作时候的输出数据信号
ena Input Port A 的使能信号,在读,写,Rst 的时候需要此信号
wea Input Port A 的写使能信号
rsta Input Port A 的复位信号
regcea Input Port A 的可选后级输出寄存器信号
clkb Input Port B 的同步时钟信号
addrb Input Port B 的地址信号
dinb Input Port B 写操作时候的输入数据信号
doutb Output Port B 读操作时候的输出数据信号
enb Input Port B 的使能信号,在读,写,Rst 的时候需要此信号
web Input Port B 的写使能信号
rstb Input Port B 的复位信号
regceb Input Port B  的可选后级输出寄存器信号
sbiterr Output Single-Bit Error 信号
dbiterr Output Double-Bit Error  信号
injectsbiterr Input Inject Single-Bit Error: Available only for Zynq-7000 and 7 series ECC configurations.
rdaddrecc Output Read Address for ECC Error output: Available only for Zynq-7000 and 7 series ECC configurations
eccpipece Input ECC Pipe Line Register Clock Enable: Available only for UltraScale architecture-based devices.
sleep Input 动态功耗调整: If sleep pin is High , the Block Memory Generator core is in power saving mode. Available only for UltraScale architecture-based devices