3.4 复杂可编程逻辑器件的结构
复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)是更复杂的PAL,它具有更高的容量。本节将以Intel的MAX 7000系列的可编程逻辑器件(Programmable Logic Device,PLD)系列为例,介绍CPLD的结构。
MAX 7000系列的器件是基于第二代MAX架构和EEPROM工艺的PLD,其器件容量和时序性能如表3.1所示。
表3.1 MAX 7000系列的器件容量和时序性能
表3.1中:
(1)tPD,输入到非寄存输出的时间;
(2)tSU:全局时钟的建立时间;
(3)tFSU:快速输入的全局时钟的建立时间;
(4)tCO1:全局时钟到输出延迟的时间;
(5)fCNT:最高的内部全局时钟频率。
MAX 7000系列的CPLD的结构内部由下面元素构成,即逻辑阵列块、宏单元、扩展器乘积项(可共享和并行)、可编程的互联阵列和I/O控制块。
MAX 7000系列的CPLD的内部结构包括4个专用输入,可用作通用输入或用作每个宏单元和I/O引脚的高速、全局控制信号(时钟、清除和两个输出使能信号)。EPM7032、EPM7064和EPM7096器件的内部结构如图3.10所示。MAX 7000E和MAX 7000S器件的内部结构如图3.11所示。
图3.10 EPM7032、EPM7064和EPM7096器件的内部结构
图3.11 MAX 7000E和MAX 7000S器件的内部结构
3.4.1 逻辑阵列块
如图3.10和3.11所示,MAX 7000系列的器件架构是基于高性能和灵活逻辑阵列块(Logic Array Block,LAB)的链接的,每个LAB由16个宏单元组成。
多个LAB通过可编程互联阵列(Programmable Interconnect Array,PIA)链接在一起,PIA是一个全局总线,由所有专用输入、I/O引脚和宏单元提供。
每个LAB由以下信号馈送:
(1)来自PIA的36个信号,用于一般的逻辑输入;
(2)用于第二级寄存器功能的全局控制;
(3)从I/O引脚到寄存器的直接输入路径,用于MAX 7000E和MAX 7000S器件的建立时间。
3.4.2 宏单元
宏单元可以单独配置为时序或组合逻辑操作。宏单元由3个功能块组成,即逻辑阵列、乘积项选择矩阵和可编程寄存器。EPM7032、EPM7064和EPM7096器件的宏单元如图3.12所示。MAX 7000E和MAX 7000S器件的宏单元如图3.13所示。
图3.12 EPM7032、EPM7064和EPM7096器件的宏单元
在逻辑阵列中实现组合逻辑,每个宏单元提供5个乘积项。乘积项选择矩阵分配这些乘积项,或者作为基本的逻辑输入(到OR和XOR门)以实现组合功能,或作为第二个输入(到宏单元)以寄存器清除、预置、时钟和时钟使能控制功能。有两种扩展器乘积项(“扩展器”)可用于补充宏单元的逻辑资源:
① 可共享的扩展器,它们是乘积项取反,然后反馈到逻辑阵列;
② 并行扩展器,是从相邻宏单元借用的乘积项。
图3.13 MAX 7000E和MAX 7000S器件的宏单元
Intel开发系统会根据设计的逻辑要求自动优化乘积项分配。对于包含寄存器的逻辑功能,每个宏单元触发器可以单独编程为带有可编程时钟控制的D、T、JK或SR操作。对于组合逻辑操作,可以旁路掉(绕过)触发器。
在设计输入期间,设计者指定所期望的触发器类型,然后Intel软件开发工具为每个带有寄存器的函数选择最有效的触发器操作,以优化资源的利用率。
每个可编程的寄存器可以3种不同的模式提供时钟:
(1)通过全局时钟信号。该模式实现最快的时钟到输出的性能。
(2)通过全局时钟信号,并通过高电平有效的时钟使能。该模式在每个触发器上提供使能,同时仍实现全局时钟的快速时钟到输出的性能。
(3)通过一个乘积项实现的一个阵列时钟。在该模式下,触发器可以由来自掩埋宏单元或I/O引脚的信号驱动时钟。
如图3.10所示,在EPM7032、EPM7064和EPM7096器件中,全局时钟信号可以从一个专用时钟引脚GCLK1获得。如图3.11所示,在MAX 7000E和MAX 7000S器件中,提供了两个可用的全局时钟信号,这些全局时钟可以是全局时钟引脚GCLK1或GCLK2的真值或补码。
每个寄存器也支持异步置位和清除功能。如图3.12和图3.13所示,乘积项选择矩阵分配乘积项用于控制这些操作。尽管乘积项驱动的寄存器置位和清除是高电平有效,但是通过在逻辑阵列中对信号取反来获得低电平有效控制。此外,每个寄存器的清除功能可以由低电平有效的全局清除引脚(GCLRn)单独驱动。上电时,器件中的每个寄存器都将设置为低电平状态。
所有MAX 7000E和MAX 7000S I/O引脚都具有到宏单元寄存器的快速输入路径。这个专用的路径允许信号绕过PIA和组合逻辑,以极快(2.5ns)的输入建立时间驱动到一个输入D触发器。
3.4.3 扩展器乘积项
虽然大多数逻辑功能可以使用每个宏单元中可用的5个乘积项实现,但更复杂的逻辑功能要求额外的乘积项。另一个宏单元可用于提供所需要的逻辑资源。然而,MAX 7000架构还允许可共享和并行扩展器乘积项(扩展器),它们可以为同一LAB中的任何宏单元提供额外的乘积项。这些扩展器有助于确保逻辑以尽可能少的逻辑资源综合,以获得最快的速度。
1.可共享的逻辑扩展器
如图3.12和图3.13所示,每个LAB有16个可共享的逻辑扩展器,它可以看作未提交的单个乘积项(每个宏单元一个),将输出取反后反馈到逻辑阵列。每个可共享的逻辑扩展器都可以由LAB中的任何或所有宏单元使用与享用,以构建复杂的逻辑功能。当使用可共享的逻辑扩展器时,会产生小延迟(tPEXP),图3.14给出了可共享的扩展器如何输入到多个宏单元。
图3.14 在一个LAB中可共享的逻辑扩展器的结构
2.并行逻辑扩展器
并行逻辑扩展器是未使用的乘积项,它能分配给相邻的宏单元以实现快速、复杂的逻辑功能。并行逻辑扩展器允许最多20个乘积项直接馈送到宏单元的OR逻辑,宏单元提供5个乘积项,LAB中相邻宏单元提供15个并行逻辑扩展器。
编译器可以为要求额外乘积项的宏单元自动分配最多三组并行逻辑扩展器,每组最多5个并行逻辑扩展器。每组5个并行逻辑扩展器产生一个小的、增量的时间延迟(tPEXP)。例如,如果一个宏单元需要14个乘积项,则编译器使用宏单元中的5个专用乘积项并分配两组并行逻辑扩展器。第一组包括5个乘积项,以及第二组包含4个乘积项,总计增加2×tPEXP的延迟。
每个LAB内的两组宏单元(例如,宏单元1~8、9~16)构成两个链以借出和借用并行逻辑扩展器。一个宏单元从较低编号的宏单元中借用并行逻辑扩展器。例如,宏单元8能从宏单元7,宏单元7和6,或从宏单元7、6和5借用并行逻辑扩展器。在每组的8个宏单元中,最低编号的宏单元只能借出并行逻辑扩展器,以及最高编号的宏单元只能借入并行逻辑扩展器。图3.15显示了如何从相邻的宏单元借用并行逻辑扩展器。
图3.15 一个宏单元中未使用的乘积项可以分配给相邻的宏单元
注
Altera MAX架构的时序是不能严格确定的(例如,不可能预测准确的时序)。
3.设计实例
考虑下面的逻辑函数表达式_:
在该表达式中,包含4个乘积项,即。很明显,该逻辑函数不能使用宽度为3的OR阵列实现。
因此,逻辑表达式F可以重新改写为
其中,为扩展器乘积项。逻辑函数F的物理实现如图3.16所示。
图3.16 逻辑函数F的物理实现
3.4.4 可编程互联阵列
通过可编程互联阵列(Programmable Interconnect Array,PIA)在LAB之间布线并连接逻辑,这个全局总线是一个可编程路径,它将器件内的任何信号从源连接到目的地。所有MAX 7000专用的输入、I/O引脚和宏单元输出都馈送到PIA,这样使得信号在通过整个器件时可用。只有每个LAB要求的信号才能真正地从PIA布线到LAB,图3.17显示了PIA信号布线连接到LAB的方法。EEPROM单元控制2输入AND门的一个输入,用于选择驱动LAB的一个PIA信号。
图3.17 PIA布线
虽然在屏蔽或FPGA中基于通道布线方案的布线延迟是累积的、可变的,以及和路径相关的,但是MAX 7000 PIA有固定的延迟。因此,PIA消除了信号之间的偏差,并使其时序性能易于预测。
3.4.5 I/O控制块
I/O控制块允许每个I/O引脚单独配置为输入、输出或双向操作。所有I/O引脚有一个三态缓冲区,有一个全局输出使能信号单独控制或直接连接到地或VCC。
图3.18 MAX 7000的I/O控制块的内部结构
MAX 7000的I/O控制块的内部结构,如图3.18所示。如图3.18(a)所示,EPM032、EPM7064和EPM7096器件的I/O控制块具有两个全局输出使能信号,由两个专用的低电平有效输出使能引脚(OE1和OE2)驱动。如图3.18(b)所示,MAX 7000E和MAX 7000S器件的I/O控制块有6个全局输出使能信号,由两个输出使能的真或补、I/O引脚的子集或I/O宏单元的子集驱动。
当三态缓冲器的控制连接到地时,输出为三态(高阻),I/O引脚可用作专用输入;当三态缓冲区控制连接到VCC时,使能输出。
MAX 7000架构提供双I/O反馈,其中宏单元和引脚反馈是独立的。当一个I/O引脚配置为输入时,相关的宏单元可用作掩埋逻辑。
思考与练习3-5:MAX 7000宏单元由________、________和________组成。
思考与练习3-6:在MAX 7000扩展器乘积项中,提供了两种类型的扩展器,包括________和________。
思考与练习3-7:MAX 7000中可编程互联阵列的作用是________。
思考与练习3-8:MAX 7000中I/O控制块的作用是________。
思考与练习3-9:MAX 7000 CPLD的主要原理是________。