赛灵思
直播中

张览秀

7年用户 1161经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

XILINX BMG介绍

  1、BRAM 简介
  2、Block Memory Generator Feature
  2.1 Type
  2.1.0、Signals Descriptions
  2.1.1、Single-port RAM
  2.1.2、Simple Dual-port RAM
  2.1.3、True Dual-port RAM
  2.1.4、Single-port ROM
  2.1.5、Dual-port ROM
  2.2、Selectable Memory Algorithm
  2.3、Configurable Width and Depth
  2.4、Selectable Operating Mode per Port
  2.4.1、Write First Mode
  2.4.2、Read First Mode
  2.4.3、No Change Mode
  2.5、Selectable Port Aspect Ratios
  2.6、Optional Byte-Write Enable
  2.7、Collisions
  2.7.1、Write-Write Collision
  2.7、Optional Output Registers

回帖(7)

李童

2021-2-25 11:32:00
  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)
举报

袁喆

2021-2-25 11:32:32
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 NameDirectionDescriptionclkaInputPort A 的同步时钟信号addraInputPort A 的地址信号dinaInputPort A 写操作时候的输入数据信号doutaOutputPort A 读操作时候的输出数据信号enaInputPort A 的使能信号,在读,写,Rst 的时候需要此信号weaInputPort A 的写使能信号rstaInputPort A 的复位信号regceaInputPort A 的可选后级输出寄存器信号clkbInputPort B 的同步时钟信号addrbInputPort B 的地址信号dinbInputPort B 写操作时候的输入数据信号doutbOutputPort B 读操作时候的输出数据信号enbInputPort B 的使能信号,在读,写,Rst 的时候需要此信号webInputPort B 的写使能信号rstbInputPort B 的复位信号regcebInputPort B  的可选后级输出寄存器信号***iterrOutputSingle-Bit Error 信号dbiterrOutputDouble-Bit Error  信号inject***iterrInputInject Single-Bit Error: Available only for Zynq-7000 and 7 series ECC configurations.rdaddreccOutputRead Address for ECC Error output: Available only for Zynq-7000 and 7 series ECC configurationseccpipeceInputECC Pipe Line Register Clock Enable: Available only for UltraScale architecture-based devices.sleepInput动态功耗调整: If sleep pin is High , the Block Memory Generator core is in power saving mode. Available only for UltraScale architecture-based devices2.1.1、Single-port RAM

XILINX 官方的 pg058 部分描述了 Single-port RAM 的典型应用,可用于处理器暂存数据的 RAM,或者作为查找表等;它的图解如下所示,斜杠的信号为可选信号,其余的是必选信号;

CLKA 为输入的时钟信号,时钟上升沿对数据进行写入/读出
DINA 为写入的数据总线
DOUTA 为读出的数据总线
ADDRA 为地址总线
ENA 为使能端,当 ENA 为 1 的时候,可进行读写操作,ENA 为 0 的时候,无法进行读写
WEA 为写使能,当 ENA 为 1 同时 WEA 为 0 的时候,为读操作;当 ENA 和 WEA 同时为 1 的时候,为写操作;
由于只有一组地址总线,故,单口的 RAM 是无法同时进行读写操作的,只能读、写分开进行;
举报

马聪

2021-2-25 11:32:47
  2.1.2、Simple Dual-port RAM
  XILINX 官方的 pg058 部分描述了 Simple Dual-port RAM 的典型应用:Content addressable memories, FIFOs
  它的图解如下所示:
  
  与单口 RAM 不同的是,伪双口 RAM 输入有两路时钟 : CLKA/CLKB ,独立的两组地址信号 ADDRA/ADDRB,Port A 提供 DINA 写数据总线,作为数据写入的入口;Port B 仅仅提供数据读的功能,读出的数据为 DOUTB;
  所以伪双口 RAM 能够提供同时读写 RAM 的功能
  2.1.3、True Dual-port RAM
  XILINX 官方的 pg058 部分描述了 True Dual-port RAM 的典型应用:多处理器存储方案,Multi-processor storage
  它的图解如下所示:
  
  真双口 RAM 提供了独立的 Port A 和 Port B 的读写功能,既可以同时处在读,也可以同时写,也可以一个读一个写;
  2.1.4、Single-port ROM
  BRAM 也可以做成 ROM,典型应用是:Program code storage, initialization ROM,如下图所示
  
  与 Single-port RAM 几乎相同,唯一不同的是,没有 DINA 信号,因为是 ROM,所有不提供写入;
  2.1.5、Dual-port ROM
  BRAM 也可以做成 ROM,典型应用是:Single ROM shared between two processors/systems
  
  双口的 ROM,提供 Port A 和 Port B 两路读;
举报

刘满贵

2021-2-25 11:33:07
  2.2、Selectable Memory Algorithm
  使用 XILINX 的 BMG 生成上述类型的 RAM/ROM 的时候,有一个可选项叫做生成的算法,这里有三种可选的算法:
  Minimum Area Algorithm : 面积最优
  Low Power Algorithm:功耗最低
  Fixed Primitive Algorithm:固定原语
  2.3、Configurable Width and Depth
  在使用 BMG 生成 RAM 的时候,位宽支持配置从 1 bits ~ 4608 bits,深度支持大于等于 2,具体最大能够配置出多少 RAM,需要查看当前的器件手册中包含的 BRAM 的个数;
举报

更多回帖

发帖
×
20
完善资料,
赚取积分