Xilinx-7系列FPGA架构学习 --- CLB - Go语言中文社区

Xilinx-7系列FPGA架构学习 --- CLB


Achievement provides the only real pleasure in life.

有所成就是人生唯一的真正的樂趣。

xilinx7系列FPGA主要包括:Spartan®-7/Artix®-7/Kintex®-7/Virtex®-7。其性能/密度/价格也随着系列的不同而提升。其中以Virtex-7有着极高的系统性能和资源。本篇主要介绍其组成的基本单元configurable logic blocks(CLBs)。通常来说,我们不需要关心或参与逻辑综合过程CLBs资源的分配。但是如果遇到了性能/时序挑战的时候,就需要重新审视设计,掌握每一个可利用的资源。比如distributed RAMs和Block RAMs互换(在可替换的前提下)、DSPs与LUT设计等。同时也有助于掌握更深层次的设计,设计出更加合理的HDL代码,和XDC约束文件。

本文主要参考:xilinx官方文档UG474《7 Series FPGAs Configurable Logic Block》和White Paper《Xilinx 7 Series FPGAs:The Logical Advantage》。


CLBs是实现时序逻辑组合逻辑电路的主要逻辑单元。一个CLB由两个slice组成,而每个slice由4个6输入LUT、8个FF、复用器和算术进位单元组成。同时SLICE有区分为二:SLICEL和SLICEM(没有看到缩写L/M全程,个人认为是Logic和Multiple缩写,从下面定义可以看出)。大约2/3的是SLICEL(只能用于logic),剩下的是SLICEM(还可以用于distributed RAMs/SRLs32/SRLs16)。每个CLBs是通过Switch Matrix routing,并不是直接互联。注意到一句话:Four flip-flops per slice (one per LUT) can optionally be configured as latches. In that case, the remaining four flip-flops in that slice must remain unused.每个slice中的4个FF可以做锁存器,但是剩下的4个FF不能够再使用,也就是说有50%的资源浪费。这也就是为什么教科书上说,尽量避免latchs使用,除了时序问题之外,还有资源浪费。从芯片资源手册也可以看出,以kintex-7为例:


Slices = SliceL + SliceM;SliceL / SliceM = 2;Slices / LUTs = 4;FF / Slices = 8。

两个slice分别位于CLB的左列底部和右列顶部。这两个slice不是直接互联,而是以列为单位,通过一个独立的进位链(Cout&&Cin)

接。如下图所示:

通过以上的分析,每个CLBs具体的资源配置如下:


注意:如前面所述,只有SLICEM可以配置成distributed RAMs和SRLs。

下面文章,将会详细分析,每个具体的elements的组成、功能细节以及应用。


版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/nearcsy/article/details/80418962
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-13 16:45:17
  • 阅读 ( 2111 )
  • 分类:架构

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢