当前课程知识点:EDA技术与应用 > 第二章 可编程逻辑器件概述 > 2.1 可编程逻辑器件(PLD)概述 > 2.1.2 可编程逻辑器件概述 教学视频
同学们好
我是电子与控制工程学院的崔瑞雪老师
从前面的课程我们了解到
可编程逻辑器件
是构成EDA技术的四大要素之一
是利用EDA技术
进行数字系统设计的硬件载体
为了更好的选择和使用这个载体
从本章开始
我们将学习可编程逻辑器件的有关知识
可编程逻辑器件即PLD
PLD是大规模集成电路技术发展的产物
是作为一种通用集成电路生产
而逻辑功能由用户对器件编程来确定的器件
作为大规模集成电路技术发展的产物
意味着其集成度高、体积小、功耗低
如目前Altera公司生产的Stratix V
这款PLD的内部已经具有39亿晶体管
作为通用集成电路生产
即电子生产厂商可以像生产
74LS00、74138等器件一样
可以大批量生产,成本低,周期短
逻辑功能按照用户对器件编程来确定
即意味着与使用74LS00等器件不同的是
芯片的逻辑功能
由用户借助EDA技术自己来设定
并且可以根据需要反复修改、使用
可以说,PLD的应用和发展
改变了传统数字系统的设计方法
为了更好地了解PLD的构成及工作原理
我们先来介绍一下PLD中常用逻辑符号
PLD中阵列线连接关系如图所示
如,这表示未连接
这表示固定连接
和可编程连接
在这个图中,这是一个与的符号
那么Y就等于A与B与C
这个,就表示或的符号
Y等于A或B或C
PLD中互补缓冲器
一般用这种图形符号来表示
好,我们下面来了解PLD的基本架构
PLD的基本结构如图所示
由输入缓冲求反、与阵列、或阵列和输出结构
输入缓冲求反是获得变量的原变量和反变量
那么为什么核心是与或阵列呢?
我们在数字电路课中讲过任何组合逻辑函数
都可以展开成与或式
所以如果有足够的与门和或门
就可以构成任何组合逻辑电路
例如图中所示
假如我们求Y1
那么Y1就等于A非与B非、与C非
然后或a非、与B非、与C
同样,我们也可以得到Y2、Y3的函数式
那么通过这个实例,我们可以看到
通过输入缓冲求反,与或阵列
我们就构成了组合逻辑电路
如果在输出结构中增加了触发器的话
那就构成了时序电路
有组合有时序,就构成了完整的数字电路
这就是PLD构建的基本思路
那么, PLD是从什么时候开始出现的呢?
实际上PLD 始于上个世纪70年代
当初主要用于解决数字系统中各类存储问题
后来逐渐转向为各种数字逻辑应用
主要经历了以下三个阶段
早期的可编程逻辑器件包括
PROM、EPROM 和EEPROM
这实际上在数字电子技术这门课程中
学习半导体存储器时已经介绍过
PROM由固定的与阵列
和可编程的或阵列构成
通过编程,就可以实现组合逻辑电路
如,我们用PROM
就可以完成半加器电路
由于受结构上的限制
电路中是没有触发器的
他们只能完成简单的组合逻辑电路
70年代末80年代初
AMD、Lattice等公司
陆续推出了结构上稍微复杂的可编程芯片
即中期可编程逻辑器件 PAL、GAL
这是中期PLD阶段的可编程逻辑器件
GAL16V8的部分结构图
图中左侧部分为与或阵列
每一交叉点均为一编程点
采用EEPROM编程方式
构成组合逻辑电路
右侧为输出部分
称为输出逻辑宏单元
可以看到
输出逻辑宏单元内部有着丰富的
数据选择器和触发器
图中,异或门左侧为与或输出
如果是组合电路的话
则通过数据选择器直接输出
如果所设计电路为时序电路的话
那么组合电路的输出通过触发器
构成时序逻辑电路
通过数据选择器输出
或者是向内部形成反馈
这是中期可编程逻辑器件GAL16V8
中期可编程逻辑器件的特点是
虽然可以实现组合逻辑电路和时序电路
有着很强的灵活性
但其过于简单的结构
也只能使他们实现规模较小的电路
所以也就有了第三个阶段
即大规模可编程逻辑器件阶段
20世纪80年代中期
Altera公司推出类似PAL结构的
扩展型复杂可编程逻辑器件CPLD
Xilinx公司推出了
与标准门阵列类似的
现场可编程门阵列FPGA
CPLD、FPGA是目前数字系统设计中
所使用的两类主要芯片
下节课我们将详细介绍
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 单元测验