您好,欢迎访问三七文档
第6章可编程逻辑器件第6章可编程逻辑器件6.1可编程逻辑器件的分类6.2可编程逻辑器件的表示方法和基本结构6.3可编程只读存储器(PROM)6.4可编程逻辑阵列(PLA)6.5可编程阵列逻辑(PAL)6.6通用阵列逻辑(GAL)6.7早期可编程逻辑器件的应用6.8现场可编程门阵列(FPGA)6.9复杂可编程逻辑器件(CPLD)第6章可编程逻辑器件6.1可编程逻辑器件的分类第6章可编程逻辑器件6.2可编程逻辑器件(PLD)的表示方法和基本结构可编程逻辑器件(PLD)PLD指一个集成电路群的集合名称,它包括了PAL、GAL、EPLD、PLS、EPGA等,统称作PLD。第6章可编程逻辑器件典型的PLD器件一般都是由与阵列、或阵列,起缓冲驱动作用的输入逻辑和输出逻辑组成,其通用结构框图如图6―2所示。其中,每个输出数据都是输入的与或函数。与阵列的输入线和或阵列的输出线都排成阵列结构,每个交叉处用逻辑器件或熔丝连接起来。逻辑编程的物理实现,一般都是通过熔丝或PN结的熔断和连接,或者对浮栅的充电和放电来实现的。第6章可编程逻辑器件图6―2PLD器件通用结构框图输入逻辑输入与阵列或阵列输出逻辑乘积项和项……数据输出数据输入第6章可编程逻辑器件6.2.1可编程逻辑器件(PLD)的表示方法由于PLD器件的阵列连接规模十分庞大,为了便于了解PLD的逻辑关系,PLD器件的逻辑图中使用的是一种简化表示方法。PLD器件阵列交点处的几种连接方式如图6―3所示。连线交叉处有实点的,表示固定连接;连线交叉处有符号“×”的,表示编程连接;连线交叉处无任何符号的,表示不连接或是擦除单元。第6章可编程逻辑器件图6―3PLD连接方式的表示法固定连接编程连接擦除单元第6章可编程逻辑器件图6―4是可编程“与”阵列和“或”阵列中常用到的与门、或门、输入缓冲器、三态输出缓冲器及非门的表示方法。图6―4(a)表示一个3输入的与门,其中3条竖线A、B、C均为输入项,输入到与门的一条横线称为乘积项线,输入线与乘积项线的交叉点和“与”阵列中的交叉点相对应,这些交叉点都是编程点。第6章可编程逻辑器件图6―4常用门电路在PLD中的表示法(a)与门;(b)或门;(c)输入缓冲器;(d)三态输出缓冲器;(e)非门(a)AAAAENAAAEN(b)ABCPY(c)(d)(e)P1P2P3第6章可编程逻辑器件由图可见,输入A与乘积项线是固定连接,输入B与乘积项线不相连,输入C与乘积项线是编程连接,所以该与门的乘积项输出是:P=AC。同理,图6―5(b)表示一个3输入的或门,它的输出是Y=P1+P2。第6章可编程逻辑器件图6―4(c)表示输入缓冲器,它有两个互补输出,一个是A,另一个是。PLD的输入往往要驱动若干个乘积项,也就是说,一个输入量的输出同时要接到几个晶体管的栅极(或基极)上,为了增加其驱动能力,就必须通过一缓冲器。不但如此,在与阵列中往往还要用到输入变量的补项,这一功能也同时由驱动电路来完成,因此,在PLD中,每一个输入变量均通过一个具有互补输出的缓冲器。A第6章可编程逻辑器件当I/O端作为输出端时,常常用到具有一定驱动能力的三态控制输出电路。在PLD的逻辑电路中的三态控制输出电路有如图6―4(d)表示的两种形式,一种是控制信号为高电平且反相输出;另一种是控制信号为低电平且反相输出。如果当所有输入的原码和反码在乘积项处都打“×”,即表示所有的连接点都是编程连接,如图6―5(a)所示,那么就有,此时可以简化为图6―5(b)的表示方式。PAABB第6章可编程逻辑器件图6―5PLD的默认表示方法ABP=0(a)AB(b)ABABP=0第6章可编程逻辑器件图6―6是一个简单的组合逻辑在SSI中的逻辑图和在PLD中的逻辑图实例。图6―6(a)所示的组合逻辑电路,它的PLD表示法如图6―6(b)所示。2112Y=II+II第6章可编程逻辑器件图6―6组合逻辑在SSI中和在PLD中的逻辑图1&1&≥1I1I22121IIIII1I22121IIII(a)(b)第6章可编程逻辑器件6.2.2可编程逻辑器件(PLD)的基本结构1.可编程只读存储器可编程只读存储器(ProgrammableReadOnlyMemory,简称PROM)是最早的PLD器件,它出现在20世纪70年代初。它包含一个固定的“与”阵列和一个可编程的“或”阵列,其基本结构图如图6―7所示。PROM一般用来存储计算机程序和数据,它的输入是计算机存储器地址,输出是存储单元的内容。由图可见,它的“与”阵列是一个“全译码阵列”,即对某一组特定的输入Ii(i=0,1,2)只能产生一个惟一的乘积项。因为是全译码,当输入变量为n个时,阵列的规模为2n,所以PROM的规模一般很大。第6章可编程逻辑器件图6―7基本PROM结构I2I1I0O0O1O2“OR”阵列可编程“AND”阵列固定第6章可编程逻辑器件2.可编程逻辑阵列虽然用户能对PROM所存储的内容进行编程,但PROM还存在某些不足,如:PROM巨大阵列的开关时间限制了PROM的速度;PROM的全译码阵列中的所有输入组合在大多数逻辑功能中并不使用。可编程逻辑阵列(ProgrammableLogicArray,简称PLA),也称现场可编程逻辑阵列(FPLA)的出现,弥补了PROM这些不足。它的基本结构为“与”阵列和“或”阵列,且都是可编程的,如图6―8所示。设计者可以控制全部的输入/输出,这为逻辑功能的处理提供了更有效的方法。然而,这种结构在实现比较简单的逻辑功能时还是比较浪费的,且PLA的价格昂贵,相应的编程工具也比较贵。第6章可编程逻辑器件3.可编程阵列逻辑可编程阵列逻辑(ProgrammableArrayLogic,简称PAL),它既具有PLA的灵活性,又具有PROM易于编程的特点,其基本结构包含一个可编程的“与”阵列和一个固定的“或”阵列,如图6―9所示。PAL器件“与”阵列的可编程特性使输入项增多,而“或”阵列的固定又使器件简化,所以这种器件得到了广泛应用。第6章可编程逻辑器件图6―8基本PLA结构O0O1O2“OR”阵列可编程“AND”阵列可编程I2I1I0第6章可编程逻辑器件图6―9基本PAL结构O0O1O2“OR”阵列(固定的)“AND”阵列(可编程的)I2I1I0第6章可编程逻辑器件4.通用阵列逻辑通用阵列逻辑(GeneralArrayLogic,简称GAL),在20世纪80年代初期问世,一般认为它是第二代PLD器件。它具有可擦除、可重复编程和可加密等特点。目前常用的GAL器件有GAL16V8和GAL20V8两种,它们能仿真所有的PAL器件。第6章可编程逻辑器件GAL器件的基本结构如图6―10所示。它与PAL器件相比,在结构上的显著特点是输出采用了宏单元(OLMC)。也就是说,PAL器件的可编程“与”阵列是送到一个固定的“或”阵列上输出的,而GAL器件的可编程“与”阵列则是送到OLMC上输出的。通过对OLMC单元的编程,器件能满足更多的逻辑电路要求,从而使它比PAL器件具有更多的功能,设计也更为灵活。第6章可编程逻辑器件图6―10基本GAL结构CLKOEOLMC第6章可编程逻辑器件5.现场可编程门阵列现场可编程门阵列(FieldProgrammableGateArray,简称FPGA)也称可编程门阵列(ProgrammableGateArray,简称PGA),是近几十年加入到用户可编程技术行列中的器件。它是超大规模集成电路(VLSI)技术发展的产物,它弥补了早期可编程逻辑器件利用率随器件规模的扩大而下降的不足。FPGA器件集成度高,引脚数多,使用灵活。FPGA第6章可编程逻辑器件图6―11FPGA基本结构I/O块逻辑块内部连线第6章可编程逻辑器件由布线分隔的可编程逻辑块(或宏单元)(ConfigurableLogicBlock,简称CLB)、可编程输入/输出块(Input/OutputBlock,简称IOB)和布线通道中可编程内部连线(ProgrammableInterconnect,简称PI)构成,其基本结构如图6―11所示。PLD与FPGA之间的主要差别是PLD通过修改具有固定内部连线的电路的逻辑功能来进行编程,而FPGA可以通过修改CLB或IOB的功能来编程,也可以通过修改连接CLB的一根或多根内部连线的布线来编程。对于快速周转的样机,这些特性使得FPGA成为首选器件,而且FPGA比PLD更适合于实现多级的逻辑功能。第6章可编程逻辑器件6.复杂可编程逻辑器件复杂可编程逻辑器件(ComplexProgrammableLogicDevice,简称CPLD)是和FPGA同期出现的可编程器件。从概念上,CPLD是由位于中心的互连矩阵把多个类似PAL的功能块(FunctionBlock,简称FB)连接在一起,且具有很长的固定的布线资源的可编程器件,其基本结构如图6―12所示。它与FPGA在性能上和功能上的差别稍后再作介绍。第6章可编程逻辑器件图6―12CPLD基本结构InterconnectMatrixI/OI/OFBFBFBFBFBFBFBFB第6章可编程逻辑器件6.3可编程只读存储器(PROM)PROM是最早生产出来的可编程逻辑器件,但它的基础是只读存储器(ReadOnlyMemory,简称ROM)。为了便于更好地理解PROM,在介绍PROM之前先介绍ROM。第6章可编程逻辑器件6.3.1只读存储器(ROM)ROM是固定结构的存储器,它由工厂按需要存储的内容用掩模光刻的方法生产出来。用户不能改变所存内容,即不能写入,只能读出,故而得名。所有ROM的电路结构都包含地址译码器、存储单元矩阵和输出缓冲器等三个部分。图6―13是ROM的原理结构图,其中,A0~An-1是地址代码;W0~W2n-1是字线,D0~Dk-1是位线。第6章可编程逻辑器件图6―13ROM结构原理图A0A1An-1…地址译码器(与阵列)存储单元矩阵(或阵列)输出缓冲器W0W112Wn…0DD0D1Dk……1DkD第6章可编程逻辑器件n位地址代码能指定2n个不同的地址,地址译码器将这2n个地址分别译成W0~W2n-1个高电平输出信号。地址译码器的译码量由存储单元的数据决定。例如有2n个存储单元,则地址译码器应该有n个输入、2n个输出,形成2n根字线,对应2n个地址。所以ROM中的地址译码器不仅是一个完全译码器,还是一个与阵列逻辑结构。第6章可编程逻辑器件存储单元矩阵实际上是一个编码器。“与”阵列的输出线称为字线,“或”阵列中和字线相交的那些线称为位线。字线和位线构成矩阵。当W0~W2n-1根字线中有一根字线为高电平信号时,都会在K根线(D0~Dk-1)上输出一个K位二值代码。通常把每个K位二值代码称为一个字。如果存储单元矩阵只有一位输出,则它包含了2n个存储单元,两位输出包含了2n×2个存储单元。第6章可编程逻辑器件输出缓冲器用来提高存储器的带负载能力,并使输出电平与TTL电路的逻辑电平匹配。同时,利用缓冲器的三态控制功能可以将存储器的输出端与系统的数据总线直接相连。存储单元矩阵中的每个存储单元可以用二极管、晶体管、熔丝或其他存储元件构成。图6―14是具有两位地址输入码和四位数据输出的ROM电路。它的存储单元是二极管,字线和位线的每个交叉点处都是一个存储单元。交叉点处接有二极管时相当于存1,没有接二极管时相当于存0。交叉点的数目也就是存储单元数。通常,直接用存储单元的数目表示存储器的存储量(或称容量),并写成“字数×位数(位)”的形式。第6章可编程逻辑器件图6―14二极管ROM的结构VCCA1A0存储矩阵EN3DW0W1W2W3输出缓冲器D3D2D1D0地址译码器2D1D0D第6章可编程逻辑器件在读取数据时,只要输入指定了地址码,且,则指定地址对应的存储单元里所存的数据便出现在数据线上。例如在图6―14中,当地址码A1A0=11时,字线W3=1,而其他字线均为低电平。由于只有位线D′3与字线W3间接有二极管,而D′2、D′1、D′0三根位线与字线W3间没有接二极管,所以此时,D′3
本文标题:第3章PLD原理
链接地址:https://www.777doc.com/doc-51211 .html