第2章可编程逻辑器件.docx

上传人:小飞机 文档编号:2049698 上传时间:2023-01-04 格式:DOCX 页数:30 大小:1.90MB
返回 下载 相关 举报
第2章可编程逻辑器件.docx_第1页
第1页 / 共30页
第2章可编程逻辑器件.docx_第2页
第2页 / 共30页
第2章可编程逻辑器件.docx_第3页
第3页 / 共30页
第2章可编程逻辑器件.docx_第4页
第4页 / 共30页
第2章可编程逻辑器件.docx_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《第2章可编程逻辑器件.docx》由会员分享,可在线阅读,更多相关《第2章可编程逻辑器件.docx(30页珍藏版)》请在三一办公上搜索。

1、第二章 可编程逻辑器件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端(既可作为输入端,也可作为输出端)使用。当I/O作为输出端时

5、,常常用到具有一定驱动能力的三态输出缓冲电路,它具有同相输出和反相输出两种形式,在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阵列中连接关系的表示。十字交叉线表示此二线未连接;交叉线的交叉点上打黑点,表示固定连接,即在PLD出厂时已连接;交叉

6、线的交叉点上打叉,表示改点可编程,在PLD出厂后通过编程,其连接可随时改变。图2-5 PLD的连接表示法可编程与阵列是PLD的核心部分。为了便于对PLD逻辑关系的描述、编程和使用,可采用如图2-5所示的表示方法,它表示具有四个输入的与门。四条竖线A、B、C、D均为输入线,输入到与门的横线称为乘积项线,输入线和乘积项线的交叉点为编程点。在编程点处接有编程器件,如熔丝或可编程的MOS器件等。若在编程点处的编程器件将输入线和乘积项线接通时,则在编程点处以“X”或“.”表示。若在编程点处的编程器件将输入线和乘积项线没有接通时,则在编程点处无“X”或“”表示。例如,在图2-6中,输入线A与乘积项线采用固

7、定连接;输入线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的工作原理和基本结构。2.2.3 PROM在

9、数字电子技术中提到的PROM实质上是可编程逻辑器件,它包含一个与固定连接的与阵列(该与阵列就是全译码的地址译码器)和一个可编程的或门阵列。相应地,4位输入地址码的PROM可用图2-9(a)所示的PLD表示法描述。已知半加器的逻辑表达式如下所示:则用PROM完成的半加器逻辑阵列如图2-9(b)所示。 (a) (b)图2-9 PROM表示的PLD阵列及半加器表示 由于PROM中的与阵列是一个固定的全译码阵列,当输入变量较多时,必然会导致器件工作速度降低,同时PROM的体积较大,成本也较高,所以它主要不是作为可编程逻辑器件来使用。因而出现了PLA。2.2.4 PLA可编程逻辑阵列PLA采用与门阵列和

10、或门阵列都是可编程的逻辑结构,其逻辑阵列图如图2-10所示。显然PLA不需要包含输入变量的所有最小项,仅仅需要包含在逻辑功能中实际要求的那些最小项。PROM随着输入变量增加,规模迅速增加的问题在PLA中大大缓解。PLA的利用率大大提高了。2-10 PLA的逻辑阵列图虽然PLA的利用率较高,可是需要由逻辑函数的与或最简表达式,对于多输出函数需要提取、利用公共的与项,设计的软件算法比较复杂,尤其是多输入变量和多输出的逻辑函数,处理上更加困难。此外,PLA的两个阵列均为可编程的,不可避免地使编程后器件的运行速度下降了。人们在PLA后,又设计了另外一种可编程器件,即PAL。2.2.5 PAL可编程阵列

11、逻辑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-13所示,它有16 个输

14、入引脚(其中八个为固定输入引脚,即2脚9脚)和八个输出引脚,即12脚19脚。其内部结构是由八个输入缓冲器、八个输出反馈/输入缓冲器、八个输出三态缓冲器、八个输出逻辑宏单元OLMC、88个与门构成的64个乘积项,每个与门有32个输入端、一个时钟输入端CLK(即1脚)和一个输出三态控制端OE(即11脚)等组成。图2-13 GAL16V8的逻辑电路图GAL16V8有八个输出逻辑宏单元OLMC12OLMC19,它们的内部结构完全相同,如图2-14所示。但外部连线稍有不同,图中用n表示本级引脚号,用m表示来自邻级引脚号。OLMC主要由一个8输入或门、一个异或门、四个多路选择器和一个D触发器四个部分组成,

15、它们的作用如下: (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中有四个多路开关MUX, FIMUX用于控

16、制第一乘积项;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可以看出,当AC0 AC1(n

19、)=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-3 OLMC的工作模

20、式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 每个宏单元只有一条向与阵列反馈的通道,所以OLMC利用率很低。 以

21、上这些问题在复杂可编程器件中都得到了解决,下面介绍复杂可编程器逻辑器件。2.3 CPLDCPLD即Complex Programmable Logic Device复杂可编逻辑器件。CPLD的基本工作原理与GAL器件十分相似,可以看成是由许多GAL器件合成的逻辑体,只是相邻块的乘积项可以互借,且每一逻辑单元都能单独引入时钟,从而可实现异步时序逻辑。2.3.1 CPLD的基本结构与工作原理目前,生产CPLD器件的著名公司主要有Altera、Xilinx、Lattice,Cypress等公司。所生产的产品多种多样,器件的结构也有很大的差异,但大多数公司的CPLD仍使用基于乘积项的单元结构。Alte

22、ra的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的电气特性控制,比如可以设定集电极开路输出,摆率控制,三态

23、输出等。 图2-16中左上的INPUT/GCLK1,INPUT/GCLRn,INPUT/OE1,INPUT/OE2 是全局时钟,清零和输出使能信号,这几个信号有专用连线与PLD中每个宏单元相连,信号到每个宏单元的延时相同并且延时最短。图2-16 基于乘积项的CPLD内部结构1. 逻辑阵列块LAB从图2-16中可以看出:每16个宏单元可组成一个逻辑阵列块LAB(Logic Array Block),各个LAB可通过可编程连线阵PIA(Programmable Interconnect Array)和全局总线连接在一起。全局总线由专用输入引脚、IO引脚和宏单元的反馈信号构成。每个LAB的输入信号可

24、以是:来自的PIA的36个通用逻辑输入信号;用于寄存器辅助功能的全局控制信号;从IO引脚到寄存器的直接输入信号。 2. 宏单元Macro cells在CPLD中,宏单元是非常重要的逻辑单元,用来实现各种具体的逻辑功能,可以独立地配置成组合逻辑或时序逻辑。每个宏单元有逻辑阵列(Logic Array)、乘积项选择矩阵(Product Term Select Matrix)、扩展乘积项(Expanders)、可编程寄存器(Programmable Register)和4个数据选择器(Select)等功能模块组成,其结构图如图2-17所示。(1)逻辑阵列(Logic Array)和乘积项选择矩阵(P

25、roduct Term Select Matrix)逻辑阵列和乘积项选择矩阵用来实现宏单元的组合逻辑函数。其中,逻辑阵列组成与阵列,为乘积项选择矩阵提供5个乘积项;乘积项选择矩阵用来实现5个乘积项的逻辑函数,或将这5个乘积项作为可编程寄存器的控制信号,实现寄存器的复位、置位、时钟输入和时钟使能等功能。(2)扩展乘积项扩展乘积项包括共享扩展项(Shared Logic Expanders)和并联扩展项(Parallel Logic Expanders)两部分,用来补充宏单元的逻辑资源。尽管大多数的逻辑功能可以用每个宏单元中的5各乘积项来实现,但对于某些乘积项大于5项的复杂逻辑函数,则需要采用附加

26、乘积项来补充。共享扩展项由每个宏单元提供一个单独的乘积项,通过一个非门取反后反馈到逻辑阵列中,可被LAB内任何一个或全部宏单元使用和共享,以便实现复杂的逻辑函数。 并联扩展项是利用一些宏单元中未使用的乘积项直接分配到邻近的宏单元中,以实现逻辑资源共享。(3)可编程寄存器(Programmable Register)图2-17中有一个可编程D触发器,它的时钟,清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零。如果不需要触发器,也可以将此触发器旁路,信号直接输给PIA或输出到I/O脚。(4)数据选择器图2-17中含有4个数据选择器,即复位信

27、号选择器(Clear Select)、时钟/使能信号选择器(Clock/Enable Select)、快速输入选择器(Fast Input Select)和旁路选择器(Register Bypass)。l 复位信号选择器:用来选择触发器的复位信号,通过编程可以选择全局复位或乘积项复位。l 时钟/使能信号选择器:用来实现触发器时钟方式的控制,通过编程可实现触发器3种不同的时钟方式,即全局时钟信号、全局时钟信号由高电平有效的时钟信号使能和用乘积项实现阵列的时钟。l 快速输入选择器:用来选择触发器的数据输入信号,通过编程可以选择来自宏单元的逻辑输入或来自I/O引脚的快速输入。l 旁路选择器:用来选择

28、宏单元输出逻辑的方式,通过编程可实现宏单元的组合逻辑输出或时序逻辑输出。图2-17 MAX7000系列的单个宏单元结构3. 可编程连线阵列PIA可编程连线阵列的作用是为各逻辑宏单元之间以及逻辑宏单元和IO单元之间提供互连网络。各逻辑宏单元通过可编程连线阵列接收来自专用输入或输出端的信号,并将宏单元的信号反馈到其需要到达的IO单元或其他宏单元中。这种互连机制有很大的灵活性,它允许在不影响引脚分配的情况下改变内部的设计。4. I/O控制块I/O控制块允许每个I/O引脚单独地配置成输入/输出或双向工作方式。每个I/O引脚都有一个三态缓冲器,它能由全局输出使能信号中的一个控制,或者把使能端直接连接到地

29、或电源上。2.3.2 常用的CPLD器件1. Altera公司的CPLD器件Altera公司是全球最大的可编程逻辑器件供应商之一。其主要CPLD产品为:MAX3000A/MAX7000/MAX II这三个系列。(1)MAX3000A系列基于成本优化的0.30微米、4层金属Flash工艺的MAX3000A系列CPLD,密度从32-512个宏单元,同时提供商用和工业级产品,非常适用于成本控制严格的应用。该系列器件还具有的优点有:遵循IEEE Std. 1149.1 Joint Test Action Group (JTAG)、标准ISP特性、I/O接口支持5V、3.3V和2.5V等多种电平等。该系

30、列产品为:EPM3032A、 EPM3064A、 EPM3128A、 EPM3256A 和EPM3512A。MAX3000A系列部分芯片的性能如表2-4所示。 表2-4 MAX3000A系列部分芯片性能MAX3000A可用门宏单元逻辑阵列块管脚到管脚延时最高频率用户I/O封装EPM3032A6003224.5227.332PLCC44/TQFP44EPM3064A1,2506444.5222.23466PLCC44/TQFP44TQFP100(2)MAX7000系列基于高性能低功耗CMOS EEPROM技术的MAX7000系列提供了高性能的逻辑解决方案,密度从600-10000个可用门不等(3

31、2-512个宏单元),同时MAX7000系列的同一密度产品还提供多种封装形式,对于各种应用具有相当灵活的适应性。该系列器件还具有的优点有:遵循IEEE Std. 1149.1 Joint Test Action Group (JTAG)、标准ISP特性、I/O接口支持5V、3.3V和2.5V等多种电平、PCI兼容等。该系列产品为:EPM7064、EPM7032、EPM7096、EPM7256、EPM7192、EEPM7160E、EPM7128E、EPM7160S、EPM7128S、EPM7064S、EPM7032S、EPM7192S、EPM7256S。MAX7000系列部分芯片的性能如表2-5

32、所示。 表2-5 MAX7000系列部分芯片性能MAX70000可用门宏单元逻辑阵列块管脚到管脚延时最高频率(MHz)用户I/O封装EPM70326003226151.536PLCC44/TQFP44/PQFP44EPM70641,2506446151.5365268PLCC44/TQFP44PLCC68PLCC84/TQFP100(3)MAX II系列在近15年CPLD发展和创新的基础上,Altera公司推出了低成本的CPLD MAX 器件,这些器件采用新的LUT体系,采用0.18嵌入Flash工艺,使其裸片尺寸仅为同样工艺器件的1/4。新的系列器件容量翻了两番,内部集成一片8Kbits串行

33、EEPROM,增加很多功能。MAXII采用2.5v或者3.3v内核电压,MAXII G系列采用1.8v内核电压。因而MAX 器件和上一代MAX器件相比,成本降低了一半,功耗只有原来的1/10,同时保持了MAX系列原有的瞬态启动、单芯片、非易失性和易用性。该系列产品为:EPM240/G、EPM570/G 、EPM1270/G、EPM240/G等。MAX II系列芯片性能如表2-6所示。该系列器件性价比不错,是未来几年主流器件,推荐使用,不过MAXII容量较大,对于只需要几十个逻辑单元的简单逻辑应用,建议使用小容量的EPM3000A系列芯片。表2-6 MAX II系列芯片性能FeatureEPM2

34、40/GEPM570/GEPM1270/GEPM2210/G逻辑单元 (LE)2405701,2702,210等效宏单元(Macrocell)1924409801,700最大用户IO80160212272内置Flash大小(bit)8K8K8K8K管脚到管脚延时(ns)3.6-4.53.6-5.53.6-6.03.6-6.52. Xilinx公司的CPLD器件Xilinx公司是FPGA的发明者,老牌FPGA公司,是最大可编程逻辑器件供应商之一。CPLD产品种类较全,主要有XC9500和Coolrunner 这两个系列。(1)XC9500系列XC9500低成本CPLD系列采用Flash工艺,提供

35、了当今前沿系统设计所需要的高性能、丰富的性能组合以及灵活性。另外,出色的管脚锁定功能使设计者能够修改其CPLD设计,而不会影响电路板布局。与竞争CPLD产品相比,XC9500系列在每个密度点都提供了多12%以上的逻辑资源,而且不需要额外的成本。 该系列有三种型号的产品即:XC9500、XC9500XL、XC9500XV。另外5V产品已经不推荐使用,而XC9500XL系列目前仍然是Xilinx主要的CPLD产品。XC9500 系列的常见型号有XC9536,XC9572,XC95144等, 其主要性能如表2-7所示。XC9500XL系列的常见型号有XC9536XL,XC9572XL,XC95144

36、 XL等,其主要性能表如表2-8所示。XC9500XV系列的常见型号有XC9536XV,XC9572XV,XC95144 XV等,其主要性能表如表2-9所示。表2-7 XC9500系列芯片性能特性/产品XC9536XC9572XC95108XC95144XC95216 XC95288Macrocell 36 72 108 144 216288 可用门电路800 1,600 2,400 3,200 4,8006,400 Tpd(ns)5.0 7.5 7.5 7.5 10.015.0 SYS (MHz)10083.383.383.366.755.6表2-8 XC9500XL系列芯片性能特性/产品X

37、C9536XLXC9572XLXC95144XLXC95288XL宏单元 36 72 144 288 可用门电路800 1,600 3,200 6,400 Tpd(ns)5.0 5.0 5.0 6.0 SYS (MHz)178178178208表2-9 XC9500XV系列芯片性能特性/产品XC9536XVXC9572XVXC95144XVXC95288XV宏单元 36 72 144 288 可用门电路800 1,600 3,200 6,400 Tpd(ns)5 5 5 6 SYS (MHz)222222222208(2)Cool Runner-II系列Xilinx的Cool Runner系列

38、CPLD是业界具有最低功耗、最高性能的器件。这些CPLD提供了诸如I/O组、高级时钟控制和出色的设计安全性等先进功能来支持系统级设计。该系列采用 1.8v低功耗PLD产品, 静态功耗很低,性能指标优于XC9500,主要用于用于电池供电系统,国内使用者还不是非常广泛。CoolRunner-II系列的常见型号有XC2C32A、XC2C64A、XC2C128等, 其主要性能如表2-10所示。2-10 CoolRunner-II系列芯片性能特性/产品XC2C32AXC2C64AXC2C128XC2C256XC2C384XC2C512宏单元3264128256384512Tpd(ns)3.84.65.7

39、5.77.17.1SYS (MHz)323263270256217179I/O组2222442.4 FPGAFPGA即现场可编程门阵列(Field Programmable Gate Array),是大规模可编程逻辑器件除CPLD外的另一类PLD器件。前面提到的CPLD和简单PLD都是基于乘积项的可编程结构,即可编程的与阵列和固定的或项组成,而FPGA使用可编程的查找表(Look Up Table, LUT)结构,用静态随机存储器SRAM构成逻辑函数发生器,它的集成度高于CPLD。2.4.1 查找表查找表LUT是现场可编程门阵列的最小逻辑构成单元,其本质上就是一个基于SRAM的逻辑函数发生器。

40、目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。 当用户通过原理图或HDL语言描述了一个逻辑电路以后,PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表,找出地址对应的内容,然后输出即可。下面是一个4输入与门的例子,四输入与门实际逻辑电路实现与用LUT的实现对照表如表2-11所示,其内部结构如图2-18所示。由2-18的内部结构可知,4输入查找表LUT由15个2选一数据选择器和-个161的SRAM存储器构成, A、B、C、D逻辑变量作为数据选择器的控制信号

41、,最后一个数据选择器的输出就是逻辑函数的输出。我们知道,任何4逻辑函数都可以表示为唯一的一个16行逻辑真值表。LUT就是利用数据选择器为输入变量A、B、C、D和它对应的函数值之间建立一条通道,161的SRAM存储器中的每一位恰恰存储的就是对应逻辑函数的输出值。由LUT构成逻辑函数时,只需将真值表中逻辑函数的输出值存储到SRAM存储器的对应位即可,当然,将哪一位输出是由逻辑变量A、B、C、D决定的。表2-11 四输入与门实际逻辑电路实现与用LUT的实现对照表实际逻辑电路LUT的实现方式a,b,c,d 输入逻辑输出地址RAM中存储的内容00000000000001000010.0.01111111

42、111图2-18 FPGA的四输入LUT的内部结构显然,一个N输入的查找表,需要用2的N次幂个位的SRAM单元。当利用N输入的查找表去实现N-1个输入变量的逻辑函数时,几乎一半资源处于闲置状态,所以N不可能很大,否则LUT的利用率很低。2.4.2 FPGA的基本结构和工作原理FLEX10K系列器件的结构和工作原理在Altera的FPGA器件中具有一定的代表性,这里以此为例,介绍FPGA的结构和工作原理。FLEX10K系列结构主要由逻辑阵列块(Logic Array Block, LAB)、嵌入式阵列块(EBA, Embedded Array Block)、快速通道和I/O单元四部分组成,其内部

43、结构如图2-19所示。下面分别介绍各模块的结构。图2-19 FLEX 10K系列的内部结构1. 逻辑阵列块LAB逻辑阵列块LAB由8个逻辑单元(LE,Logic Element)、两条专用高速通路(进位链和级联链)、1个局部互连通道和三个多路选择器组成。LAB可完成一些通用的逻辑功能,例如,实现计数器、加法器、状态机和多路选择器等。其结构如图2-20所示。图2-20 LAB的结构(1) 逻辑单元LE逻辑单元LE(Logic Element)是FLEX10K结构中的最小单元,它能有效地实现逻辑功能。每个LE由一个4输入的查找表LUT、一个带有同步使能的可编程触发器、一个进位链和一个级联链等电路组

44、成。每个LE有两个输出分别可以驱动局部互连和快速通道互连,图2-21是LE结构图。图2-21 LE的结构1) 查找表查找表是一个函数发生器,它能快速计算四变量的任何逻辑函数。其数据输入来自LAB的局部互联通道。2) 可编程触发器可编程触发器可以设置成D、T、JK或RS触发器,其输入信号由接在输入端的二选一数据选择器控制,既可以选择级联链的输出信号,也可以选择来自LAB互连通道的数据4的信号。除了数据输入外,触发器的复位(CLRN)和置位(PRN)是通过置位/复位逻辑电路来实现;在LE中置位/复位逻辑电路有四个输入端分别是LAB控制1、LAB控制2、全部器件清零、数据3,其中LAB控制1、LAB

45、控制2是每个LAB为所有逻辑单元提供的两个复位/置位信号,全部器件清零可对器件中所有的触发器进行复位,其信号优先级最高。选通使能端(ENA)通过控制信号与数据1的或门来实现;控制时钟通过数据选择器选择2个由每个LAB为所有逻辑单元提供的两个时钟信号LAB控制3和LAB控制4其一作为时钟脉冲。3) 进位链(Carry Chain)与级联链(Cascade Chain)FLEX10K的结构提供了两条专用高速通道,即进位链(Carry Chain)与级联链(Cascade Chain)。它们并不占用LAB的局部互连通道(这一点从图2-20和2-21都可以看出),而是在同一LAB中的所有LE和同一行中所有LAB之间建立布线区,将所有的LAB直接连通。进位链为LE提供了快速的进位功能。来自低位的进位信号经进位链(Carry Chain)的连接送至高位LE中的LUT和进位链(Carry Chain),使FLEX10K器件能实现高速计数器和任意位的加法器和比较器。超过8个LE的进位链(Ca

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号