在FPGA中block ram是很常见的硬核资源,合理的利用这些硬件资源一定程度上可以优化整个设计,节约资源利用率,充分开发FPGA芯片中的潜在价值,本文根据前人总结的一些用法,结合安路科技FPGA做简单总结,说明基本原理。
用法一:使用双口模式拆分成2个小容量的BRAM
基本原理如下:
· 以1K*9bit双端口配置模式为例,一个bram9k,可以当作两个512*9k rom
· 将A端口的地址最高位固定接0,B端口的地址最高位固定接1,则通过A端口只能访问0~511的地址空间,通过B端口只能访问512~1023地址空间,互不冲突,相当于两个小容量的rom
用法二:用作并行数据的多周期延时
· 将bram例化成简单双端口模式,并将写端口固定使能为写,读端口固定使能为读。
· 将ram模式配置成 “读优先模式”,每次在写某个地址之前会先把该地址的数据输出
· 用一个模长为N(N=4)的计数器,反复向ram中写数据,会得到一个延时为N+1的输出数据
用法三:用作高速大规模计数器
基本原理如下:
· 以9Kbit bram为例,设置成双端口,1k*9bit模式
· A端口doa[7:0]是低8bit 计数器输出,doa[8]是进位信号,给到B端口的使能
· B端口dob[7:0]是高8bit计数器输出。
· 由于B端口数据有一个周期延时,将A端口数据延时一个周期之后与B端口构成16bit计数器
· 也即一个9Kbit bram可以构造成一个16bit的计数器
· 设计原型是两个8bit的计数器级联构造16bit计数
· rom初始化文件
审核编辑:符乾江
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
相关推荐
希望TI庄家帮我解决一下RLD block、Lead-off detection的作用、用法的疑惑
发表于 01-13 06:43
在现代计算机系统中,随机存取存储器(RAM)是至关重要的组件之一。它负责存储当前正在使用的程序和数据,以便CPU可以快速访问。随着技术的发展,RAM的速度和容量都有了显著的提升,但如何准确地检测
发表于 11-11 09:51
•999次阅读
什么是RAM内存? RAM(Random Access Memory,随机存取存储器)是电脑中的一种易失性存储器,它用于存储电脑运行时的数据和程序。与硬盘等非易失性存储器不同,RAM在断电后会丢失
发表于 11-11 09:38
•3532次阅读
自然语言文本。在自然语言处理中,列举法和描述法是两种常见的方法。 列举法 列举法是一种基于规则的方法,它通过列举所有可能的情况来解决问题。在
发表于 07-03 14:13
•1236次阅读
将一组8位的256个数据从RAM中读取出来,然后写入到eeprom中,modesim仿真显示一直写入失败,eeprom的通讯使用的是i2c。请问这是什么原因呢?找了好久都找不出来。程序和仿真见图。
发表于 06-25 16:15
在工业自动化控制系统中,PLC(Programmable Logic Controller,可编程逻辑控制器)扮演着至关重要的角色。PLC通过执行各种指令来控制设备的运行,其中SFTL(Shift
发表于 06-15 17:48
•3723次阅读
进行处理其给出结果的延时是两行图像的时间。还有这个算子法和现在卷积神经网络中最前面的卷积层运算是类似的。
FPGA中的Block Ram是重要和稀缺资源,能缓存的图像数据行数是有限
发表于 06-12 16:26
功能寄存器。
个人理解,当结构体定义的时候编译器给它分配空间,且这个为全局变量一直占用RAM空间,即使初始化后也一直占用空间,编译器也不会回收其空间。到最后其实有一份硬件特殊功能寄存器的镜像一直占用
发表于 05-17 12:24
当使用ram时,width是960bit,depth是16bit,只有15Kb大小, 为什么占用了很多个BRAM?
发表于 05-06 14:12
•618次阅读
的因素,集成了我们上面所列举的目前最先进的硬核,但价格却比Virtex Ultrascale+便宜很多。当然,目前Achronix的FPGA中的逻辑资源数量相对Virtex Ultrascale+要少一些,I/O数量也自然少一些
发表于 04-24 15:09
FPGA(现场可编程门阵列)的封装方式多种多样,以下列举了一些常见的封装技术。
发表于 03-26 15:24
•2337次阅读
FPGA双口RAM的使用主要涉及配置和使用双端口RAM模块。双端口RAM的特点是有两组独立的端口,可以对同一存储块进行读写操作,从而实现并行访问。
发表于 03-15 13:58
•1150次阅读
在IC设计中,我们有时会使用深度很大,位宽很小的ram。例如深度为1024,位宽为4bit的ram。
发表于 03-04 15:08
•2215次阅读
逻辑功能。
存储块(Block RAM):用于数据缓存和存储。
数字信号处理模块(DSP Blocks):用于高效地执行数字信号处理任务。
输入/输出模块(I/O Blocks):用于连接外部设备或其他
发表于 02-22 09:52
近几年,FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)这个名词在科技领域中的出现频率越来越高。作为一种特殊的芯片,FPGA在云计算、人工智能、大数据等
发表于 02-21 16:10
评论