SliceM与SliceL

来源:互联网 发布:德州理工大学 知乎 编辑:程序博客网 时间:2024/05/17 08:16

李虎:

CLB中分为SliceM和SliceL。他们其中都有LUT。

SliceM(M是指Memory)和SliceL(L是指Logic)的区别是,SliceM中含有能够把LUT资源重新整合为Ram和Rom的逻辑。这就是所谓的Distributed Ram。

 

 

 

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

- -
分布式和Block RAM的区别

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

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

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

                         Matric    -------SliceM
2    SliceL3--------Y1
                         Switch   ------ SliceM
0    SliceL1--------Y0
                                                |                    |
                                                |                    |
                                               X0                   X1
这里XNYMX--列,N--列号,Y--行,M--行号,Xilinx FPGA内部结构是一种阵列结构。

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

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

 

原创粉丝点击