干货!FPGA内部资源介绍(4)BLOCK RAM

FPGA内部资源基础知识第四弹来啦!今天讲的是FPGA的基础知识BLOCK RAM,小伙伴们在学习FPGA时不仅需要具备动手实践能力,同时也需要具备一定的基础理论知识,快来看看今天学习的BLOCK RAM知识点吧~~

FPGA 设计中一般都少不了数据缓存,虽然FPGA 中的寄存器资源比起 CPLD来说可以算是相当丰富了,但是,如果想利用寄存器作为批量数据的缓存,那么对逻辑资源块的侵蚀还是很恐怖的(寄存器用来存储、查找表等用来实现地址,数据选择相关逻辑),而如果数据量不是特别大,采用片外的独立存储器芯片又显得有些“杀鸡用了宰牛刀”,利用率太低并且还需要编写额外的接口驱动逻辑。除此以外,在一个FPGA设计中,也许有很多地方都用到了数据缓存,而这些地方对缓存的需求都是同时的,那么不太可行也不太可能在片外挂几十个存储芯片来解决问题。因此,为了应对中、小规模的数据缓存问题,FPGA生产厂商相继为自己的FPGA芯片中引人了硬件的存储核,我们称之为BLOCK RAM。

由于BLOCK RAM不同于寄存器的硬件结构,使得实现同样的存储容量所消耗的资源要远比寄存器少得多。当然了,同一时刻一般只能操作 BLOCK RAM中一个地址的数据,而如果是用寄存器实现缓存,我们完全可以在同一时刻操作所有的寄存器。与逻辑资源块一样,BLOCK RAM资源也均匀分布于整个FPGA芯片中,当然在列的方向它们的排列也紧密一些,估计是为了便于拼凑起来形成更大的缓存。

有的FPGA中仅有一种容量的BLOCK RAM,而有的FPGA中会有若干种不同容量的 BLOCK RAM。 BLOCK RAM本身的配置也比较灵活,对于存储量一定的 BLOCK RAM 来说,几乎可以将它配置为任意位宽的形式(其实位宽一般都是2的整数次幂,只不过可以不使用多余的位宽罢了,上限大概为32bit,不同的芯片型号会有所不同),当然位宽不同的时候,单块 BLOCK RAM 的所能存伤的数据个数也会不同。

BLOCK RAM的应用范围非常之广,它可以被配置为同步、异步、单端口、双端口的RAM或FIFO,或者ROM。除此以外,它本身就是一个先天的查找表,对于一些普通LUT难以应付的大容量表格情况,使用 BLOCK RAM 可以很好解决。

成电少年学100天订单班火热开启!!!智库平台线上线下同步学习。“FPGA入门八节课”、“FPGA入门十工程”、“FPGA进阶五工程”等系列课程。课程从零基础开始讲授,每一节课带同学们做一个小实验,循序渐进的学习FPGA课程。目前成电少年学已经为众多企业输送FPGA高级人才,薪资远超同届毕业生52%,就业率达100%。

适用人群:

① 计划从事FPGA工程师相关的在校大学生或教师;

② 计划实现高薪阶梯跨越的在职人员以及跨行业的在职人员;

③ 对FPGA想要深入学习的FPGA工程师;

④ 想尝试毕业后在集成电路行业发展的大一、大二、大三、大四在校生以及在校研究生。

希望通过成电少年学的FPGA课程学习,你能:

① 掌握FPGA基础,培养出实践能力;

② 深入了解FPGA开发流程和技巧;

③ 实现高薪跨越,月薪1w+。

详情咨询:

陈老师:13219696129 (微信同步)

高老师:18935839030