当前课程知识点:EDA技术与应用 > 第二章 可编程逻辑器件概述 > 2.2 CPLD的结构和原理 > 2.2.2 CPLD的结构和原理 教学视频
上节课讲到早期和中期的PLD
如PROM、PAL、 GAL等
由于阵列规模小
片内寄存器资源不足等原因
在使用中已经被淘汰
目前,PLD主要以CPLD、FPGA为主
为了更好的使用和选择这些器件
下面以Altera公司的
MAX7000系列芯片EPM7128为例
介绍CPLD的基本结构及工作原理
其他型号的CPLD的结构与此非常类似
从图中可以看到,CPLD由三部分组成
位于中心的可编程互连线(PIA)
分布于PIA周围的宏单元
以及边沿的I/O控制块
宏单元是PLD的基本结构
可实现数字电路基本逻辑功能
16个逻辑宏单元
可以组成一个逻辑阵列块LAB
PIA负责信号的传递
连接所有的宏单元和I/O控制块
I/O控制块负责输入输出的电气特性
如设定引脚为输入、输出
OC输出还是三态输出等等
左上角还有四个输入信号
分别是全局时钟、清零、输出和使能信号
这几个信号有专用连线
与PLD中每个宏单元相连
下面我们来分析宏单元
PIA和I/O控制块的构成及工作方式
那么,宏单元由与阵列、或阵列
可编程触发器和可编程选择开关构成
左侧红框部分是乘积项阵列
每一个交叉点都是一个可编程开关
如果导通就实现“与逻辑”
后面的乘积项选择矩阵是一个或阵列
两者一起完成组合逻辑
可编程触发器可配置为D触发器或者T触发器
其时钟、清零
都可以通过可编程选择开关选择
可使用全局清零或者全局时钟
也可使用乘积项阵列产生的时钟和清零
如果不需要触发器,也可将触发器旁路
信号直接输出给互联阵列
或者输出到I/O引脚
从前面的讲述
我们总结一下宏单元的功能
宏单元通过与、或阵列及乘积项扩展
实现了多输入、多输出
功能强大的组合电路
再通过各类触发器、不同的时钟信号
实现了同步或异步时序逻辑电路
下面我们再看可编程互联
从图中可以看到
围绕在PIA周围的
不同的宏单元与宏单元之间
宏单元与I/O口之间
都是通过可编程互联线相互连接
构成所需要的逻辑
PIA是一种集总总线的方式
采用固定长度的金属线进行各逻辑块的互联
所以设计的逻辑电路具有时间可预测性
这样,通过宏单元与宏单元之间
宏单元与I/O口之间的
大量的局部布线或全局布线
实现整个逻辑系统的设计
I/O控制块内部结构如图所示
I/O控制块允许每个 I/O引脚
单独被配置为输入、输出和双向工作方式
所有I/O引脚都有一个三态缓冲器
控制端来自数据选择器
可以选择6根全局输出使能信号、电源和地端
前面我们介绍了CPLD各模块的工作原理
下面我们来了解CPLD 编程工艺
那么,CPLD编程工艺采用的是
EEPROM编程方式
如右图所示
EEPROM单元控制与门的一个输入端
如果EEPROM单元为高电平
则PIA连线将和LAB相连
否则将和LAB断开
大部分CPLD采用这种
FLASH或EEPROM编程方式
FLASH和EEPROM编程方式的最大区别是
flash是按扇区操作
EEPROM则按字节操作
同学们
本次课我们共同学习了CPLD的构成
各模块工作原理及CPLD的编程工艺
下节课我们将共同学习FPGA有关内容
再见
-1.1 EDA技术概述
--1.1.3 EDA技术概述 单元测验
-2.1 可编程逻辑器件(PLD)概述
--2.1.3 可编程逻辑器件概述 单元测验
-2.2 CPLD的结构和原理
--2.2.3 CPLD的结构和原理 单元测验
-2.3 FPGA的结构和原理
--2.3.3 FPGA的结构和原理 单元测验
-2.4 FPGA和CPLD的选用
--2.4.3 FPGA和CPLD的选用 单元测验
-2.5 FPGA与CPLD的编程和配置
--2.5.3 FPGA与CPLD的编程与配置 单元测验
-3.1 QuartusII概述
--3.1.3 Quartus Ⅱ概述 单元测验
-3.2 新建工程
--3.2.3 新建工程 单元测验
-3.3 设计输入
--3.3.3 设计输入 单元测验
-3.4 设计编译
--3.4.3 设计编译 单元测验
-3.5 仿真验证
--3.5.3 仿真验证 单元测验
-3.6 器件编程
--3.6.4 器件编程 单元测验
-3.7层次化设计
--3.7.3 层次化设计 单元测验
-3.8 宏功能模块的使用
--3.8.3 宏功能模块的使用 单元测验
-4.1 VHDL语言概述
--4.1.3 VHDL语言概述 单元测验
-4.2 VHDL代码的结构
--4.2.3 VHDL代码的结构 单元测验
-4.3 库和库声明
--4.3.3 库和库声明 单元测验
-4.4 实体说明
--4.4.3 实体说明 单元测验
-4.5 结构体
--4.5.3 结构体 单元测验
-4.6 VHDL预定义数据类型
--4.6.3 VHDL预定义数据类型 单元测验
-4.7 常量、变量和信号
--4.7.3 常量、变量和信号 单元测验
-4.8 运算操作符和属性
--4.8.3 运算操作符和属性 单元测验
-4.9 IF语句和WAIT语句
--4.9.3 IF语句和WAIT语句 单元测验
-4.10 CASE语句
--4.10.3 CASE语句 单元测验
-4.11 LOOP循环语句
--4.11.3 LOOP循环语句 单元测验
-4.12 进程
--4.12.3 进程 单元测验
-4.13 条件信号赋值语句
--4.13.3 条件信号赋值语句 单元测验
-4.14 选择信号赋值语句
--4.14.3 选择信号赋值语句 单元测验
-4.15 元件例化语句
--4.15.3 元件例化语句 单元测验
-4.16 VHDL模块化设计
--4.16.3 VHDL模块化设计 单元测验
-5.1 设计方法概述
--5.1.3 设计方法概述 单元测验
-5.2 EDA综合设计案例(1)— 数字钟的设计
--5.2.2 EDA综合设计设计案例1— 数字钟的设计 教学视频
--5.2.3 EDA综合设计案例1 单元测验
-5.3 EDA综合设计案例(2)—16×16点阵控制器设计
--5.3.2 EDA综合设计案例2—16×16点阵控制器设计 教学视频
--5.3.3 EDA综合设计案例2 单元测验