分布式RAM是如何产生的及其与Block RAM的区别
公司正在用Xilinx V5 330t和110,借这个机会好好学习一把。 上册25页列了那么多型号,那么多参数,记也记不住。只能退而求其次,把自己用的这个330t的参数写下来。 也算是有个交代了。 Vertex 5 330t : XC5VLX330T V5: 65nm 工艺, 6输入LUT LX: 针对高性能逻辑进行了优化 CLB: 240x108 = 25920 SLICE: CLBx2 = 51840 descret ram: ??? -> 3420kb <- ??? block ram: 648 x 18kb = DSP48E: rocket I/O: 24 I/O: 960 以上有疑问的是的分布式ram 应该是Slice x LUT/Slice x 2^6 其中 slice = 51840, LUT/Slice = 4 6是每个LUT的input数,V5为6输入LUT。 因此ram = 51840 x 4 x 64 b =12960 kb, 而不是25页上写的3420kb 只是我计算出来的1/4. 不知道我哪里计算错了。 ====================================================== |
分布式RAM是如何产生的及其与Block RAM的区别
- 问 - 分布式和Block RAM的区别 - 答 - CLB单元生成的distribute ram ,CLB是FPGA的基本单元,block ram也是基本单元,但分布ram要由CLB单元生成。由CLB生成分布式ram,消耗逻辑资源。而block ram则固定在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可实现Distribut RAM,而Distribut RAM是由SliceM中的LUT实现。CLB的结构下所示: 这里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存储单元么?” |