【原创】CPLD内部基本结构
0赞【主题】:CPLD内部基本结构
【作者】:LinCoding
【时间】:2016.12.21
【声明】:转载、引用,请注明出处
总结自《Altera FPGA/CPLD设计 基础篇》第二版。
CPLD内部基本结构:
CPLD一般都是基于乘积项结构的。
CPLD主要由可编程I\O单元、基本可编程逻辑单元、布线池和其他辅助功能模块构成。
1、可编程I\O单元
CPLD的可编程I\O单元与FPGA的可编程I\O单元的功能一致。
2、基本可编程逻辑单元
与FPGA相似,基本可编程逻辑单元是CPLD的主体,但CPLD中没有LUT的概念,其基本可编程逻辑单元是一种被称为宏单元(Macro Cell,简称MC)的结构。所谓宏单元,本质是由一些与、或阵列加上触发器构成的,其中“与或”阵列完成组合逻辑功能,触发器用以完成时序逻辑,器件规模一般用MC的数目表示。CPLD厂商通过将若干个MC连接起来完成相对复杂一些的逻辑功能。不同厂商的这种MC集合的名称不同,Altera称为逻辑阵列模块(LAB,Logic Array Block),Xilinx将之称为功能模块(FB, Function Block),Lattice将之称为通用逻辑模块(GLB,Generic Logic Block)。
所谓乘积项即MC中与阵列的输出,其数量标志了CPLD的容量。乘积项阵列实际就是一个“与或”阵列,用以完成复杂的组合逻辑功能,MC中的可编程触发器与FPGA内部的可编程触发器相似,一般也包含时钟、复位\置位配置功能,用以实现时序逻辑的寄存器或者锁存器等功能。
3、布线池和布线矩阵
由于CPLD的结构较为简单,其布线资源也相对有限,一般采用集中式布线池结构,本质就是一个开关矩阵,通过打节点可以完成不同MC的输入与输出项之间的连接。
Altera的布线池叫做可编程互联阵列(PIA, Programmable Interconnect Array)
Lattice的布线池叫做全局布线池(GRP,Global Routing Pool)
CPLD的布线池结构固定,所以CPLD的输入管脚到输出管脚的标准延时固定,被称为Pin to Pin延迟,用Tpd表示,Pin to Pin延时反应了CPLD器件可以实现的最高频率,也就清晰的表明了CPLD器件的速度等级。
4、其他辅助功能模块
CPLD中还有一些其他辅助功能模块,如JTAG编程模块,一些全局时钟、全局使能、全局复位/置位单元等。