CLB的基本组成单元为LC (逻辑单元) 。图中列出了两个LC,每个LC包括两个4输入的函数发生器、两个进位逻辑和两个存储单元。
a. LUT与函数发生器。函数发生器被用来实现一个4输入的查找表,每个查找表可提供一个16 ×1bit的同步RAM,或形成一个可以存储随机的突发的快速数据的16bit的移位寄存器;同一个LC中的两个部分可组合成一个16 ×2 - bit或32 × 1 - bit的同步RAM,或者组成一个16 x 1 - bit的双端口的同步RAM。
b. 存储单元。它可以被配置成D边沿触发器或者电平敏感的琐存器,输入可以是LUT的输出也可是直接来自于LC的输入信号,旁路掉函数发生器。
c. 快速进位逻辑。为高速算术函数的运算提供了快速运算进位功能,它支持两个独立的进位链。
3) RAM块
Virtex系列中包含64个CLB的芯片中每列有16个RAM块,所以共有32个RAM块。每一个RAM块都是完全同步的双端口的4096 - bit的。每个端口都有独立的配置信号,且每个端口的数据宽度都是各自独立配置的。
4)可编程的布线阵列
包括以下几种布线。
a. 局部布线: Virtex系列的局部布线有三种方式的连接,即: LUT、触发器、常规布线矩阵(GRM)之间的连接; CLB内部把同一个CLB的输出反馈回来作为自身LUT输入的连接,这种连接提供了最小的延时;在相邻的CLB间提供水平连接,这种连接消除了信号在GRM中的延迟。这三种方式如图5所示。
b. 常规布线: Virtex系列中在CLB的通道中,水平与竖直方向各有24根单长线连入GRM中,通过GRM中的可编程开关实现是否互连,以实现CLB 间的互连;四个方向各有12条带缓冲的16进制线每跨过6个CLB从一个GRM汇入下一下GRM;每个CLB分别在水平与竖直方向相邻着12根带缓冲的双向的长线,长线的长度与CLB区域的长或宽相同。
c. IO布线:这是一种在芯片的周围附加的布线资源,它提供了CLB 阵列与IOB 的交换界面,称为多功能环,同时,除了能把IOB与CLB连接起来之外,还可以实现引腿之间信号的交换。
d. 直接连线:一些信号需要专门的连线来达到最优性能的实现,直接连线便实现了这一目的,在Virtex芯片中,有两类这样的信号:在两个独立网络中,每个CLB传输进位信号给相邻的CLB;水平布线资源在一个通道内提供4条三态总线来与CLB交换信号。
e. 全局布线:它为时钟及其实遍及整个芯片的多扇出信号提供分配通路。Virtex包括两类全局布线资源:主全局布线与次全局布线。主全局布线由4个以最小摆率来分配高扇出时钟信号的有专门输入引脚的全局网络构成。次全局布线包括24 条主干线, 12 条穿过芯片上端, 12条通过芯片下端,通过这些线,每一个CLB列中可以有12条信号分布式地通过这列中的12条长线。
5)时钟分配
通过主全局布线Virtex在整个芯片上提供高速、低摆率的时钟分配。典型的时钟分配如图6所示。它提供了4个全局时钟缓冲器, 4个专门的时钟焊盘分别与每一个全局时钟缓冲器相匹配,全局缓冲的输入可以来自于这些焊盘,也可以来自于常规布线。