FPGA逻辑资源评估之BRAM(以Xilinx为例)

article/2025/10/9 9:53:31

        在FPGA逻辑设计时,需要参考所需逻辑资源对FPGA进行选型,其中一项就是对BRAM的评估,在这里以xilinx UltraSCALE+系列FPGA为例,对BRAM进行简单介绍。

        FPGA中RAM资源一般分为DRAM和BRAM两种,而Xilinx UltraSCALE+系列FPGA除了以上两种RAM之外,部分型号还包括UltraRAM。其中DRAM为Distributed RAM,是以FPGA中LUT(LUT in SLICEM)资源产生的,详细资料参考UG574:UltraScale ArchitectureConfigurable Logic Block User Guide;UltraRAM为一个时钟,两个端口(读写),同步读写,每个Block存储容量可达288Kb,一个时钟域可包含16个UltraRAM Blocks,而每个Block由4K x 7 、2 memory block组成,详细参考资料见UG573:UltraScale ArchitectureMemory Resources User Guide。

        本文主要对BRAM进行简单介绍,并给出BRAM资源评估的方法。BRAM的详细参考资料参考UG573:UltraScale ArchitectureMemory Resources User Guide。

        BRAM属于FPGA内嵌专用RAM,RAM块有较大的的存储空间,目前xilinx典型的BRAM有18Kbits和36Kbits。BRAM一定有时钟,DRAM可以是纯组合逻辑不用时钟,也可以增加一级reg使用时钟。BRAM读写端口可配,深度可配,多个BRAM block可组合级联,根据需要在允许范围内可以设置不同位宽不同深度(存储)的RAM块。

        例如:需要将一个文件先存入RAM中,在FPGA系统启动后读取RAM中的数据进行处理,coe文件中存储数据为10230个32bit位宽的数据,那么在IP核中RAM的设置位宽设置为32bit Width,Depth可设置为>10230,如果设置为10230,则RAM存储容量为32*10230=327360bits≈39.96KB,这也是数据的真实数据大小。配置完成后IP配置项显示使用36K BRAM共计10个Blocks,即10*36*1024=368640bits=45KB,这是由于一个Block块的大小为36Kb,根据IP配置的深度,所需RAM块的个数大于9小于10,故共需10个36K BRAM块。

        通常在配置BRAM时,可将设置深度比实际使用的大一些,留有一定裕量,一般根据情况灵活设置。

 


http://chatgpt.dhexx.cn/article/B33Vx3Pv.shtml

相关文章

xilinx BRAM实现FIFO

许多FPGA设计使用BRAM来实现FIFO。在Xilinx 7系列体系结构中,块RAM中的专用逻辑能够实现同步或双时钟(异步)FIFO。这消除了计数器、比较器或状态标志生成所需的额外CLB逻辑,并且每个FIFO仅使用一个块RAM资源。支持标准和首字跳转&…

【正点原子FPGA连载】 第十八章基于BRAM的PS和PL的数据交互 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第十八章基于BRA…

Xilinx 7系列 BRAM概述

Xilinx7系列FPGA中的块RAM可存储36 Kb的数据,可以配置为两个独立的18 Kb RAM或一个36 Kb RAM。在简单双端口模式下,每个36 Kb块RAM可以配置为64K x 1(与相邻的36 Kb块内存级联时)、32K x 1、16K x 2、8K x 4、4K x 9、2K x 18、1K…

ZYNQ—BRAM全双工PS_PL数据交互(开源)

本资源实现了:采用ZYNQ7010;vivado 2018.3;xilinx sdk;正点原子XCOM串口助手,PS与PL均读写操作。 1、PS写0-9地址 0-9数据,触发start给PL。 2、PL接收到触发后,做两次的打拍,再遍历一…

FPGA — BRAM 队列实践

使用软件: Vivado 开发板: EGO1采用Xilinx Artix-7系列XC7A35T-1CSG324C FPGA BRAM 队列实践 功能描述功能实现1. 添加BRAM的IP2. 数码管显示3. 时钟分频4. 按键消抖5. 顶层设计 结果遇到问题及解决仿真测试 功能描述 数码管3位显示数字,可以…

Vivado综合生成BRAM及与LUTRAM的区别

使用vivado中的BRAM可以通过例化Block Memory Generator这一ip并进行相关的设定。 另外可以通过直接编写符合BRAM规范的代码,借助综合工具直接将其综合为BRAM。这时需要通过(*ram_style"block"*)对array进行修饰。 下面给出一种看似可以综合为BRAM的示例…

Xilinx BRAM IP介绍

BRAM IP核介绍 BRAM简介BRAM类型三种读写模式写优先读优先No change 总线支持输出寄存 BRAM简介 BRAM,即Block RAM,是FPGA中一种重要的存储资源,另一种常见的存储资源是DRAM(Distributed RAM),Distributed RAM 经过综合工具综合&…

vivado中bram简单使用

bram设置为简单双口 建议取消勾选这个,这样读出来的数据是差一个时钟周期的 vivado中的bram,写的时候,写使能,写地址,写数据一起赋值 读的时候,读使能,读地址可以一起赋值,数据为…

使用VIVADO中的MIG控制DDR3(AXI接口)二——用AXI4读写BRAM测试

上篇文章主要讲了一些关于AXI的知识,有了这些理论,让我们进行一些简单的实验测试,加深对AXI协议的理解。本次实验使用的平台是VIVADO2019.1。 1. 首先创建一个工程,名称和路径自己决定。 2.然后按照图中所示,点击新建和…

URAM和BRAM有什么区别

无论是7系列FPGA、UltraScale还是UltraScale Plus系列FPGA,都包含Block RAM(BRAM),但只有UltraScale Plus芯片有UltraRAM也就是我们所说的URAM。BRAM和URAM都是重要的片上存储资源,但两者还是有些显著的区别。 容量 B…

【FPGA】AXI4-Lite总线读写BRAM

博主参考和学习的博客 AXI协议基础知识 。这篇博客比较详细地介绍了AXI总线,并且罗列了所有的通道和端口,写代码的时候可以方便地进行查表。AXI总线,AXI_BRAM读写仿真测试 。 这篇文章为代码的书写提供大致的思路,比如状态机和时…

如何对bram/ram进行初始化赋值呢?

1、首先对于常规的情况,即加载.coe文件的方式实现初始化(与rom相同) 点击load initial file, 在右侧可以直接添加.coe文件,或者选择edit进行手动编辑(数据量不大的情况下可选,但是不推荐)&#…

vivado中bram的种类与使用

vivado中bram的种类与使用 vivado中bram的分类单端口ram初始化工作时序仿真验证 简化的双端口RAM初始化端口定义仿真结果 双端口RAM初始化端口定义功能仿真单端口读数双端口读数双端口一读一写双端口写数据 vivado中bram的分类 在vivado中打开IP catalog,在其中搜索…

BRAM的使用

使用Block Memory Generator IP核,PL读取BRAM数据 软件环境:Vivado 2018.3 IP核:Block Memory Generator 8.4(Rev.2) 1、点击IP Catalog 2、搜索”Block Memory Generator“双击选择RAMs & ROMs & BRAM下的IP核 3、配置IP核为Si…

FPGA — BRAM学习笔记—读写操作

使用软件: Vivado 开发板: EGO1采用Xilinx Artix-7系列XC7A35T-1CSG324C FPGA BRAM笔记 BRAM介绍同步双端口BRAMBRAM读写操作(1)读操作(2)写操作(3)写模式写优先模式读优先模式不变模式 双端口块内存接口BRAM IP的使用及仿真验证IP核使用coe文件将IP核添…

FPGA从入门到精通(8)-BRAM

所使用EDA软件:VIVADO2018.3 FPGA型号:xc7a35tcsg325-2 很久没写了,随便写一篇BRAM的吧。说到BRAM ,很多人都喜欢拿它来DRAM比较 ,两者都有啥优缺点,其实我也拿不准。不过一般来说,存储较大的数…

Xilinx系列学习(一) BRAM的使用,并用PL读取BRAM数据

Xilinx系列学习(一) BRAM的使用,并用PL读取BRAM数据 一,Xilinx BRAM介绍二,BRAM对应的IP核调用和使用1,BRAM对应的IP核介绍2,BMG例化IP核的调用一,Xilinx BRAM介绍 BRAM 就是Block Memory,是Zynq的PL端的存储RAM单元。可以利用BRAM,在PS和PL之间进行数据的交换。Zyn…

FPGA设计中BRAM(Block RAMs)资源的使用(综合为BRAM)

FPGA设计中BRAM(Block RAMs)资源的使用 RAM分为BRAM(Block RAMs)和DRAM(Distributed RAM),即块RAM与分布式RAM,这两个差别在于BRAM是FPGA上固有的一些存储资源(针对不同型…

web测试与app测试的区别

目录 前言 首先从系统架构来看 专项测试 安装、卸载、更新: 界面操作: 前言 仅仅从功能测试的层面上来讲的话,在流程和功能测试上是没有区别的。那么区别在哪里呢? 我个人觉得就是由于载体不一样,所以系统测试和…

APP测试与WEB测试

APP测试与WEB测试的区别(异同) 相同点: 功能测试层面而言:APP测试和web测试都是使用相同的测试用例测试方法(都用到等价类划分、边界值分析、正常和异常情况去考虑测试点) UI界面测试:都需要按照原型图和设计图检查UI…