复杂可编程逻辑器件CPLD的基本结构
复杂可编程逻辑器件CPLD的基本结构
文章出处:czhlcai 发布时间: 2008/12/08 | 6911 次阅读
1.基于乘积项的CPLD结构
CPLD的结构是基于乘积项(Product-Term)的,现在以Xilinx公司的XC9500XL系列芯片为例介绍CPLD的 基本结构,如图1所示,其他型号CPLD的结构与此非常类似。
CPLD可分为3部分:功能模块(Function Block)、快速互连矩阵(FastCONNECT Ⅱ SwitchMatrix)和I/O控制模块。每个功能模块包括可编程与阵列、乘积项分配器和18个宏单元,功能模块的结 构如图2所示。快速互连矩阵负责信号传递,连接所有的功能模块。I/O控制模块负责输人输出的电气特性 控制,比如可以设定集电极开路输出、三态输出等。图1中的I/O/GCK,I/O/GSR,1/0/GTS是全局时钟、全 局复位和全局输出使能信号,这几个信号有专用连线与CPLD中每个功能模块相连,信号到每个功能模块的 延时相同并且延时最短。
图1 基于乘积项的CPLD内部结构
图2 功能模块的结构
宏单元是CPLD的基本结构,由它来实现基本的逻辑功能。图3所示为宏单元的基本结构。图3中左侧是乘 积项阵列,实际就是一个与或阵列,每一个交叉`点都是可编程的,如果导通就实现“与”逻辑,与后面的乘积项分配器一起完成组合逻辑。图3右侧是一个可编程的触发器,可配置为D触发器或T触发器,它的时钟、清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零。如果不需要触发器,也可以将此触发器旁路,信号直接输出给互连矩阵或输出到I/0脚。
图3 CPLD的宏单元结构
2.CPLD逻辑实现原理
下面以一个简单的电路为例,具体说明CPLD是如何利用以上结构实现逻辑的,电路如图4所示。
假设组合逻辑的输出为f,则f=(A十B)* C *(!D)=A * C*!D+B*C *!D(以!D表示D的“非”),CPLD将以图5的方式来实现组合逻辑f。
A,B,C,D由PLD芯片的引脚输人后进入互连矩阵,在内部会产生A,A,B,B,C,C,D,D 8个输出。图5中每一个叉表示相连(可编程熔丝导通),所以得到:f=fl+12=(A* C *!D)+(B*C*!D),这样就实现了组合逻辑。图4中,D触发器的实现比较简单,直接利
图4 简单逻辑电路 图5 CPLD的逻辑实现
用宏单元中的可编程D触发器来实现。时钟信号CLK由I/O脚输入后进人芯片内部的全局时钟专用通道,直接连接到可编程触发器的时钟端。可编程触发器的输出与I/O脚相连,把结果输出到芯片引脚。这样CPLD就完成了图4所示电路的功能。以上这些步骤都是由软件自动完成的,不需要人为干预。
图4的电路是一个很简单的例子,只需要一个宏单元就可以完成。但对于一个复杂的电路,一个宏单元是不可能实现的,这时就需要通过并联扩展项和共享扩展项将多个宏单元相连,宏单元的输出也可以连接到互连矩阵,再作为另一个宏单元的输入。这样CPLD就可以实现更复杂的逻辑。
这种基于乘积项的CPLD基本都是由E2PROM和Flashェ艺制造的,一上电就可以工作,无须其他芯片配合。
欢迎转载,信息来源维库电子市场网(www.dzsc.com)
转载自:http://www.dzsc.com/data/html/2008-12-8/74636.html