复杂可编程逻辑器件(CPLD)
1 CPLD的结构
2 CPLD编程简介
复杂可编程逻辑器件(CPLD)
• 与PAL、GAL相比,CPLD的集成度更高,有更多的
输入端、乘积项和更多的宏单元;
•CPLD器件内部含有多个逻辑块,每个逻辑块都相当于
一个GAL器件;
•每个块之间可以使用可编程内部连线(或者称为可编程
的开关矩阵)实现相互连接。
1 CPLD的结构
更多成积项、更多宏单元、更多的输入信号。
I/O
逻辑块
逻辑块
逻辑块
逻辑块
可
编
程
内
部
连
线
矩
阵
逻辑块
逻辑块
逻辑块
逻辑块
I/O
通用的CPLD器件逻辑块的结构
n
内部
可编
程连
线区
可编
程乘
积项
阵列
乘积
项分
配
宏单元 1
宏单元 2
宏单元 3
· · ·
宏单元 m
m
m
内部
可编
程连
线区
I/O 块
Xilnx XG500: 90个36变量的乘积项,宏单元36个
Altera MAX7000:80个36变量的乘积项,宏单元16个
XG500系列乘积项分配和宏单元
到上一个宏单元 来自上一个宏单元
全局置位
可编程
数据分配
器
乘积项分配电路
全局复位
全局时钟
3
可编程数据
选择器
S6
G1
S7
G2
S8
G3
乘积
项置
位
1
0 M1
G4
乘积项
复位
S1
S2
S3
S4
S5
来自下一个宏单元
到下一个宏单元
3
M2
G5
M4
M5
S
D/T
CLK
R
FF
M3
到内部可编
程连线区
宏输出
到 I/O 单元
OUT
PTOE
到 I/O 单元
乘积项输出使能
OE
可编程内部连线
可编程内部连线的作用是实现逻辑块与逻辑块之间、逻辑块与
I/O块之间以及全局信号到逻辑块和I/O块之间的连接。
连线区的可编程连接一般由
E2CMOS管实现。
当E2CMOS管被编程为导通时,
纵线和横线连通;未被编程为截
止时,两线则不通。
宏单元或
I/O 连线
T
E2CMOS 管
内部连线
可编程连接原理图
I/O单元
I/O单元是CPLD外部封装引脚和内部逻辑间的接口。每个
I/O单元对应一个封装引脚,对I/O单元编程,可将引脚定
义为输入、输出和双向功能。
数据选择器
提供OE号。
OE=1, I/O引
脚为输出
到
内
部
可
编
程
连
线
区
来
自
宏
单
元
全
局
输
出
使
能
到其他 I/O 单
元
OUT
PTO
E
r
1
r
0
VCCIN
T
D1
输入缓冲
VCCIO
D2
可编程
上拉
输出缓冲驱
动
O
E
摆率
控制
M
I/O
可编程
接地
r
到其他 I/O 单元
2 CPLD编程简介
编程过程(Download或Configure):将编程数据写入这些
单元的过程。
编程的实现:由可编程器件的开发软件自动生成的。
用户在开
发软件中
输入设计
及要求。
检查、分析
和优化。完
成对电路的
划分、布局
和布线
生成
编程
数据
文件
写入
CPLD