复杂可编程逻辑器件(CPLD)是一种高密度的可编程逻辑器件,其集成密度大于1000门,具有更多的输入/输出信号、乘积项和宏单元。
应用
基于SRAM(静态随机存储器)的可重配置PLD(可编程逻辑器件)的出现,为系统设计者动态改变运行电路中PLD的逻辑功能创造了条件。PLD使用SRAM单元来保存配置数据。这些配置数据决定了PLD内部的互连关系和逻辑功能,改变这些数据,也就改变了器件的逻辑功能。由于SRAM的数据是易失的,因此这些数据必须保存在PLD器件以外的EPROM、EEPROM或FLASH ROM等非易失存储器内,以便使系统在适当的时候将其下载到PLD的SRAM单元中,从而实现在电路可重配置ICR(In-Circuit Reconfigurability)。
组成
CPLD主要由
逻辑块、可编程互连通道和I/O块三部分构成。
规模
CPLD中的逻辑块类似于一个小规模PLD,通常一个逻辑块包含4~20个
宏单元,每个宏单元一般由
乘积项阵列、乘积项分配和可编程寄存器构成。每个宏单元有多种配置方式,各宏单元也可级联使用, 因此可实现较复杂组合逻辑和时序逻辑功能。对集成度较高的CPLD,通常还提供了带片内RAM/ROM的嵌入阵列块。
可编程互连通道主要提供逻辑块、宏单元、输入/输出
引脚间的互连网络。输入/输出块(I/O块)提供内部逻辑到器件I/O引脚之间的接口。
逻辑规模较大的CPLD一般还内带JTAG边界扫描测试电路,可对已编程的高密度可编程逻辑器件做全面彻底的系统测试,此外也可通过
JTAG接口进行在系统编程。
由于集成工艺、集成规模和制造厂家的不同,各种CPLD分区结构、逻辑单元等也有较大的差别。
结构
EPM7128S器件
(1)EPM7128S器件基本结构
EPM7128S器件主要由逻辑阵列块LAB、宏单元、I/O控制块和可编程互连阵列PIA构成。
在多阵列矩阵结构中,每个宏单元有一个可编程的与阵列和一个固定的或阵列, 以及一个具有独立可编程时钟、时钟使能、清除和置位功能的可配置触发器。每16个宏单元组成一组,构成一个灵活的逻辑阵列模块LAB。多个LAB通过可编程互连阵列PIA和全局总线相连。每个LAB还与相应的I/O控制模块相连,以提供直接的输入和输出通道。
(2)EPM7128S宏单元结构
EPM7128S的每个宏单元能够单独配置为组合逻辑或时序逻辑工作方式。宏单元主要由逻辑阵列、乘积项选择矩阵和可编程寄存器3部分组成。可编程寄存器根据逻辑需要,可以编程
旁路,实现组合逻辑。如作为寄存器使用,则相应的可编程逻辑器件开发软件将根据设计逻辑需要,选择有效的寄存器工作方式,以使设计所用器件资源最少。
XCR3064XL器件
(1)XCR3064XL器件结构
XCR3064XL器件宏单元结构,由零功率互连阵列连接起来的功能块及I/O单元构成,每个逻辑块含16个宏单元。
全局互连结构
ispLSI1032器件结构
ispLSI1032器件主要由全局布线区GRP、通用逻辑块GLB、输入/输出单元IOC、输出布线区ORP和时钟分配网络CDN构成。
通用逻辑块GLB
通用逻辑块GLB主要用于实现逻辑功能,GLB主要由与阵列、乘积项共享阵列、4输出逻辑宏单元和控制逻辑电路组成。