可配置逻辑块CLB
扫描二维码
随时随地手机看文章
可配置逻辑块由4个相互连接的Slice和附加逻辑构成,用于实现组合逻辑和时序逻辑。其拓扑结构如图1所示,每一对Slice分布在同一列并共有一条独立的进位链。
图1 CLB拓扑结构
用于组成同一个CLB的4个Slice共用以下两个函数发生器、两个存储单元、多层函数复用器、进位逻辑和算术逻辑,如图2所示。左侧的Slice通常用SliceM表示;右侧的Slice对通常用SliceL表示,它们通过这些单元实现逻辑、算术和ROM的功能。除此之外,SliceM还可以用做两种特殊的功能,即分布式RAM和16bit移位寄存器,分别用于数据存储和数据移位操作。同时通过这个简图可以清楚了解除了SliceM所特有的功能外,在其他Slice中也同样存在的各个单元和相互之间的连接关系。
基于RAM的函数发生器,也就是通常所说的查找表是用于实现逻辑功能的主要部件,而且SliceM中的分布式RAM和移位寄存器就是用它来实现的,分别用字母“G”和“F”来表示上一部分和下一部分的查找表。
图2 SliceM简图
存储单元可以通过编程用做D触发器或锁存器,可以提供数据与时钟同步的功能。上一部分的存储单元称为“FFY”,下一部分的存储单元称为“FFX”。
多层函数复用器结构(Wide-function multiplexers)通过高效地组合相关查找表来实现复杂的逻辑功能,每个Slice拥有两个组这类的复用器,中间的F5MUX和FiMUX分别位于Slice的上下两个部分。
进位逻辑由进位链和专用的算术逻辑门组成,用于完成快速高效的数学运算。进位链由5个复用器控制,分别为CYINIT、CY0F、CYMUXF、CY0G和CYMUXG。
算术逻辑包括1个异或门(XORG)、1个专用的乘累加(MULT-AND),异或门可以使1个Slice实现两位全加操作,专用的乘累加用于提高乘法器逻辑的速度和效率。
Spartan-3的CLB具有大量的专用多路复用器,这些专用复用器可以提高多层复用结构和多输入函数的性能。比如,用一个32:1的复用器可以在同一级逻辑层实现一个79输入的布尔逻辑函数。这些复用逻辑包括4个F5MUX、两个FGMUX、1个FTMUX和1个FSMUX四种类型的复用结构(器)。F5MUX表示可以用来建立任何5输入的函数,以此类推,FSMUX可以用来创建任何8输入的函数。多路复用结构如图3所示,图中MUXF5复用了两个基本的LUT,最大可以实现一个9输入函数:MUXF6复用两个MUXF5,相当于4个LUT被复用,最大可以实现一个19输入函数;MUXF7复用两个MUXF6,相当于8个LUT被复用,最大可以实现一个39输入函数;而MUXF8复用两个MUXF7,相当于两个基本的CLB单元(相邻的)被复用,最大可以实现一个79输入函数。
图3 Spartan-3的多路复用结构
从图中还可以看出专用复用器有个很明显的优势,就是有专用的布线资源来连接不同级别的复用器。虽然在同一个CLB中每个复用器都被设计成只有一个输出端口,并且输出都只被回连到CLB的输入端。但是这些互连所用的布线资源都是0延时的,因此可以把同一个CLB中的所有复用器看做是一个串联关系。
F5MUX复用器的输出连到一个FiMUX的输入端,FiMUX的输出被连到同一个CLB中上一层的其他FiMUX;而FTMUX的输出在需要的情况下还可以连接另一个CLB中。
概括起来,在Spartan-3、Spartan-3E、Spartan-3A和Spartan-3AN系列的每个基本的CLB单元是由4个Slice、两个三态缓冲器TBUF构成,其中包含8个查找表LUT、8个可编程触发器、8个“乘累加”逻辑门和两个算术进位链。可以在一个CLB中实现64位的分布式RAM或64位的基于查找表的移位寰存器(SRL16),并且提供丰富的多路复用结构和数据通道,从而保证内部互连的特性。
来源:ks990次