购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 可配置逻辑块

可配置的逻辑块(Configurable Logic Block,CLB)是主要的逻辑资源,用于实现时序和组合逻辑电路。

1.2.1 可配置逻辑块的特点

UltraScale结构的CLB提供了高性能和低功耗的可编程逻辑,每个CLB连接到一个开关矩阵,用于访问通用的布线资源。一个CLB包含一个切片(Slice),每个切片提供8个6输入的查找表,16个触发器,切片中的查找表(Look Up Table,LUT)按列排列。UltraScale架构中包含两种类型的切片,即SliceL和SliceM。如图1.1所示,给出了SLICEL(L表示逻辑)的内部结构,其中:

(1)图中左侧为8个6输入的LUT,从下到上依次用A、B、C、D、E、F、G、H标记。

(2)图中右侧为16个锁存/触发器资源。

(3)图中包含F7、F8和F9类型的多路复用器。

(4)图中在LUT右侧的部件为一个8位的进位链。

(5)图中进位链后的第一列为F7类型的多路复用开关。从下到上依次用F7MUX_AB、F7MUX_CD、F7MUX_EF和F7MUX_GH表示。

(6)图中F7类型多路复用开关后,为上下两个F8类型的多路复用开关,从下到上依次用F8MUX_BOT和F8MUX_TOP表示。

(7)图中F8类型多路复用开关后,为一个F9 类型的多路复用开关,用F9MUX表示。

读者可打开器件结构图,查看这些设计资源。

图1.1 Kintex UltraScale SLICEL内部结构图

如图1.2所示,给出了SLICEM(M表示存储器)的内部结构,其中LUT能配置为:

(1)一个查找表。

(2)64位的分布式存储器。

(3)一个32位的移位寄存器。

此外,LUT可以配置为包含公共输入的两个5输入LUT。这样,就能产生两个逻辑运算结果。图1.3给出了将6输入LUT配置为2个5输入LUT的结构图。

1.2.2 多路复用器

多功能多路复用器将LUT组合在一起,构成7、8或者9输入的任意函数功能,或者最多55个输入的一些函数功能。每个切片包含7个多路复用器,用于构建更多的函数功能。不同多路复用器的功能包括:

1.F7MUX_AB、F7MUX_CD、F7MUX_EF和F7MUX_GH

用于组合两个相邻的LUT。其中,F7MUX的后缀AB、CD、EF、GH表示该类型多路复用器由SLICE外部输入的AX、BX、EX和GX控制信号对相应的F7MUX进行控制。其可以用作:

图1.2 Kintex UltraScale SLICEM内部结构图

图1.3 包含公共输入的2个LUT的结构图

(1)实现辅助的7输入函数功能。

(2)实现一个8:1的多路复用器。

2.F8MUX_BOT和F8MUX_TOP

用于组合两个相邻的F7MUX。其中,F8MUX的后缀BOT和TOP表示该类型多路复用器由SLICE外部输入的BX和FX控制信号对相应的F8MUX进行控制。其可以用作:

(1)实现辅助的8输入函数功能。

(2)实现一个16:1的多路复用器。图1.4给出了16:1多路复用器的实现结构。

图1.4 16:1多路复用器的实现结构

3.F9MUX

用于组合两个F8MUX。该类型的多路复用器由SLICE外部输入的DX控制信号进行控制。其可以用作:

(1)实现辅助的8输入函数功能。

(2)实现一个32:1的多路复用器。

1.2.3 进位逻辑

CLB内提供了一个专用的快速超前看进位逻辑,用来执行快速的加法和减法运算。多个快速进位逻辑可以级联在一起,实现更宽位数的加法和减法运算。图1.5给出了UltraScale架构内超前快速进位逻辑的结构。

图1.5 超前快速进位逻辑结构

1.2.4 存储元素

每个CLB的切片内有16个存储元素,其中的每一个存储元素都可以配置为边沿触发的D触发器,或者电平触发的锁存器。在UltraScale结构中,将16个存储元素分成上半部分和下半部分两组,每组内包含有8个存储元素;每个LUT的输入与两个存储元素连接。因此,每两个存储元素构成一对存储元素,分别用FF和FF2表示。

基于上面的结构特点,上半部分存储元素和下半部分存储元素各自包含4对存储元素,分别用A~D、E~H表示。

UltraScale结构中,为每个CLB内提供了两个时钟输入和两个置位/复位(SR)输入。它们分别分配到上半部分和下半部分的存储元素。而对于置位/复位,提供同步或者异步两种方式。

在UltraScale结构中,每个存储元素的输入可以来自:

(1)LUT的O6输出。

(2)LUT的O5输出。

(3)CLB的输入信号,该信号直接旁路LUT(BYP)。CLB X输入用于Q1,CLBI输入用于Q2。

(4)进位的逻辑异或结果。

(5)进位级联输出(CO)。

(6)多路复用器(FMUX)输出的一个(对于底部的LUT A,不可用)。

对于每个存储元素来说,可选择的初始化方式有:

1)SRLOW

当SR信号有效时,同步或者异步复位。

2)SRHIGH

当SR信号有效时,同步或者异步置位。

3)INIT0

当上电时,异步复位。

4)INIT1

当上电时,异步置位。

1.2.5分布式RAM(只有SLICEM)

SLICEM内的函数发生器(LUT)可以作为同步RAM资源,也称为分布式RAM。SLICEM内的多个LUT可组合构成最多512比特容量的RAM。其可以配置成:

1.单端口模式

包括:32×(1~16)位、64×(1~8)位、128×(1~4)位、256×(1~2)位或者512×1位。图1.6给出了64×1位单端口分布式RAM的结构。

图1.6 64×1位单端口分布式RAM的结构

2.双端口模式

包括:32×(1~4)位、64×(1~4)位、128×1位或者256×1位。图1.7给出了64×1位双端口分布式RAM的结构。

图1.7 64×1位双端口分布式RAM的结构

3.简单双端口模式

包括:32×(1~14)位、64×(1~7)位。

4.四端口模式

包括:32×(1~4)位、64×(1~2)位、128×1位。

5.八端口模式

包括:64×1位。

1.2.6 只读存储器(ROM)

SLICEM和SLICEL内的每个LUT都可以实现一个64×1位ROM。提供了4种ROM的配置方式:

(1)ROM64×1(1个LUT)。

(2)ROM128×1(2个LUT)。

(3)ROM256×1(4个LUT)。

(4)ROM512×1(8个LUT)。

1.2.7移位寄存器(只有SLICEM)

在不使用触发器的情况下,可以将一个SLICEM函数发生器配置为一个32位的移位寄存器。当用作移位寄存器时,每个LUT可以将串行数据延迟1~32个时钟。当移位输入D(LUT引脚SIN)和移位输出Q31(LUT引脚MC31)连接在一起时,就可以构成更大的移位寄存器。因此,当把一个SLICEM内的8个LUT级联在一起时,则可以产生最多256个时钟周期的延迟。在UltraScale结构中,可以跨越SLICEM将移位寄存器进行组合。因此,最终得到的可编程延迟,用于平衡数据流水线的时序。图1.8给出了32位移位寄存器的配置。

图1.8 32位移位寄存器的配置

移位寄存器的应用包括:

(1)补偿时延或者延迟。

(2)同步FIFO和内容可寻址存储器(Content Addressable Memory,CAM)。

移位寄存器的功能包括:

(1)写操作。

通过时钟输入和一个可选的时钟使能进行同步。

(2)到Q31的固定读访问,用于级联到下面的LUT。

最下面LUT A的Q31连接到SLICEM的输出,用于直接使用或者级联到下一个SLICEM。

(3)动态地读访问。

① 通过5位地址线A[4:0]执行,没有使用LUT地址的LSB,软件工具自动地将其拉高。

② 通过不同的地址,可以异步的读出任何32位数据。

在创建小的(少于32位)移位寄存器时,这个功能非常有用。例如,当构建一个13位的移位寄存器时,简单地将地址设置为第13位。

(4)一个存储元素或者触发器可以用来实现一个同步读操作功能。

时钟到触发器的输出决定了整个延迟,并且改善了性能。因此,增加了一个额外的延迟。

(5)不支持移位寄存器的置位或者复位。但是,当配置完成后,可以初始化为任意的值。

图1.9给出了一个移位寄存器配置的例子,该例子的实现占用了一个函数发生器。

图1.932位移位寄存器 XRRr9n3I1dZnlkyLOrAagGOlo/MyqffQd9D9in9VO06C+7D5yGKjUuq8omxWDlAJ

点击中间区域
呼出菜单
上一章
目录
下一章
×