第十章 可编程逻辑器件
PLD,Programmable Logic Device
概述每个器件的逻辑规模小,功耗相对比 较大,用其构成的系统布线复杂,占 用 PCB ( Printed Circuit
Board) 板面积大。
按逻辑功能数字电路可分为,
1,通用型,TTL74系列,CMOS4000系列等。
2.专用型:
把系统的全部或部分模块集成在一个芯片内,称为 专用集成电路 ASIC (Application Specific Integrated
Circuit)。可以降低功耗、提高系统的可靠性、保密性及工作速度。
ASIC是一种由用户定制的集成电路。又可以分为 全定制电路和半定制电路。
半定制电路,首先由制造厂制成标准的半成品,
然后由制造厂根据用户提出的逻辑要求,再对半成品进行加工,实现 预定的数字系统芯片。
全定制电路,制造厂按用户提出的逻辑要求,专门设计和制造的芯片。这类芯片专业性强,适合在大批量定性生产的产品中使用。常用的有电子表机芯、存储器、中央处理器 CPU芯片等。
硬件的软化设计随着集成电路制造工艺和编程技术的提高,
早期的半定制电路的设计和编程都离不开制造厂。
从 20世纪 70年代末开始,发展了一种称为可编程逻辑器件( PLD)的 半定制芯片 。 PLD芯片内的硬件资源和连线资源也是由制造厂生产好的,但用户可以借助功能强大的设计自动化软件
(也称设计开发软件)和编程器,进行设计编程,
实现所希望的数字系统。
PLD的出现中小规模可编程器件可编程器件外形图算法设计和电路划分图形输入和文本输入编译和逻辑仿真设计实现目标文件下载
PLD的开发流程图开发环境
1.PLD开发软件,
Logical Devices 公司的 CUPL软件
Altera MAX+Plus II; Altera Quartus II
Xilinx Fundation 3.1; Xilinx ISE 5.X;
Lattice ISP Synario System
通常这些软件只能开发本公司生产的器件。
1.可编程器件的下载方式通用编程器
10.2 PLD的基本结构一,PLD实现各种逻辑功能的依据在数字系统设计中,任何组合逻辑函数都能用
“与 –或”式表达,从而可用“与”门和“或”
门实现,而任何时序电路都是由组合电路加上存储元件( FF)构成的,这就是 PLD实现各种逻辑功能的 理论依据 。
ISP和 CPLD的内部电路就是依据这一原理设计的。其总体结构如图 10.2.1所示。
二、传统 PLD的总体结构图 10.2.1 传统 PLD的总体结构输出电路输入电路与阵列或阵列外部数据输入数据输出输入项 乘积项 和项反馈
……
X1
Xj
Z1
Zk
Q1
Qm
W1
Wl
X
Q
Z
W
… …
… …
图 6.1.1 时序电路的结构框图
10.3 PLD的表示方法
1、互补缓冲电路
1A AA A
A
A
2.固定连接 3.编程连接 4.断开(被擦除)
5.与逻辑
Z=ACE
&
A B C D E
Z=A+C+E
6.或逻辑
A B C D E
7、多路选择器
00
01
10
11
A
B
C
D
C0
F
C1
常用的几类具有代表性的 PLD器件的结构及其工作原理,即:
PLA?PAL?GAL?CPLD?FPGA?ISP。
主要 PLD的半导体厂商有:
Xilinx公司?Altera公司?Lattic公司
10.4 PLD的分类一,PLD的集成度分类图 10.4.1 PLD的 密度分类可编程逻辑器件 PLD
低密度可编程逻辑器件 LDPLD
高密度可编程逻辑器件 HDPLD
PROM PLA PAL GAL CPLD FPGA
分 类 与阵列 或阵列 输出电路 出现年代
PROM 固定 可编程 固定 70年代初
PLA 可编程 可编程 固定 70年代中
PAL 可编程 固定 固定 70年代末
GAL 可编程 固定 可配置 80年代初
1.低密度可编程逻辑器件 (LDPLD:Low-Density PLD)
输出电路输入电路与阵列或阵列外部数据输入数据输出输入项 乘积项 和项反馈
……
注意,LDPLD的分类与结构要记住。
(1) PROM — 可编程只读存储器
I2 I1 I0
O2 O1 O 0
与阵列
(固定 )
或阵列
(可编程 )
缺点:
只能实现标准与或式
芯片面积大,开关矩阵大,导致速度慢
利用率低,不经济用途:
存储器
函数表
显示译码电路
(Programmable Read Only Memory)
(2) PLA — 可编程逻辑阵列
I2 I1 I0
O2 O1 O 0
与阵列
(可编程 )
或阵列
(可编程 ) 优点:? 与阵列、或阵列都可编程
能实现最简与或式缺点:
价格较高
资源利用率不高
(Programmable Logic Array)
(3) PAL — 可编程阵列逻辑
I2 I1 I0
O2 O1 O 0
与阵列
(可编程 )
或阵列
(固定 )
优点:
速度高
价格低
采用编程器现场编程缺点:
输出方式固定一次编程
(Programmable Array Logic)
(4) GAL — 通用阵列逻辑
I2 I1 I0
O2 O1 O 0
与阵列
(可编程 )
或阵列
(固定 )
优点:
具有 PAL 的功能
采用逻辑宏单元使输出自行组态
功能更强,使用灵活,应用广泛
(Generic Array Logic)
(1)CPLD (Complex PLD) 20世纪 80年代中。
结构与 LDPLD不同,通常采用一系列独立的可编程逻辑模块阵列组成,通过布线资源将其连接。
2.高密度可编程逻辑器件 (HDPLD:High-Density PLD)
集总式其特点,是总线上任意一对输入端与输出端之间的延时相等,且是可预测的。
C
B A
集总式互连
(2) FPGA(Field Programmable Gate Array)
20世纪 80年代中。
分布式其特点,是互连方式较多,有通用互连、直接互连、长线等方式。实现同一个功能可能有不同的方案,其延时是不等的。而且一般情况下比 CPLD大。
C
B
A
分布式互连二,PLD的制造工艺分类
1.一次性编程的 PLD
2.紫外线可擦除的 PLD(EPLD)
20min,几十次。
3.电可擦除的 PLD(EEPLD)
10ms,上千次 。
4.采用 SRAM结构的 PLD
无限次。
( 熔丝、反熔丝 工艺)
( SRAM工艺)
10.5 可编程逻辑阵列 PLA
一,PLA基本结构图 10.4.1 PLA的基本结构二,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所示。
图 10.5.2 用 PLA实现组合函数的设计
&
≥1
例:试用 PLA实现 4位二进制码到 Gray码的转换。
解:利用卡诺图化简得最简与或式:
01010
12121
23232
33
AAAAD
AAAAD
AAAAD
AD



与阵列或阵列
A3
A2
A1
A0
D3
D2
D1
D0
01010
12121
23232
33
AAAAD
AAAAD
AAAAD
AD



时序型 PLA基本结构图
PLA的与或阵列只能构成组合逻辑电路,若在 PLA中加入触发器 则可构成时序型 PLA,实现 时序逻辑电路 。
与阵列或阵列
· · ·
·· ·
X1
Xn
触发器
· · ·
··· Z1Z
m
W1
Wl
Qk
Q1
· · ·
· · ·
1 1 1
0 0 0
0 1 0
1 0 0
例:试用 PLA和 JK触发器实现 2位二进制可逆计数器 。 当
X=0时,进行加法计数; X=1时,进行减法计数 。
解,X为控制信号,Y为进位(借位)输出信号。
X/Y
Q2Q1
00
11 10
0/0
1/0
1/1 1/0
1/0
0/0
0/1 0/0
01
0 0 0
0 0 1
0 1 0
0 1 1
Y Q Q Q Q X 1n1n nn 1212
1 0 0
1 0 1
1 1 0
1 1 1
0 1 0
1 0 0
1 1 0
0 0 1
① 画状态图 ② 列状态转移表
③ 求状态、驱动和输出方程
1
2
nQ
的卡诺图
X 00 01 11 10
0 0 1 0 1
1 1 0 1 0
nn QQ
12
1
1
nQ
的卡诺图
X 00 01 11 10
0 1 0 0 1
1 1 0 0 1
nn QQ
12
Y 的卡诺图
X 00 01 11 10
0 0 0 1 0
1 1 0 0 0
nn QQ
12
比较得激励方程:
nn QXQXKJ
KJ
1122
11 1


④ 画阵列图
1J
>C1
1K
1J
>C1
1K
X
1
CP
Q1
Q2
Y
nn QXQXKJ
KJ
1122
11 1


nnnn QQXQQXY
1212
10.6 可编程阵列逻辑 PAL
除了具有与阵列和或阵列以外,还有输出和反馈电路:
专用输出结构
可编程输入 /输出结构
寄存器输出结构
异或输出结构图 10.6.1 PAL器件的基本电路结构图 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 b e r R e vi s i o nS i z e
B
D a t e,1 8- M a y - 20 02 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
特点:或非门输出或互补输出目前常用的产品有 PAL10H8(10输入,8输出,高电平输出有效 ),PAL10L8,PAL16C1(16输入,1输出,互补型输出 )等。
图 10.5.3 可编程输入 /输出结构这种结构的或门输出经过三态输出缓冲器,可 直接送往输出,也可再经互补输出的缓冲器 反馈 到与阵列输入。
即它 既可作为输出用,也可作为输入用 。用于 实现复杂的组合逻辑电路 。
图 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 b e r R e vi s i o nS i z e
B
D a t e,1 9- M a y - 20 02 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
增加了 DFF,整个 PAL的所有 DFF共用一个时钟和输出使能信号。 可构成 同步时序 逻辑电路。
目前常用的产品有 PAL16R4,PAL16R8(R表示寄存器输出型 )等。
增加了 异或门,使时序逻辑电路的 设计得到简化 。
目前常用的产品有 PAL20X4,PAL20X8(X表示异或输出型 )等。
例 1:用 PAL设计一个带使能端(低电平有效)的 2/4
线译码器,输出低电平有效。
最好选用低电平输出有效的专用输出结构或可编程 I/O型 PAL。由要求有使能输出,应选用带有三态输出的 PAL器件。选用 PAL16L8器件实现的简化示意如图:
1
1?
EN
1
1?
EN
1
1?
EN
1
1?
EN
1
1
1
EN
A0
A1
Y0
Y1
Y2
Y3
例 1实现电路图
Y0=?A1?A0,?Y1=?A1A0,?Y2=A1?A0,?Y3=A1A0
10.7 通用阵列逻辑 GAL
GAL器件的输出端设置了可编程的 输出逻辑宏单元
OLMC( Output Logic Macro Cell),通过编程可以将
OLMC设置成不同的输出方式。这样同一型号的 GAL器件可以实现 PAL器件所有的各种输出电路工作模式,即取代了大部分 PAL器件,因此称为 通用可编程逻辑器件 。
GAL器件分两大类:
1、普通型 GAL,其与或阵列结构与 PAL相似,如 GAL16V8
( V表示输出方式可变 ),GAL20V8,ispGAL16Z8都属于这一类;
2、新型 GAL,其与或阵列均可编程,与 PLA结构相似,主要有 GAL39V8。
1,GAL16V8
的内部结构图
1个选通信号输入反相器
8个三态输出缓冲反相器8个输入缓冲器
1个时钟输入缓冲器
20个引脚的器件;
8个输出反馈 /输入缓冲器
8× 8个与门可实现 16个输入变量
1.8× 8个与门,可实现 64个乘积项 (Product Term)。
2.每个与门有 32个输入端(每个乘积项可包含
16个变量)。
3.每个输出端最多只能包含 8个乘积项,当表达式逻辑化简后,乘积项数多于 8个时,则必须适当拆开,再分配给另一个 OLMC。
4.最多有 16个引脚作为输入端(指 16个输入变量,
CLK不属于输入变量),最多有 8个引脚作为输出端。
二、输出逻辑宏单元( OLMC)
1,OLMC的结构:
(1)8输入的或门
(2)异或门:控制输出信号的极性

高电平有效低电平有效(3)DFF
(4)4个多路选择器乘积项数据选择器反馈数据选择器三态数据选择器输出数据选择器表 10.7.1 FMUX的控制功能表
AC0 * AC1(n) AC1(m) * 反馈信号来源
1 0 × 本单元触发器?Q端
1 1 × 本单元 I./O端
0 × 1 邻级 (m)输出
0 × 0 低电平,0”(地 )
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)
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
3.OLMC的配置
(b)专用组合输出模式
1
EN?
1
CLK
NC
OE
NC
=1
1?
Vcc
XOR(n)
NC NC
NC
CLK OE
1
EN?
1
CLK
NC
OE
NC
=11?
XOR(n)
NC
CLK
NC
OE
来自邻级输出( m)
OLMC(n)


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


I/O(n)
NC
来自与阵列反馈
OLMC(n)
Q
D
>
Q
图 10.7.4 OLMC的 5种工作模式下的简化电路移 位 寄 存 器保 留 地 址 空 间与阵列电子标签与阵列电子标签结 构 控 制 字
SCLK
SDI SDO
PT63 PT32 PT31 PT0
0
31
32
33
59
60
61
62
63
加密单元备用整体擦除行地址
GAL16V8行地址结构示意图对应 64个乘积项的编程信息,每列对应一个乘积项,共有 32个原变量输入和反变量输入 (含反馈 )。
用户可编程,用来配置
OLMC的工作模式 。
串行输入 串行输出用于编程数据流的输入和校验
1位,防止电路设计的非法抄袭三、行地址结构
82位例 10.7.1 人的血型有 A,B,AB,O型 4种。输血时输血者的血型与受血者的血型必须符合图 10.7.6所示的关系。试用 1片 GAL16V8设计一个逻辑电路,判断输血者的血型与受血者的血型是否符合上述规定。
输血者血型 受血者血型
A
B
AB
O
A
B
AB
O
解:设定输血者血型用 X1,X2表示,
受血者血型用 X3,X4表示 。
取值组合为 00~ 11时,分别表示血型为 A,B,AB,O型;
输出为 F:取值为 1时,表示血型相符,
否则,表示血型不符 。
根据题意得到真值表为:
由真值表,经卡诺图法化简
X3X4
X1X2
00 01 11 10
00 1 1
01 1 1
11 1 1 1 1
10 1
4321432421 XXXXXXXXXXF
NAME XUEXING;(指定编译后的 jed文件名)
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)如下:
1
2
3
4
5
6
7
8
9
10
20
19
18
17
16
15
14
13
12
11
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
4321432421 XXXXXXXXXXF
X1
X2
X3
X
4
F
4321432421 XXXXXXXXXXF
1
熔丝图
0000 0000
0011 1010……?对应
×××× ××××
×× - - - × - ×……共
64

0 31
SUPPER/ L编程器采用 下拉式菜单 技术和 多窗口 技术,人机界面良好,操作使用简单,我们以它为例进行编程介绍。
更改器件类型选择器件器件型 号器件生产商器件类型选择
PLD器件_
GAL16V8A
(由
Lattice公司生产)_
SELECT确认所作的变化查看缓冲区内容缓冲区的内容全部为“1”,表示所有编程点都是 断开 的 (不连接)
编 程选择 FILE _ LOAD,找到刚才已经编译好的 JEDEC文件( B_ SHIF,JED),单击 OK确定载入 JED文件更改缓冲区内容编 程我们再次查看缓冲区,里面的内容已经改变
(和载入的 JED文件内容相一致 )
编 程选择 PROGRAM_ RUN,进入编程界面选择
PROGRAM命令,然后按回车键(是
Enter键而不是 OK),
完成后显示编程成功信息作业,10.1
10.6
10.10