第2章 可编程逻辑器件.doc
《第2章 可编程逻辑器件.doc》由会员分享,可在线阅读,更多相关《第2章 可编程逻辑器件.doc(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第2章 可编程逻辑器件第二章 可编程逻辑器件2.1 概述可编程逻辑器件(PLD,Programmable Logic Devices)是20世纪70年代发展起来的一种集成器件。PLD是大规模集成电路技术发展的产物,是一种半定制的集成电路,结合计算机软件技术(EDA技术)可以快速、方便地构建数字系统。常用的PLD就其集成度而言可分为简单PLD和复杂PLD两大类,如图2-1所示。简单PLD包括 PROM、PLA、PAL、GAL等,它们的集成度很低,每只器件中可用的逻辑门大约在500门以下。复杂PLD芯片的集成度较高,现在大量使用的CPLD、FPGA器件都属于这一类,它们是20世纪80年代中期发展起
2、来的高密度芯片,每只器件可含有上万门可用的逻辑门。图2-1 PLD按集成度分类可编程器件从结构上可分为乘积项结构器件和查找表结构器件。前者的基本结构为“与-或阵列”的器件,大部分简单PLD和CPLD都属于这个范畴;后者是由简单的查找表组成可编程门,再构成阵列形式,FPGA属于此类器件。2.2 简单可编程器件2.2.1 PLD的基本结构可编程逻辑器件(PLD)的基本结构如图2-2所示,它由输入缓冲器、与阵列、或阵列、输出缓冲器等4部分功能电路组成。与阵列和或阵列是PLD的核心,通过用户编程可实现“与-或”逻辑。其中,与阵列产生逻辑函数所需的与项(乘积项),而或阵列选择所需的与项,实现或逻辑,构成
3、“与-或”逻辑函数(乘积项之和)。输入缓冲电路主要对输入变量进行预处理,为与阵列提供互补的输入变量,即原变量和反变量。输出缓冲电路主要用来对输出的信号进行处理。对于不同的PLD,其输出缓冲电路的结构后很大的差别,通常含有三态门、寄存器、逻辑宏单元等。用户可根据需要进行编程,实现不同类型的输出结构,即能输出组合逻辑信号,也能输出时序逻辑信号,并能决定输出信号的极性。输出缓冲电路还可以把某些输出端,经反馈通路引回到与阵列,使输出端具有I/O功能。图2-2 可编程逻辑器件(PLD)的基本结构2.2.2 PLD的表示方法用来描述PLD内部电路结构的一些表示方法,与通常逻辑电路的表示方法有所不同。这些表
4、示法的特点是将芯片内部的结构配置与逻辑图一一对应起来,使器件制造商和电路设计者较容易掌握。PLD的表示法在电路结构、物理结构、版图的布局之间都有很巧妙的映射,因此读起来十分方便。为了能形象地描述PLD的内部结构,并便于识读,现在广泛采用下面的逻辑表示方法。1. 互补输入缓冲电路 PLD中互补输入缓冲电路可用如图2-3(a)所示的符号来表示,它等效与图2-3(b)的逻辑结构,即它的输出分别是输入A的原变量和反变量。 (a) (b)图2-3 互补输入缓冲电路2. 三态输出缓冲电路在PLD器件封装引脚有限的情况下,为充分利用有限的引脚,常将一部分引脚用作I/O端(既可作为输入端,也可作为输出端)使用
5、。当I/O作为输出端时,常常用到具有一定驱动能力的三态输出缓冲电路,它具有同相输出和反相输出两种形式,在PLD的逻辑电路中分别以图2-4(a)和(b)所示的符号表示,其真值表如表2-1所示。 表2-1 三态输出缓冲电路的真值表CAFY0高阻10011110 (a) (b) 图2-4 三态输出缓冲电路3. 与、或门阵列由于PLD的特殊结构,用通用的逻辑门符号表示比较繁杂,特用一些常用符号来简化表示,PLD中常用符号与国际符号对照表如表2-2所示。表2-2 PLD中常用符号与国际符号对照表图2-5是PLD阵列中连接关系的表示。十字交叉线表示此二线未连接;交叉线的交叉点上打黑点,表示固定连接,即在P
6、LD出厂时已连接;交叉线的交叉点上打叉,表示改点可编程,在PLD出厂后通过编程,其连接可随时改变。图2-5 PLD的连接表示法可编程与阵列是PLD的核心部分。为了便于对PLD逻辑关系的描述、编程和使用,可采用如图2-5所示的表示方法,它表示具有四个输入的与门。四条竖线A、B、C、D均为输入线,输入到与门的横线称为乘积项线,输入线和乘积项线的交叉点为编程点。在编程点处接有编程器件,如熔丝或可编程的MOS器件等。若在编程点处的编程器件将输入线和乘积项线接通时,则在编程点处以“X”或“.”表示。若在编程点处的编程器件将输入线和乘积项线没有接通时,则在编程点处无“X”或“”表示。例如,在图2-6中,输
7、入线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. 逻辑宏单元逻辑宏单元结构是将“与-或”阵列与触发器或寄存器单元进行组合(包括相应的反馈单元)来构成器件内部的逻辑单元。逻辑宏单元
8、是高密度可编程器件中的一个非常重要的基本结构。如Lattic、Altera、Xilinx和AMD等公司在各自生产的PLD产品的宏单元设计上有着各自的特点。但总的来说,宏单元结构具有以下几个方面的特点:l 提供时序逻辑需要的触发器或寄存器,并且可以进行各种组态。l 提供各种形式的I/O方式。l 提供内部反馈信号,控制输出的逻辑极性。l 分配控制信号,如寄存器的时钟和复位信号、三态门的输出使能信号。简单PLD基本结构大致相同,根据与或阵列是否可编程分为三类:l 与固定、或编程:PROM;l 与或全编程:PLA;l 与编程、或固定:PAL、GAL。下面简单介绍一下各种简单PLD的工作原理和基本结构。
9、2.2.3 PROM在数字电子技术中提到的PROM实质上是可编程逻辑器件,它包含一个与固定连接的与阵列(该与阵列就是全译码的地址译码器)和一个可编程的或门阵列。相应地,4位输入地址码的PROM可用图2-9(a)所示的PLD表示法描述。已知半加器的逻辑表达式如下所示:则用PROM完成的半加器逻辑阵列如图2-9(b)所示。 (a) (b)图2-9 PROM表示的PLD阵列及半加器表示 由于PROM中的与阵列是一个固定的全译码阵列,当输入变量较多时,必然会导致器件工作速度降低,同时PROM的体积较大,成本也较高,所以它主要不是作为可编程逻辑器件来使用。因而出现了PLA。2.2.4 PLA可编程逻辑阵
10、列PLA采用与门阵列和或门阵列都是可编程的逻辑结构,其逻辑阵列图如图2-10所示。显然PLA不需要包含输入变量的所有最小项,仅仅需要包含在逻辑功能中实际要求的那些最小项。PROM随着输入变量增加,规模迅速增加的问题在PLA中大大缓解。PLA的利用率大大提高了。2-10 PLA的逻辑阵列图虽然PLA的利用率较高,可是需要由逻辑函数的与或最简表达式,对于多输出函数需要提取、利用公共的与项,设计的软件算法比较复杂,尤其是多输入变量和多输出的逻辑函数,处理上更加困难。此外,PLA的两个阵列均为可编程的,不可避免地使编程后器件的运行速度下降了。人们在PLA后,又设计了另外一种可编程器件,即PAL。2.2
11、.5 PAL可编程阵列逻辑PAL也是与或阵列结构,但仅与阵列可以编程,或阵列是固定的,其逻辑结构图如图2-11所示。由于PAL的或阵列是固定的,一般用图2-12表示PAL的结构。2-11 PAL的结构 2-12 PAL的常用表示用PAL实现逻辑函数时,每个输出是若干个乘积项之和,而乘积项的数目是固定的。一般情况下PAL中一个或门有78个乘积项,可以满足逻辑设计的需要。与阵列可编程、或阵列固定的结构避免了PLA存在的一些问题,运行速度也有所提高。上述提到的可编程结构只能解决组合逻辑的编程问题,而对时序电路却无能为力。由于时序时序电路是由组合电路及存储单元构成(锁存器、触发器、RAM),对其中的组
12、合电路部分的可编程已经解决,所以只要再加上锁存器、触发器即可。PAL器件的发展给逻辑设计带来了很大的灵活性,但它还存在着不足之处。一方面,它采用熔丝连接工艺,靠熔丝烧断达到编程的目的,一旦编程便不能改写;另一方面,不同输出结构的PAL对应不同型号的PAL器件,不便于用户使用。现在,PAL也已被淘汰,在中小规模可编程应用领域,PAL已经被GAL取代。2.2.6 GAL可编程通用阵列逻辑器件GAL是Lattice 公司于1985年首先推出的新型可编程逻辑器件。GAL是PAL的第二代产品,首次在PLD上采用了EEPROM工艺,使得GAL具有电可擦除重复编程的特点,彻底解决了熔丝型可编程器件的一次可编
13、程问题。按门阵列的可编程结构, GAL可分成两大类: 一类是与PAL基本结构相似的普通型GAL器件,其与门阵列是可编程的, 或门阵列是固定连接的,如GAL16V8;另一类是与FPLA器件相类似的新一代GAL 器件, 其与门阵列及或门阵列都是可编程的,如GAL39V18。GAL对PAL的输出I/O结构进行了较大的改进,在GAL的输出部分增加了输出逻辑宏单元OLMC(Output Macro Cell),通过编程可设置不同的输出状态,增强器件的通用性。常用的GAL芯片有GAL16V8、GAL20V8等,下面我们简单介绍一下GAL的内部结构。以GAL16V8为例。GAL16V8的逻辑电路图如图2-1
14、3所示,它有16 个输入引脚(其中八个为固定输入引脚,即2脚9脚)和八个输出引脚,即12脚19脚。其内部结构是由八个输入缓冲器、八个输出反馈/输入缓冲器、八个输出三态缓冲器、八个输出逻辑宏单元OLMC、88个与门构成的64个乘积项,每个与门有32个输入端、一个时钟输入端CLK(即1脚)和一个输出三态控制端OE(即11脚)等组成。图2-13 GAL16V8的逻辑电路图GAL16V8有八个输出逻辑宏单元OLMC12OLMC19,它们的内部结构完全相同,如图2-14所示。但外部连线稍有不同,图中用n表示本级引脚号,用m表示来自邻级引脚号。OLMC主要由一个8输入或门、一个异或门、四个多路选择器和一个
15、D触发器四个部分组成,它们的作用如下: (1)8输入或门:构成了GAL的或门阵列;(2)异或门:用来控制输出的极性,其输入为或门的输出B和控制字XOR(n),两者经异或后分别输出到D触发器的D输入端及输出数据选择器OMUUX的一个输入端。当XOR(n)=0时,D=B,异或门仅作为同相缓冲器使用;当XOR(n)=1时,D=,异或门起反相器作用。(3)D触发器:对或门的输出状态起记忆作用,使GAL能配置成时序逻辑电路。其输出Q、在控制字AC0、AC1(n)及时钟CLK的控制下,经输出数据选择器OMUX输出,或经反馈数据选择器FMUX反馈到与阵列。(4)四个数据选择器每个OLMC中有四个多路开关MU
16、X, FIMUX用于控制第一乘积项;TSMUX用于选择输出三态缓冲器的选通信号;FMUX决定反馈信号的来源;OMUX用于选择输出信号是组合逻辑的还是寄存逻辑的。多路开关状态取决于结构控制字中的AC0和AC1(n)位的值。图2-14 输出逻辑宏单元乘积项数据选择器PTMUX,用来控制来自与阵列的第一乘积项的作用,控制信号为AC0和AC1(n)。从图2-14可以看出,控制信号AC0和AC1(n)经与非门后接至PTMUX的选择控制端。只要AC0和AC1(n)中有任何一个为0时,PTMUX的选择端为1,此时第一乘积项被选中成为或门的一项输入。而当AC0和AC1(n)全为1时,PTMUX的选择端为0,地
17、电平被送到或门作为或门的开门信号。此时,与阵列的第一乘积项成为三态数据选择器TSMUX的输入信号,以备选作输出三态数据选择器的编程使能控制信号。输出数据选择器OMUX,用来控制OLMC是组合输出还是寄存器输出,控制信号也为AC0和AC1(n)。从图2-14可以看出,控制信号和AC1(n)经或非门后接至OMUX的选择控制端。经过分析可知:当AC0AC1(n)=10时,OMUX的选择端为1,此时OMUX把D触发器的输出Q送到输出三态缓冲器,是寄存器输出;而当AC0和AC1(n)处于其它状态时,OMUX的选择端为0,OMUX将异或门的输出B直接送到输出三态缓冲器,是组合输出。三态数据选择器TSMUX
18、,是一个四选一数据选择器,控制信号为AC0和AC1(n)。从图2-14可以看出, 当AC0AC1(n)=00时,TSMUX的输出为VCC,三态输出缓冲电路输出为OMUX的反相输出;当AC0AC1(n)=01时,TSMUX的输出为0,三态输出缓冲电路输出为高阻状态;当AC0AC1(n)= 10时,TSMUX的输出为0E,三态输出缓冲电路输出由OE来控制;当AC0AC1(n)=11时,表示多路开关TSMUX的数据输入端11被选通,表示三态门的选通信号是第一乘积项。反馈数据选择器FMUX,它根据的不同取值选择不同的信号反馈到与阵列,控制信号为AC0 、AC1(n)和AC1(m)。从图2-14可以看出
19、,当AC0 AC1(n)=00,F MUX的输出为0;当AC0 AC1(n)=01,F MUX的输出为来自邻级的输出;当AC0 AC1(n)=10,FMUX的输出为D触发器的输出端;当AC0 AC1(n)=11,FMUX的输出为I/O。通过对OLMC中四个数据选择器在控制信号AC0 、AC1(n)作用下的分析,可知在AC0 、AC1(n)可编程结构控制位的控制下,输出逻辑宏单元(OLMC)可配置成四种不同的工作模式,即专用输入(禁止OLMC输出)、专用组合输出、选通组合输出、寄存器型输出模式。在表2-3中列出了控制位和工作模式的配置关系,图2-15给出了不同工作模式下的OLMC的等效电路。表2
20、-3 OLMC的工作模式AC0AC1(n)工作模式等效电路图01专用输入如图2-15(a)所示00专用组合输出如图2-15(b)所示11选通组合输出如图2-15(c)所示10寄存器型输出如图2-15(d)所示(a) 专用输入模式 (b) 专业组合输出模式(c)选通组合输出模式 (d) 寄存器型输出模式图2-15 GAL器件OLMC的四种工作模式GAL已经被淘汰,其原因很简单:l 密度低,规模小,加密功能不够理想;l 各宏单元中触发器时钟信号公用,且只能外加,因此只能作为同步时序电路使用;l 各宏单元的同步预置端也连在一起,大大限制了GAL的使用;l 每个宏单元只有一条向与阵列反馈的通道,所以O
21、LMC利用率很低。 以上这些问题在复杂可编程器件中都得到了解决,下面介绍复杂可编程器逻辑器件。2.3 CPLDCPLD即Complex Programmable Logic Device复杂可编逻辑器件。CPLD的基本工作原理与GAL器件十分相似,可以看成是由许多GAL器件合成的逻辑体,只是相邻块的乘积项可以互借,且每一逻辑单元都能单独引入时钟,从而可实现异步时序逻辑。2.3.1 CPLD的基本结构与工作原理目前,生产CPLD器件的著名公司主要有Altera、Xilinx、Lattice,Cypress等公司。所生产的产品多种多样,器件的结构也有很大的差异,但大多数公司的CPLD仍使用基于乘积
22、项的单元结构。Altera的MAX7000S系列具有一定的代表性,这里以此为例介绍CPLD的结构和工作原理。基于乘积项的CPLD的内部结构如图2-16所示。它主要由逻辑阵列块(LAB, Logic Array Block)、 宏单元(Macro cells)、可编程连线(PIA,Programmable Interface Array)和I/O控制块等四部分组成。 宏单元是PLD的基本结构,由它来实现基本的逻辑功能。图2-11中兰色部分是多个宏单元的集合(因的为宏单元较多,没有一一画出)。可编程连线PIA负责信号传递,连接所有的宏单元。I/O控制块负责I/O的电气特性控制,比如可以设定集电极开
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 可编程逻辑器件 可编程 逻辑 器件
限制150内