您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 第2章 可编程逻辑器件
1第二章可编程逻辑器件2.1概述可编程逻辑器件(PLD,ProgrammableLogicDevices)是20世纪70年代发展起来的一种集成器件。PLD是大规模集成电路技术发展的产物,是一种半定制的集成电路,结合计算机软件技术(EDA技术)可以快速、方便地构建数字系统。常用的PLD就其集成度而言可分为简单PLD和复杂PLD两大类,如图2-1所示。简单PLD包括PROM、PLA、PAL、GAL等,它们的集成度很低,每只器件中可用的逻辑门大约在500门以下。复杂PLD芯片的集成度较高,现在大量使用的CPLD、FPGA器件都属于这一类,它们是20世纪80年代中期发展起来的高密度芯片,每只器件可含有上万门可用的逻辑门。图2-1PLD按集成度分类可编程器件从结构上可分为乘积项结构器件和查找表结构器件。前者的基本结构为“与-或阵列”的器件,大部分简单PLD和CPLD都属于这个范畴;后者是由简单的查找表组成可编程门,再构成阵列形式,FPGA属于此类器件。2.2简单可编程器件2.2.1PLD的基本结构可编程逻辑器件(PLD)的基本结构如图2-2所示,它由输入缓冲器、与阵列、或阵列、输出缓冲器等4部分功能电路组成。可编程逻辑器件(PLD)简单PLD复杂PLDPROMPLAPALGALCPLDFPGA2与阵列和或阵列是PLD的核心,通过用户编程可实现“与-或”逻辑。其中,与阵列产生逻辑函数所需的与项(乘积项),而或阵列选择所需的与项,实现或逻辑,构成“与-或”逻辑函数(乘积项之和)。输入缓冲电路主要对输入变量进行预处理,为与阵列提供互补的输入变量,即原变量和反变量。输出缓冲电路主要用来对输出的信号进行处理。对于不同的PLD,其输出缓冲电路的结构后很大的差别,通常含有三态门、寄存器、逻辑宏单元等。用户可根据需要进行编程,实现不同类型的输出结构,即能输出组合逻辑信号,也能输出时序逻辑信号,并能决定输出信号的极性。输出缓冲电路还可以把某些输出端,经反馈通路引回到与阵列,使输出端具有I/O功能。图2-2可编程逻辑器件(PLD)的基本结构2.2.2PLD的表示方法用来描述PLD内部电路结构的一些表示方法,与通常逻辑电路的表示方法有所不同。这些表示法的特点是将芯片内部的结构配置与逻辑图一一对应起来,使器件制造商和电路设计者较容易掌握。PLD的表示法在电路结构、物理结构、版图的布局之间都有很巧妙的映射,因此读起来十分方便。为了能形象地描述PLD的内部结构,并便于识读,现在广泛采用下面的逻辑表示方法。1.互补输入缓冲电路PLD中互补输入缓冲电路可用如图2-3(a)所示的符号来表示,它等效与图2-3(b)的逻辑结构,即它的输出分别是输入A的原变量和反变量。(a)(b)输入缓冲电路与阵列或阵列输出缓冲电路输入输出……3图2-3互补输入缓冲电路2.三态输出缓冲电路在PLD器件封装引脚有限的情况下,为充分利用有限的引脚,常将一部分引脚用作I/O端(既可作为输入端,也可作为输出端)使用。当I/O作为输出端时,常常用到具有一定驱动能力的三态输出缓冲电路,它具有同相输出和反相输出两种形式,在PLD的逻辑电路中分别以图2-4(a)和(b)所示的符号表示,其真值表如表2-1所示。表2-1三态输出缓冲电路的真值表(a)(b)图2-4三态输出缓冲电路3.与、或门阵列由于PLD的特殊结构,用通用的逻辑门符号表示比较繁杂,特用一些常用符号来简化表示,PLD中常用符号与国际符号对照表如表2-2所示。表2-2PLD中常用符号与国际符号对照表图2-5是PLD阵列中连接关系的表示。十字交叉线表示此二线未连接;交叉线的交叉点上打黑点,表示固定连接,即在PLD出厂时已连接;交叉线的交叉点上打叉,表示改点可编程,在PLD出厂后通过编程,其连接可随时改变。图2-5PLD的连接表示法CAFY0高阻100111104可编程与阵列是PLD的核心部分。为了便于对PLD逻辑关系的描述、编程和使用,可采用如图2-5所示的表示方法,它表示具有四个输入的与门。四条竖线A、B、C、D均为输入线,输入到与门的横线称为乘积项线,输入线和乘积项线的交叉点为编程点。在编程点处接有编程器件,如熔丝或可编程的MOS器件等。若在编程点处的编程器件将输入线和乘积项线接通时,则在编程点处以“X”或“.”表示。若在编程点处的编程器件将输入线和乘积项线没有接通时,则在编程点处无“X”或“·”表示。例如,在图2-6中,输入线A与乘积项线采用固定连接;输入线B和C与乘积项线采用可编程连接;输入线D和乘积项线没有连接。因而该图中与逻辑电路的乘积项输出为F=ABD。同样,当PLD中有可编程的或阵列时,其表示方法为图2-7所示的形式。编程点的表示方法和与阵列相同。所以改图的逻辑关系为:F=A+C。多输入端的与或阵列也可表示成图2-8所示的形式。该图的逻辑关系为:Y=AB+BC+CD+AD。图2-6四输入与阵列表示方法图2-7四输入或阵列表示方法图2-8多输入端的与或阵列表示方法4.逻辑宏单元逻辑宏单元结构是将“与-或”阵列与触发器或寄存器单元进行组合(包括相应的反馈单元)来构成器件内部的逻辑单元。逻辑宏单元是高密度可编程器件中的一个非常重要的基本结构。如Lattic、Altera、Xilinx和AMD等公司在各自生产的PLD产品的宏单元设计上有着各自的特点。但总的来说,宏单元结构具有以下几个方面的特点:提供时序逻辑需要的触发器或寄存器,并且可以进行各种组态。5提供各种形式的I/O方式。提供内部反馈信号,控制输出的逻辑极性。分配控制信号,如寄存器的时钟和复位信号、三态门的输出使能信号。简单PLD基本结构大致相同,根据与或阵列是否可编程分为三类:与固定、或编程:PROM;与或全编程:PLA;与编程、或固定:PAL、GAL。下面简单介绍一下各种简单PLD的工作原理和基本结构。2.2.3PROM在数字电子技术中提到的PROM实质上是可编程逻辑器件,它包含一个与固定连接的与阵列(该与阵列就是全译码的地址译码器)和一个可编程的或门阵列。相应地,4位输入地址码的PROM可用图2-9(a)所示的PLD表示法描述。已知半加器的逻辑表达式如下所示:则用PROM完成的半加器逻辑阵列如图2-9(b)所示。(a)(b)图2-9PROM表示的PLD阵列及半加器表示由于PROM中的与阵列是一个固定的全译码阵列,当输入变量较多时,必然会导致器件工作速度降低,同时PROM的体积较大,成本也较高,所以它主要不是作为可编程逻辑器件来使用。因而出现了PLA。2.2.4PLA与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F6可编程逻辑阵列PLA采用与门阵列和或门阵列都是可编程的逻辑结构,其逻辑阵列图如图2-10所示。显然PLA不需要包含输入变量的所有最小项,仅仅需要包含在逻辑功能中实际要求的那些最小项。PROM随着输入变量增加,规模迅速增加的问题在PLA中大大缓解。PLA的利用率大大提高了。2-10PLA的逻辑阵列图虽然PLA的利用率较高,可是需要由逻辑函数的与或最简表达式,对于多输出函数需要提取、利用公共的与项,设计的软件算法比较复杂,尤其是多输入变量和多输出的逻辑函数,处理上更加困难。此外,PLA的两个阵列均为可编程的,不可避免地使编程后器件的运行速度下降了。人们在PLA后,又设计了另外一种可编程器件,即PAL。2.2.5PAL可编程阵列逻辑PAL也是与或阵列结构,但仅与阵列可以编程,或阵列是固定的,其逻辑结构图如图2-11所示。由于PAL的或阵列是固定的,一般用图2-12表示PAL的结构。2-11PAL的结构2-12PAL的常用表示用PAL实现逻辑函数时,每个输出是若干个乘积项之和,而乘积项的数目是固定的。一般情况下PAL中一个或门有7~8个乘积项,可以满足逻辑设计的需要。与阵列可编程、或阵列固定的结构避免了PLA存在的一些问题,运行速度也有所提高。与阵列(可编程)或阵列(可编程)0A1A1A1A0A0A1F0F7上述提到的可编程结构只能解决组合逻辑的编程问题,而对时序电路却无能为力。由于时序时序电路是由组合电路及存储单元构成(锁存器、触发器、RAM),对其中的组合电路部分的可编程已经解决,所以只要再加上锁存器、触发器即可。PAL器件的发展给逻辑设计带来了很大的灵活性,但它还存在着不足之处。一方面,它采用熔丝连接工艺,靠熔丝烧断达到编程的目的,一旦编程便不能改写;另一方面,不同输出结构的PAL对应不同型号的PAL器件,不便于用户使用。现在,PAL也已被淘汰,在中小规模可编程应用领域,PAL已经被GAL取代。2.2.6GAL可编程通用阵列逻辑器件GAL是Lattice公司于1985年首先推出的新型可编程逻辑器件。GAL是PAL的第二代产品,首次在PLD上采用了EEPROM工艺,使得GAL具有电可擦除重复编程的特点,彻底解决了熔丝型可编程器件的一次可编程问题。按门阵列的可编程结构,GAL可分成两大类:一类是与PAL基本结构相似的普通型GAL器件,其与门阵列是可编程的,或门阵列是固定连接的,如GAL16V8;另一类是与FPLA器件相类似的新一代GAL器件,其与门阵列及或门阵列都是可编程的,如GAL39V18。GAL对PAL的输出I/O结构进行了较大的改进,在GAL的输出部分增加了输出逻辑宏单元OLMC(OutputMacroCell),通过编程可设置不同的输出状态,增强器件的通用性。常用的GAL芯片有GAL16V8、GAL20V8等,下面我们简单介绍一下GAL的内部结构。以GAL16V8为例。GAL16V8的逻辑电路图如图2-13所示,它有16个输入引脚(其中八个为固定输入引脚,即2脚~9脚)和八个输出引脚,即12脚~19脚。其内部结构是由八个输入缓冲器、八个输出反馈/输入缓冲器、八个输出三态缓冲器、八个输出逻辑宏单元OLMC、8×8个与门构成的64个乘积项,每个与门有32个输入端、一个时钟输入端CLK(即1脚)和一个输出三态控制端OE(即11脚)等组成。8图2-13GAL16V8的逻辑电路图GAL16V8有八个输出逻辑宏单元OLMC12~OLMC19,它们的内部结构完全相同,如图2-14所示。但外部连线稍有不同,图中用n表示本级引脚号,用m表示来自邻级引脚号。OLMC主要由一个8输入或门、一个异或门、四个多路选择器和一个D触发器四个部分组成,它们的作用如下:(1)8输入或门:构成了GAL的或门阵列;(2)异或门:用来控制输出的极性,其输入为或门的输出B和控制字XOR(n),两者经异或后分别输出到D触发器的D输入端及输出数据选择器OMUUX的一个输入端。当XOR(n)=0时,D=B,异或门仅作为同相缓冲器使用;当XOR(n)=1时,D=B,异或门起反相器作用。(3)D触发器:对或门的输出状态起记忆作用,使GAL能配置成时序逻辑电路。其输出Q、Q在控制字AC0、AC1(n)及时钟CLK的控制下,经输出数据选择器OMUX输出,或经反馈数据选择器FMUX反馈到与阵列。(4)四个数据选择器每个OLMC中有四个多路开关MUX,FIMUX用于控制第一乘积项;TSMUX用于选择输出三态缓冲器的选通信号;FMUX决定反馈信号的来源;OMUX用于选择输出信号是组合逻辑的还是寄存逻辑的。多路开关状态取决于结构控制字中的AC0和AC1(n)位的值。9图2-14输出逻辑宏单元乘积项数据选择器PTMUX,用来控制来自与阵列的第一乘积项的作用,控制信号为AC0和AC1(n)。从图2-14可以看出,控制信号AC0和AC1(n)经与非门后接至PTMUX的选择控制端。只要AC0和AC1(n)中有任何一个为0时,PTMUX的选择端为1,此时第一乘积项被选中成为或门的一项输入。而当AC0和AC1(n)全为1时,PTMUX的选择端为0,地电平被送到或门作为或门的开门信号。此时,与阵列的第一乘积项成为三态数据选择器TSMUX的输入信号,以备选作输出三态数据选择器的编程使能控制信号。输出数据选择器OMUX,用来控制OLMC是组合
本文标题:第2章 可编程逻辑器件
链接地址:https://www.777doc.com/doc-51135 .html