关于FPGA中的块RAM和分布式RAM

在Spartan-3系列FPGA中使用LUT构建分布式RAM http://xilinx.eetrend.com/tag/846?quicktabs_1=0


利用块RAM实现数据延迟的一些问题 http://bbs.eetop.cn/thread-431323-1-1.html


分布式RAM是如何产生的及其与Block RAM的区别

- 问 -
分布式和Block RAM的区别

- 答 -
CLB单元生成的distribute ram ,CLB是FPGA的基本单元,blockram也是基本单元,但分布ram要由CLB单元生成。由CLB生成分布式ram,消耗逻辑资源。而blockram则固定在fpga内,无论使用与否都存在于那里。当block ram不够用时可以用逻辑资源生成分布式ram。

- 问 -
分布式RAM是如何产生的

- 答 -
这里以Virtex4为例说明:一个CLB由4个Slice组成,这4个Slice又分SliceM和SliceL,其中M是Memory的首字母,L是Logic的首字母,比较SliceM和SliceL,他们的区别就是SliceM的查找表具有RAM和ROM的功能,而SliceL的则不具备。所以SliceM比SliceL多的功能就是做存储器和移位。这样就很清楚了:SliceM可实现DistributRAM,而Distribut RAM是由SliceM中的LUT实现。CLB的结构下所示:

                  Matric   -------SliceM(2)   SliceL(3)--------Y1
                  Switch   ------SliceM(0)   SliceL(1)--------Y0
                                              |
                                              |
                                 X0              X1
这里XNYM,X--列,N--列号,Y--行,M--行号,Xilinx FPGA内部结构是一种阵列结构。

- 问 -
请问SliceM除了可实现Distribut RAM之外还能实现什么功能?
SliceM实现Distribut RAM时使用SliceM中的SRL16存储单元么?


- 答 -
如果看SliceM的图,是看不到里面有专么这个SRL16的。其实SRL16就是一个基于查找表结构的移位寄存器。而SRL16以primitive形式存在而已。在userguide中,也画了SRLC16的图,它就是一个查找表。比较SliceM和SliceL,他们的区别就是SliceM的查找表具有RAM和ROM的功能,而SliceL的则不具备。所以SliceM比SliceL多的功能就是做存储器和移位。“SliceM实现DistributRAM时使用SliceM中的SRL16存储单元么?”  因为SRL16用的就是LUT,所以,如果这个LUT作为DistributeRAM使用了,则就不能再作为SRL16使用了。
  

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值