请问Block RAM的资源如何计算?

描述

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的简单双端口模式。

BRAM

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

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

BRAM

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

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

BRAM
BRAM

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



审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分