9.3 复杂可编程逻辑器件(CPLD)9.3.1 CPLD的基本结构
9.3.2 CPLD逻辑块的结构9.3.3 I/O块
9.3.4 可编程内部互连线资源
9.3 复杂可编程逻辑器件(CPLD) 与PAL、GAL相比,CPLD的集成度更高,有更多的
输入端、乘积项和更多的宏单元; CPLD器件内部含有多个逻辑块,每个逻辑块都相当于
一个PAL(或GAL)器件; 每个块之间可以使用可编程内部连线(或者称为可编程的开关矩阵)实现相互连接。
9.3.1 CPLD的基本结构更多成积项、更多宏单元、更多的输入信号。逻辑块 逻辑块
可 编逻辑块
程 内 部 连
逻辑块
I/O逻辑块
I/O逻辑块
线 矩 阵
逻辑块
逻辑块
9.3.2 CPLD逻辑块的结构
宏单元 内部 可编
1 2 3
可编程连 线区
n
程乘积项 阵列
乘积 项分 配
宏单元 宏单元 宏单元
mm
内部
可编程连 线区 I/O 块
m
Xilinx XC9500: 90 个 36 变量的乘积项, 宏单元 36 个Altera MAX7000: 80 个 36 变量的乘积项, 宏单元 16 个
9.3.3 I/O块I/O块是CPLD外部封装引脚和内部逻辑间的接口。每个I/O单元对应 一个封装引脚,对I/O单元编程,可将引脚定义为输入、输出和双向功 能。 到其他 I/O 单元到 内 部 可 编 程 连 线 区 VCCINT 输入缓冲 D1 VCCIO
D2 输出缓冲驱动 OUT PTOE 1 r r r 到其他 I/O 单元 0 M 摆率 控制 OE
可编程 上拉 I/O 可编程 接地
数据选择器提 供OE信号。 OE=1, I/O引脚 为输出
来 自 宏 单 元 全 局 输 出 使 能
9.3.4 可编程内部互连线资源可编程内部连线的作用是实现逻辑块与逻辑块之间、逻辑块与I/O块之间以及全局信号到逻辑块和I/O块之间的连接。
在CPLD内部实现可编程互连线的方法有两种:一是基于存储单元控制的MOS管来实现可编程连接,另一种是基于多路 数据选择器实现互连。 当E2CMOS管被编程为导通时, 纵线和横线连通;未被编程为截止 时,两线则不通。内部连线可编程连接原理图 T E2CMOS 管 宏单元或 I/O 连线
9.3.4 可编程内部互连线资源 基于多路数据选择器实现互连: 由图可知,选择器由输入信号S 控制 当S=0 时,M1选择X1输出,M2选择X2 输出,即Y1=X1, Y2=X2;S
X1 X2 0 1 M1
Y1
0 1
当S=1 时,M1选择X2输出,M2选择X1 输出,即Y1=X2, Y2=X1。 将该电路扩展成为有n个输入、k个输出的电路,使任意一个输入能够与任意一个输 出相连,通常称之为n k的纵横开关。 end
Y2
图 9.3.4
M2 2 2 互连线示意图
S 0
Y1 X1 X2
Y2 X2 X1
1