跳转到主要内容
--## 电子创新网图库均出自电子创新网,版权归属电子创新网,欢迎其他网站、自媒体使用,使用时请注明“图片来自电子创新网图库”,不过本图库图片仅限于网络文章使用,不得用于其他用途,否则我们保留追诉侵权的权利。 ##--

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
judy 提交于

作者: 张海军 来源:傅里叶的猫

前言:本文章为FPGA问答系列,我们会定期整理FPGA交流群(包括其他FPGA博主的群)里面有价值的问题,并汇总成文章,一方面是希望能帮到不经常看群消息的小伙伴,另一方面也算是我们的技术积累。

Q:当使用ram时,width是960bit,depth是16bit,只有15Kb大小, 为什么占用了很多个BRAM?

A:首先要知道什么是BRAM,就是Block RAM,这些RAM就是分块的,可以当成36kb来使用,也可以当成18kb来使用,如果使用空间小于18kb,也会占用一整个18kb的BRAM。而且还要看使用的位宽和深度,这两个指标综合考虑来计算使用的BRAM的个数。

以7系列为例,每个36Kb BRAM也可以配置成深度×宽度为64K × 1(当与相邻的36KB块RAM级联时)、32K × 1、16K × 2、8K × 4、4K × 9、2K × 18、1K × 36或512 × 72的简单双端口模式。

1.png

超过上面这些原语中的宽度和深度时,都要增加一个新的BRAM。

再结合下面这个图,可以知道RAM18和RAM36的输入位宽分别可以是多少。

2.png

比如一个512*19的空间,刚好可以使用512x36的原语来覆盖,那就只会占用一个18k BRAM,如果是群友的960bitx16bit,那么需要960/72=13.333,因此需要13个256x72的RAM36,剩下的空间由1个RAM18即可满足。因此总共需要13个RAM36和1个RAM18.

当然,如果每次都这么计算一遍太麻烦,我们还是直接让工具给出结果是最简单的。

3.png

4.png

现在有了xpm,很多工程师在调用mem时,都喜欢直接用xpm,不用xci文件了,导致有些刚入行的工程师还不知道Block Memory Generator中还可以计算资源。

精彩推荐

2026英伟达GTC大会专题

CES 2026(国际消费类电子产品展览会)专题

第四届南渡江智慧医疗与康复产业高峰论坛

第十五届松山湖中国IC创新高峰论坛

第四届滴水湖中国RISC-V产业论坛

Recent comments

  • 1873774516_516738
  • 2460440665_516737
  • 1457585548_516736
  • 780289498_516735
  • 2283262460_516734