1
第 10章可编程逻辑器件
PLD,Programmable Logic Device
2
PLD概述
PLD内部包含有丰富的逻辑部件(如各种门电路、
开关、触发器等)和连线,各逻辑部件相互不连接或局部连接。
用户可通过配置器件内部逻辑部件的互连关系、分配 PLD管脚的用途,即所谓的编程,实现多种逻辑功能。
同一种 PLD器件,其内部逻辑部件的互连关系不同、
引脚的分配方案不同,实现的逻辑功能也不同,给使用者带来了极大的方便
3
PLD的开发流程图输入编译仿真编程
4
编程的目标文件
,POF文件
SRAM目标文件 (.SOF)
JEDEC文件 (.JED)
十六进制 (Intel格式 )文件 (.HEX)
Tabular文本文件 (.TTF)
串行位流文件 (.SBF)
5
PLD开发软件
Logical Devices 公司的 CUPL软件
Data I/O公司的 ABEL软件
Xilinx 公司的 Fundation 软件
Altera 公司的 MAX+PLUS Ⅱ 软件
Lattice公司的 ISP Synario System软件通常这些软件只能开发本公司生产的器件。
6
PLD编程器
Xeltek公司的 SUPERPRO系列编程器
Microcontrollers(如,INTEL公司的 8751H、
8796BH等);
PLD器件(如各种 PAL,GAL器件,XILINX公司的 XC7372-68PL(159) 等 CPLD器件、
Lattice 公司的 ispLSI1016-44PL(60)、
ispLSI1032-84PL(62)等 ispLSI器件的编程。
7
40引脚芯片插座电源指示灯通信端口图 10.1.2 SuperPro Z编程器的外观
8
常用英文缩写
PLD,Programmable Logic Device;
ASIC:Application Specific Integrated Circuit;
EDA:Electronics Design Automation;
CAD:Computer Aided Design;
CAA:Computer Aided Analysis;
CAT:Computer Aided Test ;
9
10.2 PLD的基本结构一,PLD实现各种逻辑功能的依据二、传统 PLD的总体结构图 10.1.1 传统 PLD的总体结构输出电路输入电路与阵列或阵列外部数据输入数据输出输入项 乘积项 和项反馈
……
10
三、多路选择器
10.3 PLD的表示方法一、缓冲电路二、与门、或门及连接表示
11
1A AA
1 2 3 4 5 6
A
B
C
D
654321
D
C
B
A
T i t l e
N u m be r R e v i s i o nS i z e
B
D a t e,1 5- M a y - 20 0 2 S he e t o f
F i l e,C,\ M y D o c u m e nt s \ 数电课件 \ 第十章,D d b D r a w n B y:
固 定 连 接 编 程 连 接 断开图 10.3.3 PLD中连接方式表示图 10.3.1 PLD输入缓冲电路
12
1 2 3 4 5 6
A
B
C
D
654321
D
C
B
A
T i t l e
N u m be r R e v i s i o nS i z e
B
D a t e,1 5- M a y - 20 0 2 S he e t o f
F i l e,C,\ M y D o c u m e nt s \数电课件 \ 第十章,D d b D r a w n B y:
&
与门
1
或门传 统 表 示 法
F
F
F
P L D 表 示 法
A
B
C
&
A
B
C
A B C
F≥1
A B C
图 10.2.2 PLD中的与门、或门表示
13
图 10.2.4 PLD中的 多路选择器
00
01
10
11
A
B
C
D
C0
F
C1
14
10.4 PLD的分类一,PLD的集成度分类图 10.4.1 PLD的 密度分类可编程逻辑器件 PLD
低密度可编程逻辑器件 LDPLD
高密度可编程逻辑器件 HDPLD
PROM PLA PAL GAL CPLD FPGA
15
1.低密度可编程逻辑器件 (LDPLD:Low-Density PLD)
(1) PROM (Programmable ROM)
20世纪 70年代初。 与阵列固定,或阵列可编程。
(2) PLA(Programmable Logic Array)
20世纪 70年代初。 与阵列,或阵列都可编程 。
(3) PAL(Programmable Array Logic)
20世纪 70年代末 。 与阵列可编程,或阵列固定 。
(4) GAL(Generic Array Logic )
20世纪 80年代初。 大部分与阵列可编程,或阵列固定 。
16
LDPLD的分类与结构名称 与阵列 或阵列 输出部分
PROM 固定 可编程 固定
PLA 可编程 可编程 固定
PAL 可编程 固定 固定
GAL 可编程 固定 可配置
17
2.高密度可编程逻辑器件 (HDPLD:High-Density PLD)
(1)CPLD (Complex PLD)
20世纪 80年代中。
20世纪 80年代中。
(2) FPGA(Field Programmable Gate Array)
18
(1)逻辑单元两者的区别:
① CPLD逻辑单元大 (通常其变量数约 20~ 28个 ),
单元功能强大,一般的逻辑在单元内即可实现;
② FPGA逻辑逻辑单元小 (输入变量通常 4~8个,
输出 1~2个 ),逻辑功能弱,如要实现一个较复杂的功能,需要几个单元组合起来才能完成。
19
(2)逻辑单元间的互连
① CPLD:集总式,其特点是总线上任意一对输入端与输出端之间的延时相等,且是可预测的。
② FPGA:分布式,其特点是互连方式较多,有通用互连、直接互连、长线等方式。实现同一个功能可能有不同的方案,其延时是不等的。而且一般情况下比 CPLD大。
20
C
B A
集总式互连分布式互连
C
B
A
21
(3)编程工艺
① CPLD:通常采用 EPROM,E2PROM,Flash
工艺。
② FPGA:通常采用 SRAM、反熔丝 (Actel 公司 )
工艺。
22
二,PLD的制造工艺分类
1.一次性编程的 PLD
2.紫外线可擦除的 PLD(EPLD)
20min,几十次。
3.电可擦除的 PLD(EEPLD)
10ms,上千次 。
4.采用 SRAM结构的 PLD
无限次。
(熔丝、反熔丝 工艺)
( EPROM工艺)
( E2PROM,Flash工艺)
( SRAM工艺)
23
10.5 可编程逻辑阵列 PLA
一,PLA基本结构图 10.4.1 PLA的基本结构
1 2 3 4 5 6
A
B
C
D
654321
D
C
B
A
T i t l e
N u m be r R e v i s i o nS i z e
B
D a t e,1 8- M a y - 20 0 2 S he e t o f
F i l e,C,\ M y D o c u m e nt s \ 数电课件 \ 第十章,D d b D r a w n B y:
1
A
B
C
输入电路与阵列或 阵 列
F
F
F
1
2
3
1
1
&
≥1
24
二,PLA应用举例例 用 PLA器件实现函数
,)7,6,4,3(),,( 0121 mAAAF
。? )7,4,3,2,0(),,( 0122 mAAAF
解,用 PLA器件实现,需 3个输入端,2个输出端。
用卡诺图法化简,得出 F1,F2的最简与或式:
01020121 ),,( AAAAAAAF
0112010122 ),,( AAAAAAAAAF
相应的实现电路如图 10.5.2所示。
25
图 10.5.2 用 PLA实现组合函数的设计
1 2 3 4 5 6
A
B
C
D
654321
D
C
B
A
T i t l e
N u m be r R e v i s i o nS i z e
B
D a t e,1 8- M a y - 20 0 2 S he e t o f
F i l e,C,\ M y D o c u m e nt s \ 数电课件 \ 第十章,D d b D r a w n B y:
1
1
1
A
A
A
F
F
1
2
0
1
2
&
≥1
26
10.6 可编程阵列逻辑 PAL
除了具有与阵列和或阵列以外,还有输出和反馈电路:
专用输出结构
可编程输入 /输出结构
寄存器输出结构
异或输出结构
27
图 10.6.1 PAL器件的基本电路结构
1 2 3 4 5 6
A
B
C
D
654321
D
C
B
A
T i t l e
N u m be r R e v i s i o nS i z e
B
D a t e,1 8- M a y - 20 0 2 S he e t o f
F i l e,C,\ M y D o c u m e nt s \ 数电课件 \ 第十章,D d b D r a w n B y:
1
I
I
I
输入电路可 编 程与 阵 列固 定 或 阵 列
O
O
O
0
1
2
1
1
0
1
2
&
≥1
28
图 10.6.2 专用输出结构
1 2 3 4 5 6
A
B
C
D
654321
D
C
B
A
T i t l e
N u m be r R e v i s i o nS i z e
B
D a t e,1 8- M a y - 20 0 2 S he e t o f
F i l e,C,\ M y D o c u m e nt s \ 数电课件 \ 第十章,D d b D r a w n B y:
1
1 O
O
输入行
I &
&
≥1
≥1
特点:或非门输出或互补输出常用器件,PAL16L8,PAL20L10等
29
图 10.5.3 可编程输入 /输出结构
1 2 3 4 5 6
A
B
C
D
654321
D
C
B
A
T i t l e
N u m be r R e v i s i o nS i z e
B
D a t e,1 9- M a y - 20 0 2 S he e t o f
F i l e,C,\ M y D o c u m e nt s \ 数电课件 \ 第十章,D d b D r a w n B y:
1
EN
1
1
I /O
输入行
I
&
≥1
( 1)端口既可做输入也可做输出
( 2)做输出端口时,输出信号又可被反馈到输入,构成简单的触发器。
30
图 10.6.4 寄存器输出结构
1 2 3 4 5 6
A
B
C
D
654321
D
C
B
A
T i t l e
N u m be r R e v i s i o nS i z e
B
D a t e,1 9- M a y - 20 0 2 S he e t o f
F i l e,C,\ M y D o c u m e nt s \ 数电课件 \ 第十章,D d b D r a w n B y:
EN
11D
C1
1
C L O C K OE
Q
I
输入行
1
&
≥1
(1)增加了 DFF,整个 PAL的所有 DFF共用一个时钟和输出使能信号。
(2)可构成同步时序逻辑电路
31
图 10.5.5 异或输出结构
1 2 3 4 5 6
A
B
C
D
654321
D
C
B
A
T i t l e
N u m be r R e v i s i o nS i z e
B
D a t e,1 9- M a y - 20 0 2 S he e t o f
F i l e,C,\ M y D o c u m e nt s \ 数电课件 \ 第十章,D d b D r a w n B y:
EN
11D
C1
1
1
1
1
C L O C K OE
Q
I
输入行
&
&
=1
1
增加了异或门,使时序逻辑电路的设计得到简化。
32
例 1:用 PAL设计一个带使能端(低电平有效)的 2/4
线译码器,输出低电平有效。
解:使能输入,?EN;
译码地址输入,A1和 A0;
输出为,?Y0,?Y1,?Y2,?Y3。
由真值表可知:
Y0=?A1?A0,?Y1=?A1A0,?Y2=A1?A0,?Y3=A1A0,
最好选用低电平输出有效的专用输出结构或可编程 I/O
型 PAL。由要求有使能输出,应选用带有三态输出的 PAL
器件。选用 PAL16L8器件实现的简化示意如图:
33
1
1?
EN
1
1?
EN
1
1?
EN
1
1?
EN
1
1
1
EN
A0
A1
Y0
Y1
Y2
Y3
例 1实现电路图
34
10.7 通用阵列逻辑 GAL
一,GAL16V8总体结构
8个输入缓冲器(引脚 2~9) ;
8个输出缓冲 反相 器(引脚 12~19) ;
8个输出反馈 /输入缓冲器 ( 既可做输入也可做输出 ),因此为 16V8;
1个时钟输入缓冲器;
1个选通信号输入 反相 器;
20个引脚的器件;
35
36
37




1
1
1
1
EN?
& 19
2
7
0
0 31 CLK
OLMC
( 19)
38
1.8× 8个与门,可实现 64个乘积项 (Product Term)。
2.每个与门有 32个输入端(每个乘积项可包含
16个变量)。
3.每个输出端最多只能包含 8个乘积项,当表达式逻辑化简后,乘积项数多于 8个时,则必须适当拆开,再分配给另一个 OLMC。
4.最多有 16个引脚作为输入端(指 16个输入变量,CLK不属于输入变量),最多有 8个引脚作为输出端。
39
二、输出逻辑宏单元( OLMC)
1,OLMC的结构:
(1)8输入的或门
(2)异或门:控制输出信号的极性

高电平有效低电平有效(3)DFF
(4)4个多路选择器
① 乘积项多路选择器 (PTMUX — Product Term
Multiplexer)
40
② 三态多路选择器 (TSMUX)
③ 输出多路选择器 (OMUX)
④ 反馈多路选择器 (FMUX)
1 1 1
1 1 0
1 0 1
1 0 0
0 1 1
0 1 0
0 0 1
0 0 0
I/O( n)
Q
来自邻级输出 (m)
AC0
AC1(n)
AC1(m)
12,19号 OLMC中的 FMUX:
AC0为 SYN,AC1(m)为 SYN。
41图 10.6.2 OLMC的结构框图
42
表 10.7.1 FMUX的控制功能表
AC0 AC1(n) AC1(m) 反馈信号来源
1 0 × 本单元触发器 Q端
1 1 × 本单元 I./O端
0 × 1 邻级 (m)输出
0 × 0 低电平,0”(地 )
* *
*在 OLMC(12)和 OLMC(19)中 SYN代替 AC0,SYN代替
AC1(m)。
43
2.GAL16V8的结构控制字
GAL16V8的各种配置由结构控制字确定 。
图 10.7.3 GAL16V8结构控制字的组成
32位乘积项禁止位
4位
XOR(n)
1位
SYN
8位
AC1(n)
1位
AC0
4位
XOR(n)
32位乘积项禁止位
82位
12~ 15 16~ 1912~ 19
(n) (n) (n)
PT63~ PT32 PT31~ PT0
44
3.OLMC的配置
1
EN?
1
CLK
NC
NC
OE
NC
NC
来自邻级输出 (m)
至另一个邻级
CLK OE
(a)专用输入模式
45
(b)专用组合输出模式
1
EN?
1
CLK
NC
OE
NC
=1
1? Vcc
XOR(n)
NC NC
NC
CLK OE
46
1
EN
1
CLK
NC
OE
NC
=11?
XOR(n)
NC
CLK
NC
OE
来自邻级输出( m)
OLMC(n)

I/O(n)
NC
来自与阵列反馈
( c) 反馈组合输出模式
47
( d) 时序电路中的组合输出模式
1
EN?
1
CLK OE
=11?
XOR( n)
CLK OE 来自邻级输出 (m)

I/O(n)
NC
来自与阵列反馈
48
(e)寄存器输出模式
1
EN?
1
CLK OE
=11?
XOR(n)
CLK OE
来自邻级输出( m)

I/O(n)
NC
来自与阵列反馈
OLMC(n)
Q
D
>
Q
图 10.7.4 OLMC的 5种工作模式下的简化电路
49
三、行地址结构图 10.6.5 GAL16V8编程单元的地址分配移 位 寄 存 器与逻辑阵列 与逻辑阵列
PT63 PT32 PT31
PT00
31
32 电 子 标 签 电 子 标 签保 留 地 址 空 间
33
59
结 构 控 制 字60 82位加密单元保留整体擦除
61
62
63
SDOSDI
SCL
K
行地址
50
熔丝图
0000 0000
0011 1010……
对应 ×××× ××××
×× - - - × - ×……共
64

0 31
SUPPER/ L编程器采用 下拉式菜单 技术和 多窗口 技术,人机界面良好,操作使用简单,我们以它为例进行编程介绍。
51
例 1:用 GAL设计一个带使能端(低电平有效)的 2/4
线译码器,输出低电平有效。
解:
2个信号输入 A1,A0;
一个使能控制端,4个输出端。
选择?EN由 11引脚输入,
Y3,?Y2,?Y1,?Y0分别由 OLMC( 12) ~OLMC( 15)
提供。
应配置为专用组合输出模式,AC0=0,AC1=1;
XOR=0; SYN=1;乘积项数为 1。
52
OLMC(n) 乘积项数
SYN AC0 AC1
( n)
XOR
( n)
输出极性配置模式
15
14
13
12
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
低电平低电平低电平低电平专用组合专用组合专用组合专用组合
OLMC的配置:
53
例 10.7.1 人的血型有 A,B,AB,O型 4种。输血时输血者的血型与受血者的血型必须符合图 10.7.6所示的关系。
试用 1片 GAL16V8设计一个逻辑电路,判断输血者的血型与受血者的血型是否符合上述规定。
输血者血型 受血者血型
A
B
AB
O
A
B
AB
O
54
解:设定输血者血型用 X1,X2表示,
受血者血型用 X3,X4表示 。
取值组合为 00~ 11时,分别表示血型为 A,B,AB,O型;
输出为 F:取值为 1时,表示血型相符,
否则,表示血型不符 。
根据题意得到真值表为:
55
X1 X2 X3 X4 F
0 0 0 0 1
0 0 0 1 0
0 0 1 0 1
0 0 1 1 0
0 1 0 0 0
0 1 0 1 1
0 1 1 0 1
0 1 1 1 0
1 0 0 0 0
1 0 0 1 0
1 0 1 0 1
1 0 1 1 0
1 1 0 0 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 1
例 10.7.1的真值表
56
由真值表,经卡诺图法化简
X3X4
X1X2
00 01 11 10
00 1 1
01 1 1
11 1 1 1 1
10 1
4321432421 XXXXXXXXXXF
57
NAME XUEXING;
PARTNO 2004-06-07-01 ;
REV V1.0;
DATE 2004-06-07;
DESIGNER YHX;
COMPANY NUMBERONE;
ASSEMBLY N0.1;
LOCATION 11-1;
/* INPUT PINS */
PIN[1,2,3,4]=[X1,X2,X3,X4];
/* OUTPUT PINS */
PIN 19 = F;
/* LOGIC EQUATIONS */
F= !X1&!X2&!X4 # X2&!X3&X4 # X1&X2 # X3&!X4;
/* END */
采用 CUPL软件实现,用文本方式描述待设计电路的逻辑功能。
建立设计输入文件( xuexing.pld)如下:
58
更改器件类型选择器件器件型 号器件生产商器件类型选择
PLD器件_
GAL20V8A
(由
Lattice公司生产)_
SELECT确认所作的变化
59
查看缓冲区内容缓冲区的内容全部为,1,,表示所有编程点都是 断开 的( 不连接 )
60
载入 JED文件 编 程选择 FILE _ LOAD,找到刚才已经编译好的 JEDEC文件 ( B_ SHIF,JED),单击 OK确定
61
更改缓冲区内容编 程我们再次查看缓冲区,里面的 内容 已经 改变
(和载入的 JED文件内容相一致 )
62
编 程选择 PROGRAM_ RUN,进入编程界面选择
PROGRAM命令,然后按回车 键( 是
Enter键而不是 OK),
完成后显示编程成功 信息
63
电子器件工程联合会( Joint Electron
Device Engineering Council)制定了 PLD数据交换的标准-- JEDEC格式文件,对 PLD器件编程时加以限制。 根据该文件,将 PLD器件中的某些编程点 烧断,某些编程点 保留,使编程后的器件能够完成特定的逻辑功能.这是编写
PLD文件所 必须遵守 的,这样便于 PLD之间的 数据交换,也便于 使用通用编程器 。
64
JEDEC文件的格式是用0和1矩阵表示 PLD的编程点,
0表示编程连接,1表示不连接。

11111111
00000000
00000000
11101011
11111101
1;0;; 5431223__1 PPPIIPIP
对于与阵列来讲,P5使输出 O始终为 1,这是不可取的!
分析,

* * *
I3 I2 I1 I0
P1
P2
P3
P4
P5
O
65
管脚及命名图
1
2
3
4
5
6
7
8
9
10
20
19
18
17
16
15
14
13
12
11
IO/CLK
I1
I2
I3
I4
I5
I6
I7
I8
GND
Vcc
I/O7
I/O6
I/O5
I/O4
I/O3
I/O2
I/O1
I/O0
I9/OE
GAL16V8
66
作业题
10.1