920 likes | 1.17k Vues
第八章 可编程逻辑器件( PLD ). 学习完本章后,应该能做到: 阐明可编程逻辑器件 PLD 的有关概念。 简述 PAL 和 GAL 器件的结构组成、应用特点及其编程方法。 简述 EPLD 和 CPLD 器件的结构组成、应用特点及其编程方法。 说明 ISP — PLD 器件的结构组成及应用特点。 说明 FPGA 器件的结构组成及应用特点。. 8.1 概 述. 1. 标准集成电路
E N D
第八章 可编程逻辑器件(PLD) • 学习完本章后,应该能做到: • 阐明可编程逻辑器件PLD的有关概念。 • 简述PAL和GAL器件的结构组成、应用特点及其编程方法。 • 简述EPLD和CPLD器件的结构组成、应用特点及其编程方法。 • 说明ISP—PLD器件的结构组成及应用特点。 • 说明FPGA器件的结构组成及应用特点。
8.1 概 述 1.标准集成电路 标准集成电路是指那些逻辑功能固定的集成电路。它具有很强的通用性,其电路的电气指标、封装等在国内外均已标准化,并印有公开发行的用户手册,供大家选用。SSI、MSI、LSI以及VLSI中那些完成基本功能和通用功能的集成电路,如与非门、异或门、触发器、加法器、乘法器、各类存储器以及通用寄存器堆等,都属于标准集成电路。
当我们采用标准集成电路设计逻辑电路系统时,需要进行选片、系统设计和连线等方面的工作。虽然标准集成电路品种繁多,发展也很快,但用户只能在已生产的集成电路品种中选择,所以在改进和调试系统时需要修改印制版,从而使研制周期变长、成本增加。同时,采用标准集成电路的逻辑电路系统存在集成度低,可靠性、维护性差等缺点。当我们采用标准集成电路设计逻辑电路系统时,需要进行选片、系统设计和连线等方面的工作。虽然标准集成电路品种繁多,发展也很快,但用户只能在已生产的集成电路品种中选择,所以在改进和调试系统时需要修改印制版,从而使研制周期变长、成本增加。同时,采用标准集成电路的逻辑电路系统存在集成度低,可靠性、维护性差等缺点。
本章讨论的可编程逻辑器件(Programmable Logic Devices,简称PLD)具有标准集成电路和半定制电路二者的特征。一方面,它的全功能集成电路块和标准集成电路一样,不同的生产厂家可以生产相同结构和品种的电路,并印有统一的用户手册,用户可以根据自己的需求来挑选不同的品种。另一方面,用户买到这种集成电路后不能马上使用,要根据自己的电路设计进行编程,再用专门的编程器将他们“烧制”成需要的电路。因此,从工厂生产、设计和销售的角度来看,它属于标准集成电路,从用户要作设计和“烧制”的角度来看,则又属于半定制电路。
根据可编程逻辑器件问世的时间,我们把PROM、PLA、PAL和GAL称为早期的可编程逻辑器件,把CPLD及FPGA称为近代的可编程逻辑器件。也有人把它们分别称为低密度PLD和高密度PLD。PLD产品种类很多,由于本书篇幅所限,本章仅介绍PROM、PLA、PAL、GAL、FPGA及CPLD等可编程逻辑器件的表示方法、基本电路结构及其基本应用。具体编程、开发应用请参考有关书籍。根据可编程逻辑器件问世的时间,我们把PROM、PLA、PAL和GAL称为早期的可编程逻辑器件,把CPLD及FPGA称为近代的可编程逻辑器件。也有人把它们分别称为低密度PLD和高密度PLD。PLD产品种类很多,由于本书篇幅所限,本章仅介绍PROM、PLA、PAL、GAL、FPGA及CPLD等可编程逻辑器件的表示方法、基本电路结构及其基本应用。具体编程、开发应用请参考有关书籍。
典型的PLD器件一般都是由与阵列、或阵列,起缓冲驱动作用的输入逻辑和输出逻辑组成,其通用结构框图如图8―2所示。其中,每个输出数据都是输入的与或函数。与阵列的输入线和或阵列的输出线都排成阵列结构,每个交叉处用逻辑器件或熔丝连接起来。逻辑编程的物理实现,一般都是通过熔丝或PN结的熔断和连接,或者对浮栅的充电和放电来实现的。典型的PLD器件一般都是由与阵列、或阵列,起缓冲驱动作用的输入逻辑和输出逻辑组成,其通用结构框图如图8―2所示。其中,每个输出数据都是输入的与或函数。与阵列的输入线和或阵列的输出线都排成阵列结构,每个交叉处用逻辑器件或熔丝连接起来。逻辑编程的物理实现,一般都是通过熔丝或PN结的熔断和连接,或者对浮栅的充电和放电来实现的。
8.2.1 可编程逻辑器件(PLD)的表示方法 • 由于PLD器件的阵列连接规模十分庞大,为了便于了解PLD的逻辑关系,PLD器件的逻辑图中使用的是一种简化表示方法。PLD器件阵列交点处的几种连接方式如图8―3所示。连线交叉处有实点的,表示固定连接;连线交叉处有符号“×”的,表示编程连接;连线交叉处无任何符号的,表示不连接或是擦除单元。
输出是Y=P1+P2 P=AC 图8―4 常用门电路在PLD中的表示法 (a)与门;(b)或门;(c)输入缓冲器; (d)三态输出缓冲器;(e)非门
如果当所有输入的原码和反码在乘积项处都打“×”,即表示所有的连接点都是编程连接,如图8―5(a)所示,那么就有 ,此时可以简化为图8―5(b)的表示方式。 图8―5 PLD的默认表示方法
图8―6是一个简单的组合逻辑 在SSI中的逻辑图和在PLD中的逻辑图实例。图8―6(a)所示的组合逻辑电路,它的PLD表示法如图8―6(b)所示。 图8―6 组合逻辑在SSI中和在PLD中的逻辑图
第八章 可编程逻辑器件(PLD) PLD的分类 • 一般说来,PLD器件可以分为以下几类: • 可编程只读存储器(PROM) • 可编程逻辑阵列(PLA) • 可编程阵列逻辑(PAL) • 通用阵列逻辑(GAL) • 高密度可编程逻辑器件(CPLD、FPGA) • 在系统可编程逻辑器件(ISP—PLD)
它包含一个固定的“与”阵列和一个可编程的“或”阵列它包含一个固定的“与”阵列和一个可编程的“或”阵列 它的“与”阵列是一个“全译码阵列”,即对某一组特定的输入Ii(i=0,1,2)只能产生一个惟一的乘积项。因为是全译码,当输入变量为n个时,阵列的规模为2n,所以PROM的规模一般很大。 图8―7 基本PROM结构
可编程逻辑阵列(Programmable Logic Array,简称PLA),也称现场可编程逻辑阵列(FPLA)的出现,弥补了PROM这些不足。它的基本结构为“与”阵列和“或”阵列,且都是可编程的 图8―8 基本PLA结构 实现比较简单的逻辑功能比较浪费,且PLA的价格昂贵,相应的编程工具也比较贵
其基本结构包含一个可编程的“与”阵列和一个固定的“或”阵列其基本结构包含一个可编程的“与”阵列和一个固定的“或”阵列 PAL器件“与”阵列的可编程特性使输入项增多,而“或”阵列的固定又使器件简化,所以这种器件得到了广泛应用。 图8―9 基本PAL结构
通用阵列逻辑(General Array Logic,简称GAL) 图8―10 基本GAL结构 它具有可擦除、可重复编程和可加密等特点。目前常用的GAL器件有GAL18V8和GAL20V8两种,它们能仿真所有的PAL器件。
它与PAL器件相比,在结构上的显著特点是输出采用了宏单元(OLMC)。也就是说,PAL器件的可编程“与”阵列是送到一个固定的“或”阵列上输出的,而GAL器件的可编程“与”阵列则是送到OLMC上输出的。通过对OLMC单元的编程,器件能满足更多的逻辑电路要求,从而使它比PAL器件具有更多的功能,设计也更为灵活。它与PAL器件相比,在结构上的显著特点是输出采用了宏单元(OLMC)。也就是说,PAL器件的可编程“与”阵列是送到一个固定的“或”阵列上输出的,而GAL器件的可编程“与”阵列则是送到OLMC上输出的。通过对OLMC单元的编程,器件能满足更多的逻辑电路要求,从而使它比PAL器件具有更多的功能,设计也更为灵活。
现场可编程门阵列(Field Programmable Gate Array,简称FPGA) 它是超大规模集成电路(VLSI)技术发展的产物,它弥补了早期可编程逻辑器件利用率随器件规模的扩大而下降的不足。 FPGA器件集成度高,引脚数多,使用灵活。 图8―11 FPGA基本结构
由可编程逻辑块(或宏单元)(Configurable Logic Block,简称CLB)、可编程输入/输出块(Input/Output Block,简称IOB)和布线通道中可编程内部连线(Programmable Interconnect,简称PI)构成,其基本结构如图8―11所示。PLD与FPGA之间的主要差别是PLD通过修改具有固定内部连线的电路的逻辑功能来进行编程,而FPGA可以通过修改CLB或IOB的功能来编程,也可以通过修改连接CLB的一根或多根内部连线的布线来编程。对于快速周转的样机,这些特性使得FPGA成为首选器件,而且FPGA比PLD更适合于实现多级的逻辑功能。
复杂可编程逻辑器件CPLD 图8―12 CPLD基本结构 和FPGA同期出现,由位于中心的互连矩阵把多个类似PAL的功能块(Function Block,简称FB)连接在一起,且具有很长的固定的布线资源的可编程器件
8.3 可编程阵列逻辑(PAL) • PAL器件的生产和应用始于20世纪70年代,它采用双极型TTL制作工艺和熔丝编程方式。其优点是速度快,与CMOS电路接口方便。
所谓编程,就是将有用的熔丝保留(用×表示),将无用的熔丝熔断,即得到所需的电路所谓编程,就是将有用的熔丝保留(用×表示),将无用的熔丝熔断,即得到所需的电路 “或”逻辑阵列是固定的(即:不可编程的) 图8―13 PAL器件的基本结构图 Yi=P0+P1+P2…+Pm
PAL器件的输出结构 • 在品种较多的PAL器件中,其“与”阵列的结构是类同的,不同的是门阵规模的大小和输出电路的结构。常见的输出结构有组合型输出和寄存器型输出两类。 • 1.组合型输出结构 • 组合输出型结构适用于组合电路。常见的有或门输出、或非门输出、与或门输出、与或非门输出以及带互补输出端的或门等。或门的输入端数不尽相同,一般在2~8个之间。有的输出还兼做输入端。组合型输出结构中包含专用输出结构和可编程输入/输出结构两种。
1)专用输出结构 图8―14给出的PAL电路属于这种结构,它的输出端是一个与或门。输出端只能输出信号,不能兼做输入。 2)可编程的输入/输出结构 图8―15 PAL的可编程输入/输出结构
当三态门的控制端为高电平时,三态门为选通状态,或门的输出通过三态门输出到I/O端,同时该输出通过反馈输入缓冲器馈送到可编程的与阵列中,故此时对应的I/O端引线同时具有输入、输出功能。由此可见,通过控制三态门,或门的输出不但可以输出到I/O端,还可以馈至与阵列作为反馈输入,以实现更复杂的逻辑关系。这种结构为串行数据移位的操作提供双向输出功能。当三态门的控制端为高电平时,三态门为选通状态,或门的输出通过三态门输出到I/O端,同时该输出通过反馈输入缓冲器馈送到可编程的与阵列中,故此时对应的I/O端引线同时具有输入、输出功能。由此可见,通过控制三态门,或门的输出不但可以输出到I/O端,还可以馈至与阵列作为反馈输入,以实现更复杂的逻辑关系。这种结构为串行数据移位的操作提供双向输出功能。
2.寄存器型输出结构 • 寄存器输出型结构适用于组成时序电路。这种输出结构是在或门之后增加了一个由时钟上升沿触发的D触发器和一个三态门,并且D触发器的输出还反馈到可编程的与阵列中进行时序控制。寄存器型输出结构中包含有寄存器输出、异或加寄存器输出和算术运算反馈三种结构 1)寄存器输出结构
2)异或加寄存器输出结构 异或加寄存器输出结构如图8―17所示。其输出部分有两个或门,它们的输出经一个异或门后,再接到D触发器经三态缓冲器输出。用这种结构的PAL实现二进制计数是很方便的,因为二进制计数器的次态方程可以写成相邻触发器状态的异或。 图8―17 PAL的异或加寄存器输出结构
3)算术运算反馈结构 其特点是D触发器的输出和可编程的与阵列的某一输入信号经过四种不同的或门运算后,反馈到可编程的与阵列中,使得与阵列的与门输入含有或运算因子。这四种不同的或门运算后得到信号 图8―18 PAL的算术运算反馈的输出结构
PAL的优点: ① 提高了功能密度,节省了空间。通常一片PAL可以代替4~12片SSI或2~4片MSI。同时,虽然PAL只有20多种型号,但可以代替90%的通用器件,因而进行系统设计时,可以大大减少器件的种类。 ② 提高了设计的灵活性,且编程和使用都比较方便。 ③ 有上电复位功能和加密功能,可以防止非法复制。
8.4 通用阵列逻辑(GAL) PAL器件已经给逻辑设计者带来了很大的灵活性,但是PAL器件采用熔丝工艺,一旦编程(烧录)后便不能改写。另外,虽说PAL器件的输出结构有多种形式,但对每一种型号的PAL器件来说,其输出结构是固定的,用户不能改变,且型号太多,通用性差,使设计者在选择最佳型号时遇到困难。 通用阵列逻辑器件GAL不但弥补了上述不足,而且还能和PAL器件100%地兼容。表8―3列出了常用GAL器件GAL18V8和GAL20V8可替代的PAL器件。
GAL分为两大类: 一类是普通型,它的与、或结构与PAL相似,如GAL16V8,GAL20V8等。 另一类为新型,其与、或阵列均可编程,与PLA相似,主要有GAL39V8。 例:普通型GAL16V8的基本特点。 (1)GAL的基本结构。 ① 8个输入缓冲器和8个输出反馈/输入缓冲器。 ② 8个输出逻辑宏单元OLMC和8个三态缓冲器,每个OLMC对应一个I/O引脚。
图8―19 GAL18V8的电路结构图 它有一个32×64位的可编程“与”逻辑阵列、8个输出逻辑宏单元(OLMC)、九个输入缓冲器、八个三态输出缓冲器和八个反馈/输入缓冲器。 GAL的“与”阵列的每个交叉点上设有E2CMOS存储单元,编程和擦除都用电完成,并可反复编程。它没有独立的“或”阵列,而是将或门放在各自的输出逻辑宏单元(OLMC)中。
③ 由8×8个与门构成的与阵列,共形成64个乘积项,每个与门有32个输入项,由8个输入的原变量、反变量(16)和8个反馈信号的原变量、反变量(16)组成,故可编程与阵列共有32×8×8=2048个可编程单元。 ④ 系统时钟CK 和三态输出选通信号OE的输入缓冲器。 GAL器件没有独立的或阵列结构,各个或门放在各自的输出逻辑宏单元(OLMC)中。
(2)输出逻辑宏单元(OLMC)的结构 OLMC的逻辑图
或门:有8个输入端,和来自与阵列的8个乘积项(PT)相对应。或门:有8个输入端,和来自与阵列的8个乘积项(PT)相对应。 异或门:用于选择输出信号的极性。 D触发器:使GAL适用于时序逻辑电路。 4个多路开关(MUX):在结构控制字段作用下设定输出逻辑宏单元的状态。
(3)GAL的结构控制字 ① XOR(n):输出极性选择位。共有8位,分别控制8个OLMC的输出极性。异或门的输出D与它的输入信号B和XOR(n)之间的关系为: D =B⊕XOR 当XOR=0时,即D = B; 当XOR=1时,即D =B
② SYN(n):时序逻辑电路/组合逻辑电路选择位。 当SYN=0时,D触发器处于工作状态,OLMC可为时序逻辑电路; 当SYN=1时,D触发器处于非工作状态,OLMC只能是组合逻辑电路。 注意:当SYN=0时,可以通过其它控制字,使D触发器不被使用,这样便可以构成组合逻辑输出。但只要有一个OLMC需要构成时序逻辑电路时,就必须使SYN=0。 ③ AC0、 AC1(n):与 SYN相配合,用来控制输出逻辑宏单元的输出组态。
SYN AC0 AC1 XOR 功 能 输出极性 1 0 1 / 组合逻辑专用输入三态门禁止 / 1 0 0 0 1 组合逻辑专用输出 低有效 高有效 1 1 1 0 1 组合逻辑带反馈双向I/O输出 低有效 高有效 0 1 1 0 1 时序逻辑组合I/O输出 低有效 高有效 0 1 0 0 1 时序逻辑寄存器输出 低有效 高有效 (4)GAL的5种工作模式 只要写入不同的结构控制字,就可以得到不同类型的输出电路结构。
PLA器件的应用 用PLA器件可以进行任何复杂的组合逻辑和时序逻辑设计。 其设计方法是:先根据给定的逻辑关系,推导出逻辑方程或真值表,再把它们直接变换成与已规格化的电路结构相对应的PLA点阵图。下面以实例来介绍PLA器件在组合逻辑和时序逻辑设计中的应用。
下面用一个实例,将用PLA器件实现组合逻辑设计具体化。下面用一个实例,将用PLA器件实现组合逻辑设计具体化。 试用PLA器件实现BCD七段显示译码器。首先,根据8421BCD和七段显示数码管字形的关系可得出BCD码-七段数字译码器的真值表。根据真值表,得出各字段逻辑方程:
在利用PLA实现上述真值表时,因为完全使用了标准的乘积项,所以不需要进行逻辑化简。若选用具有四个输入变量、七个输出变量和十个乘积项的PLA器件,即可实现所示的逻辑功能。根据各字段逻辑方程,按照逻辑方程的“与”项,对应PLA器件中的“与”阵列;逻辑方程的“或”项,对应PLA器件中的“或”阵列的原则,得到如图8―21(b)所示的PLA点阵图。其中,输入是BCD码的变量D、C、B和A,输出是七个字段(a~g)的控制电平。在利用PLA实现上述真值表时,因为完全使用了标准的乘积项,所以不需要进行逻辑化简。若选用具有四个输入变量、七个输出变量和十个乘积项的PLA器件,即可实现所示的逻辑功能。根据各字段逻辑方程,按照逻辑方程的“与”项,对应PLA器件中的“与”阵列;逻辑方程的“或”项,对应PLA器件中的“或”阵列的原则,得到如图8―21(b)所示的PLA点阵图。其中,输入是BCD码的变量D、C、B和A,输出是七个字段(a~g)的控制电平。
图8―21 用PLA实现8421BCD七段显示译码器 (a)七段数码管字形;(b)PLA点阵图
2.用PLA器件实现时序逻辑 • 时序逻辑电路可以用基本组合型的PLA来实现,也可以直接用带反馈触发器的PLA来实现。带反馈触发器的PLA和我们前面所学过的基本组合型PLA只是在输出方式上稍有不同:它的输出不是直接由“或”阵列输出,而是通过“或”阵列后接的一组D触发器输出的。显然,用它来实现时序逻辑会简单些。下面以五进制同步计数器的设计为例来说明用PLA实现同步时序电路的设计方法。
根据我们前面所学的时序电路可知,五进制同步计数器由三级触发器构成,各级触发器的激励方程为根据我们前面所学的时序电路可知,五进制同步计数器由三级触发器构成,各级触发器的激励方程为 若选用具有三个输入变量、三个输出变量和四个乘积项的PLA器件,则得到如图8-22所示的PLA点阵图。其中,输入是D触发器的初态Qn2、Qn1和Qn0。