《关于CLB,LUT,BLOCK RAM等的论述》由会员分享,可在线阅读,更多相关《关于CLB,LUT,BLOCK RAM等的论述(2页珍藏版)》请在金锄头文库上搜索。
1、分布式分布式 RAMRAM 是如何产生的及其与是如何产生的及其与 BlockBlock RAMRAM 的区别的区别- 问 -分布式和 Block RAM 的区别- 答 -CLB 单元生成的 distribute ram ,CLB 是 FPGA 的基本单元,block ram 也是基本单元,但分布 ram 要由 CLB 单元生成。由 CLB 生成分布式 ram,消耗逻辑资源。而 block ram 则固定在 fpga 内,无论使用与否都存在于那里。当 block ram 不够用时可以用逻辑资源生成分布式 ram。- 问 -分布式 RAM 是如何产生的?- 答 -这里以 Virtex4 为例说明:
2、一个 CLB 由 4 个 Slice 组成,这 4 个 Slice 又分 SliceM 和SliceL,其中 M 是 Memory 的首字母,L 是 Logic 的首字母,比较 SliceM 和 SliceL,他们的区别就是 SliceM 的查找表具有 RAM 和 ROM 的功能,而 SliceL 的则不具备。所以 SliceM比 SliceL 多的功能就是做存储器和移位。这样就很清楚了:SliceM 可实现 Distribut RAM,而 Distribut RAM 是由 SliceM 中的 LUT 实现。CLB 的结构下所示:Matric -SliceM(2) SliceL(3)-Y1Sw
3、itch - 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 实现 Distribut RAM 时使用 SliceM 中的 SRL16 存储单元么?”因为 SRL16 用的就是 LUT,所以,如果这个 LUT 作为 Distribute RAM 使用了,则就不能再作为 SRL16 使用了。