《EDA技术与数字系统设计第5章可编程逻辑器件.ppt》由会员分享,可在线阅读,更多相关《EDA技术与数字系统设计第5章可编程逻辑器件.ppt(189页珍藏版)》请在三一办公上搜索。
1、第5章 可编程逻辑器件,5.1 可编程逻辑器件的基本结构及分类 5.2 低密度可编程逻辑器件GAL 5.3 复杂可编程逻辑器件CPLD 5.4 现场可编程门阵列(FPGA)的基本结构 5.5 其他可编程器件,5.1 可编程逻辑器件的基本结构及分类,5.1.1 概述 可编程逻辑器件是20世纪70年代发展起来的一种新型逻辑器件。它以其独特的优越性能,一出现就受到了人们的青睐。它不仅速度快、集成度高,并且几乎能随心所欲地完成用户定义的逻辑功能(do as you wish),还可以加密和重新编程,其编程次数最大可达1万次以上。使用可编程逻辑器件可以大大简化硬件系统、降低成本、提高系统的可靠性、灵活性
2、和保密性。,5.1.2 基本结构及分类 1.基本结构 PLD的基本结构如图5.1所示。电路的主体是由门构成的与阵列和或阵列,逻辑函数要靠它们实现。为了适应各种输入情况,与阵列的每个输入端都有输入缓冲电路,从而使输入信号具有足够的驱动能力,并产生原变量(A)和反变量()两个互补的信息。,图5.1 PLD的基本结构框图,2.PLD器件的分类 1)按可编程的部位分类 如图5.1所示,在PLD的各个方框中,通常只有部分可以编程或组态。根据它们的可编程情况,一般分为以下几类:(1)可编程只读存储器PROM(Programmable Read-Only Memory):PROM的基本结构包括一个固定的与阵
3、列,其输出加到一个可编程的或阵列上。PROM大多用来存储计算机程序和数据,此时固定的输入用作存储器地址,输出是存储器单元的内容,如图5.2所示。,(2)可编程逻辑阵列PLA(Programmable Logic Array):PLA是由可编程的与阵列和可编程的或阵列构成的,在实现逻辑函数时有极大的灵活性,但是这种结构编程困难,且造价昂贵,如图5.3所示。,图5.2 PROM的阵列结构,图5.3 PLA的阵列结构,(3)可编程阵列逻辑PAL(Programmable Array Logic):PAL器件结合了PLA的灵活性及PROM的廉价和易于编程的特点。其基本结构包括一个可编程的与阵列和一个固
4、定的或阵列,其阵列结构如图5.4所示。,图5.4 PAL(GAL)的阵列结构,(4)通用逻辑阵列GAL(Generic Array Logic):GAL器件是在其他PLD器件的基础上发展起来的逻辑芯片,它的结构继承了PAL器件的与或结构,并在这一基础上有了新的突破,增加了输出逻辑宏单元(OLMC)结构。以上各种PLD的主要区别如表5.1所示。,表5.1 PLD 的 分 类,2)按编程方法分类 最初的ROM是由半导体生产厂制造的,阵列中各点间的连线用厂家专门为用户设计的掩膜板制作,因而称为掩膜编程,一般用来生产存放固定数据和程序的ROM等。由于设计掩膜成本高,有一定的风险,因此人们又研制了一种熔
5、丝编程的PROM,如图5.5所示,其中每个横线与纵线的交点处皆做有熔丝,因而任何一条横线与纵线都是相连的,编程时利用某一形式特殊的高幅度的电流将熔丝烧断即可。,图5.5 熔丝编程PROM示意图,图5.6 PN结击穿法PROM,第三类编程方式称为可擦除PROM,简称EPROM(Erasable Programmable ROM),其编程“熔丝”是一只浮栅雪崩注入型MOS管,其结构如图5.7所示。编程时,在G2栅上注入电子来提高MOS的开启电压,从而达到编程的目的。,图5.7 EPROM的“熔丝”结构(a)结构图;(b)逻辑符号;(c)EPROM的外形图,EPROM器件的上方有一个石英窗(如图5.
6、7(c)所示),就是为擦去编程信息而设置的。擦除时将器件放在紫外线处照射20 min即可。正常运用时,应用黑色胶纸将其封住。另一种可擦除的PROM器件称为EEPROM或称E2PROM,它是一种电擦除的可编程器件,其编程“熔丝”与EPROM结构相仿。还有一种快闪存储器(Flash memory),它是采用一种类似于EPROM的单管浮栅结构的存储单元,制成了新一代用电信号擦除的可编程ROM。,图5.8 SRAM的基本存储单元结构,综上所述,ROM的编程方法是按掩膜ROMPROMEPROME2PROM次序发展的。通常把一次性编程的(如PROM)称为第一代PLD,把紫外光擦除的(如EPROM)称为第二
7、代PLD,把电擦除的(如E2PROM)称为第三代PLD。第二代、第三代PLD器件的编程都是在编程器上进行的。在系统编程(ISP)器件的编程工作可以不用编程器而直接在目标系统或线路板上进行,因而称第四代PLD器件。,3)按集成密度分类 按集成密度分类,PLD可分为低密度可编程逻辑器件(LDPLD)和高密度可编程逻辑器件(HDPLD)。历史上,GAL22V10是低密度PLD和高密度PLD的分水岭,一般也按照GAL22V10芯片的容量区分为LDPLD和HDPLD。GAL22V10的集成密度根据制造商的不同,大致在500750门之间。如果按照这个标准,PROM、PLA、PAL和GAL器件均属于低密度可
8、编程逻辑器件(LDPID),而EPLD、CPLD和FPGA则属于高密度可编程逻辑器件(HDPLD),如图5.9所示。,图5.9 可编程逻辑器件的密度分类,(1)低密度可编程逻辑器件(LDPLD):低密度可编程逻辑器件包括PROM、PLA、PAL和GAL四种器件。(2)高密度可编程逻辑器件(HDPLD):高密度可编程逻辑器件包括EPLD、CPLD和FPGA三种器件。,20世纪80年代中期,Altera公司推出了一种新型的、可擦除的可编程逻辑器件,称为EPLD(Erasable Programmable Logic Device),它是一种基于EPROM和CMOS技术的可编程逻辑器件。EPLD器件
9、的基本逻辑单位是宏单元。宏单元由可编程的与或阵列、可编程寄存器和可编程I/O三部分组成。宏单元和整个器件的逻辑功能均由EPROM来定义和规划。,5.2 低密度可编程逻辑器件GAL,5.2.1 GAL器件的基本结构 GAL(Generic Array Logic)器件是美国晶格半导体公司(Lattice Semiconductor)于1983年推出的一种可电擦写、可重复编程,可设置加密的新型PLD器件。GAL器件采用电擦除技术,无需紫外线照射就可随时进行修改。由于其内部具有特殊的结构控制字,因而它虽然芯片类型少,但编程灵活、功能齐全。,GAL和PAL的与阵列是相似的,但或阵列以及输出寄存器被输出
10、逻辑宏单元OLMC(Output Logic Macro Cell)所取代了,其结构图如图5.10所示。,图5.10 GAL的结构框图,(1)输入缓冲器:输入端为引脚29,共有8个输入。又因为输出端是具有反馈的,也可以用作输入端,所以可利用的输入端总数为16个。,图5.11 GAL16V8的电路结构图,(2)与阵列:它包含有32列和64行的与矩阵,32列表示8个输入的原变量和反变量以及8个输出反馈信号的原变量和反变量,相当于有32个输入变量。64行表示8个输出的8个乘积项,相当于与矩阵有64个输出,即产生64个乘积项。可编程的与阵列有2048个可编程单元,图上表示为2048个码点。(3)输出逻
11、辑宏单元(OLMC):输出引脚为1219共8个。输出逻辑宏单元包括或门、异或门、D触发器、4个4选1多路选择器、输出缓冲器等。,(4)输出电路:从宏单元中引出信号经过三态门缓冲加以输出。另外,还有系统时钟CP(引脚1)、输出三态公共控制端OE(引脚11)、电源VCC(引脚20)和公共地(引脚10)。OLMC的结构示意图如图5.12所示,其主要构成为或门G3,完成或操作。异或门G4完成极性选择。,因为异或门控制变量为0时输出与输入相同,所以当控制变量为1时,输出与输入相反。极性选择还可以用来实现所需的乘积项。GAL的输出只能实现小于8个乘积的函数,如果采用异或门,则可以把大于8项,而每项只含一个
12、变量的函数化简为一个乘积项。例如:,Y=A+B+C+D+E+F+G+H+I(5-1),(5-2),当输入大于8项(如式(5-1)时,可以通过输入端将其反变为式(5-2)输入,而逻辑功能不变,然后通过异或门G4再取反来还原成式(5-1),从而完成大于8个项的乘积函数功能。,图5.12 输出逻辑宏单元结构图,在OLMC中还有D触发器和4个多路选择器,多路选择器的功能如下。(1)乘积项输入多路选择器(PTMUX,Product Term Input Multiplexer)。PTMUX的数据信号分别来自地电平和本组与阵列的第一与项。(2)输出多路选择器(OMUX)。OMUX的数据信号分别来自D触发器
13、的Q端和异或门的输出。(3)三态多路选择器(TSMUX)。它用来从VCC、地电平、OE和第一与项这四路信号中选出一路信号作为输出三态缓冲器的三态控制信号。,(4)反馈多路选择器(FMUX)。它用来从D触发器的端、本级输出、邻级输出和地电平这四路信号中选出一路作为反馈信号,反馈到与阵列。GAL16V8、GAL20V8系列器件的OLMC有寄存器模式、复杂模式和简单模式三种工作模式。用户通过输出引脚定义方程来设定OLMC的工作模式。OLMC三种模式又可细分成七种逻辑组态,如表5.2所示。,表5.2 三种模式和七种组态的关系,5.2.2 GAL器件的介绍 1.GAL器件的命名方法及性能 常用GAL器件
14、一般可分为普通型、通用型、异步型和在系统可编程型4个系列。GAL器件的命名方法如图5.13所示。,图5.13 GAL器件命名方法,图5.14 GAL16V8的引脚图(a)双列直插式;(b)托架式,表5.3 常用GAL器件的主要参数,2.GAL20V8 GAL20V8与GAL16V8的主要区别是与门阵列的输入行从后者的32行增加为40行,每两行对应一个输入,故GAL20V8最大输入量为20个。而两者的OLMC都是8个,所以最大输出量都是8个。GAL20V8多了两个输入多路选择器IMUX,第一个IMUX用来选择引脚1或23作为输入,第二个IMUX用来选择引脚13或14作为输入。除此以外,两者在特性
15、方面没有区别。,由于结构上的变动,其行地址图和结构控制字的配置也略有变化。比如,行地址039对应于与门阵列的40个输入项,第40行为电子标签,第4159行为厂家保留地址,其他均相同。结构控制字除注意到引脚号的变化外,也没有什么区别。图5.15为GAL20V8的引脚图。,图5.15 GAL20V8的引脚图(a)双列直插式;(b)托架式,3.GAL30V18 GAL30V18是采用E2CMOS工艺、FPLA结构的新一代GAL器件。其与门阵列和或门阵列都可编程。图5.16是其引脚图,图5.17是其逻辑功能框图。GAL39V18包含10个可编程的输出逻辑宏单元OLMC,8个可编程的状态逻辑宏单元SLM
16、C,10个输入逻辑宏单元ILMC和10个输入/输出逻辑宏单元IOLMC。其中SLMC对外没有直接引脚,而是埋入式的,在逻辑设计时它只起中间变量的作用。两个时钟输入用以分别控制输入和输出宏单元。,图5.16 GAL39V18的引脚图,图5.17 GAL39V18的逻辑功能框图,4.ispGAL16Z8 ispGAL16Z8是具有在系统可编程和实时在线诊断能力的器件。它可以不用专用的编程器而在用户系统中利用5V电源随时进行编程。其擦写次数在1万次以上。芯片内部有一个电路用来产生必需的高压编程控制信号。,5.2.3 应用GAL的设计 1.设计说明 基本逻辑门为:与门、或门、与非门、或非门、异或门和异
17、或非门(同或门)。由于这个设计要求12个输入端,6个输出端,因此选用GAL16V8芯片。根据电路需要,把2个OLMC的引脚作为专用输入端,其他6个OLMC输出引脚作为专用组合逻辑输出,如图5.18所示。编程软件可自动处理这项工作。此外,由于GAL16V8具有可编程极性功能,输出电平可自行定义,因此本例采用高电平输出有效。,图5.18 GAL16V8基本逻辑门引脚图,2.设计方法 基本逻辑门是简单组合电路,用逻辑方程描述其逻辑功能很方便,6个方程如下:与门:F1=A,为了阅读方便,加些注释是必要的。设计源文件如下:MODULE GATEa,b,c,d,e,f pin 19,1,2,3,4,5;引
18、脚定义g,h,i,j,k,l pin 6,7,8,9,11,12;f1,f2,f3,f4,f5,f6 pin 18,17,16,15,14,13;x=.x.;常量定义equations 逻辑功能描述f1=a,f4=!(g#h);f5=i$j;f6=!(k$l);test_vectors 测试向量段(a,b,c,d,e,f,g,h,i,j,k,l-f1,f2,f3,f4,f5,f6)0,0,0,0,0,0,0,0,0,0,0,0-0,0,1,1,0,1;0,1,0,1,0,1,0,1,0,1,0,1-0,1,1,0,1,0;1,0,1,0,1,0,1,0,1,0,1,0-0,1,1,0,1,0;
19、1,1,1,1,1,1,1,1,1,1,1,1-1,1,0,0,0,1;END基本逻辑门的部分仿真波形如图5.19所示。,图5.19 基本逻辑门的仿真波形,基本逻辑门的逻辑关系也可用真值表来描述。在下面的逻辑描述中,把同或门改为用真值表进行描述,其余部分相同。,equations f1=atruth_table(k,1-f6)0,0-1;0,1-0;1,0-0;1,1-1;,5.3 复杂可编程逻辑器件CPLD,5.3.1 CPLD的基本结构 早期的CPLD主要用来替代PAL器件,所以其结构与PAL、GAL基本相同,采用了可编程的与阵列和固定的或阵列结构。再加上一个全局共享的可编程与阵列,把多个
20、宏单元连接起来,并增加了I/O控制模块的数量和功能。,可见,CPLD中包含3种逻辑资源。逻辑阵列单元、可编程I/O单元和可编程内部互连资源。典型的复杂可编程逻辑器件CPLD有Lattice公司的ispLSI/pLSI系列器件和Altera公司的MAX系列器件等。其中MAX7128S的结构如图5.20所示。由图5.20可见,CPLD的基本结构是由一个二维的逻辑块阵列组成的,它是构成CPLD器件的逻辑组成核心,还有多个输入/输出块以及连接逻辑块的互连资源(由各种长度的连线线段组成,其中也有一些可编程的连线开关,它们用于逻辑块之间、逻辑块与输入/输出块之间的连接)。,图5.20 MAX7128S的结
21、构,5.3.2 Altera公司的器件特点 Altera公司的产品可分为如下系列:Classic系列、MAX(Multiple Array Matrix)系列、FLEX(Flexible Logic Element Matrix)系列、APEX系列以及最近推出的ACE系列。Altera公司的产品基本上属于CPLD结构。它的内部连线均采用集总式互联通路结构,即利用同样长度的一些连线实现逻辑之间的互联。这种结构的互联是集总式,任意两逻辑单元之间的延时是相等并可预测的。Altera公司的FLEX系列芯片同时具有FPGA和EPLD两种结构的优点,得到较广泛的应用。图5.21所示为Altera器件内部互
22、联结构的演变过程。,图5.21 Altera器件内部结构的演变全局连线;(b)可编程连线阵列;(c)增强型可编程连线阵列;(d)快速通道连接,表5.4 Altera器件的结构和工艺,1.FLEX10K系列器件 FLEX10K系列器件是高密度阵列嵌入式可编程逻辑器件系列。这类器件最大可达10万个典型门,5392个寄存器;采用0.5 m CMOS SRAM工艺制造;具有在系统可配置特性;在所有I/O端口中有输入/输出寄存器;采用3.3 V或5.0 V工作模式。,表5.5 FLEX10K(EPF10K1010K100)器件特性,图5.22给出了FLEX10K的结构框图。每组LE连接到LAB,LAB被
23、分成行和列,每行包含一个EAB。LAB和EAB由快速通道互相连接。IOE位于行通道和列通道的两端。,图5.22 FLEX10K的结构框图,1)嵌入阵列块(EAB)嵌入阵列块是一种在输入、输出端口上带有寄存器的灵活RAM电路,用来实现一般门阵列的宏功能,适合实现乘法器、矢量标量、纠错电路等功能。因为它很大也很灵活,所以还可应用于数字滤波和微控制器等领域。EAB为驱动和控制时钟信号提供了灵活的选择,其结构如图5.23所示。,图5.23 FLEX10K的EAB,2)逻辑阵列块(LAB)FLEX10K的逻辑阵列块包括8个逻辑单元、相关的进位链和级联链、LAB控制信号以及LAB局部互连线,如图5.24所
24、示。LAB构成了FLEX10K结构的“粗粒度”构造,可以有效地布线,并使器件的利用率和性能提高。,图5.24 FLEX10K的LAB,3)逻辑单元(LE)LE是FLEX10K结构里的最小逻辑单位,它很紧凑,能有效地实现逻辑功能。每个LE含有一个4输入的LUT、一个可编程的具有同步使能的触发器、进位链和级联链,如图5.25所示。LUT是一种函数发生器,它能快速计算4个变量的任意函数。每个LE可驱动局部及快速通道的互连。,图5.25 FLEX10K的LE,4)快速通道互连 在FLEX10K的结构中,快速通道互连提供LE和I/O引脚的连接,它是一系列贯穿整个器件的水平或垂直布线通道。这个全局布线结构
25、即使在复杂的设计中也可预知性能。而在FPGA中的分段布线却需要开关矩阵连接一系列变化的布线路径,这就增加了逻辑资源之间的延时并降低了性能。,行、列通道的进入可以由相邻的LAB对其中的LE来转换。例如,一个LAB中,一个LE可以驱动由行中的相邻的LAB的某个特别的LE正常驱动的行、列通道。这种灵活的布线使得布线资源得到更有效的利用,如图5.26所示。,图5.26 LAB到行或列互连,5)I/O单元(IOE)一个I/O单元(IOE)包含一个双向的I/O缓冲器和一个寄存器。寄存器可做输入寄存器使用,这是一种需要快速建立时间的外部数据输入寄存器。IOE的寄存器也可当作需要快速“时钟到输出”性能的数据输
26、出寄存器使用。在有些场合,用LE寄存器作为输入寄存器会比用IOE寄存器产生更快的建立时间。IOE可用作输入、输出或双向引脚。MAX+plus编译器利用可编程的反相选项,在需要时可以自动将来自行、列连线带的信号反相。图5.27所示为FLEX10K的I/O单元(IOE)。,图5.27 FLEX10K的I/O单元(IOE),2.MAX7000系列器件 MAX7000系列是高性能、高密度的CMOS CPLD,在制造工艺上采用0.8m CMOS E2PROM技术。其中MAX7000系列包含了多种不同类型的器件,其主要性能指标如表5.6所示。MAX7000系列器件的主要特点如下:,高性能可擦除器件,采用第
27、二代多阵列矩阵(MAX)结构;集成密度门数可达10000门,可用门数为6005000门;引脚之间的延时为6 ns,可达最高151.5 MHz的工作频率;MAX7000S系列通过标准的JTAG接口,支持在系统编程(ISP);,高性能的可编程连线阵列(PIA)提供一个高速的、延时可预测的互连资源网络;每个宏单元(MC)中可编程扩展乘积项(P-Terms)可达32个;具有全面保护设计的可编程保密位;具有独立的全局时钟信号;可由2.5 V(MAX7000B)、3.3 V(MAX7000A)、5.0V(MAX7000S)电源供电。,表5.6 MAX7000系列器件的主要性能指标,MAX7000系列器件的
28、结构如图5.28所示。其中包括:逻辑阵列块LAB(Logic Array Block);宏单元(Macrocell);扩展乘积项(共享和并联)(Expender Product Term);可编程连线阵列PIA(Programmable Interconnect Array);I/O控制块(I/O Control Block)。,图5.28 MAX7000系列器件的结构,1)逻辑阵列块LAB MAX7000器件的结构主要由逻辑阵列块LAB和它们之间的连线构成。每个逻辑阵列块由16个宏单元组成,多个LAB通过可编程连线阵列PIA和全局总线连接在一起。全局总线由所有的专用输入、I/O引脚和宏单元馈
29、给信号。LAB的输入信号有:来自PIA的36个信号;全局控制信号;I/O引脚到寄存器的直接输入通道。,2)宏单元 MAX7000的宏单元由逻辑阵列、乘积项选择矩阵和可编程触发器三个功能块组成,其结构如图5.29所示。逻辑阵列实现组合逻辑功能,给每个宏单元提供5个乘积项。乘积项选择矩阵分配这些乘积项作为到或门和异或门的主要逻辑输入,以实现组合逻辑函数,或者把这些乘积项作为宏单元中触发器的辅助输入,即清除、置位、时钟和时钟使能控制。,图5.29 宏单元的结构,3)扩展乘积项 大多数逻辑函数虽然能够用宏单元中的5个乘积项来实现,但某些逻辑函数较为复杂,要附加乘积项。为提供所需的逻辑资源,不利用另一个
30、宏单元,而是利用MAX7000结构中共享和并联扩展乘积项,作为附加的乘积项直接送到LAB的任意宏单元中。在实现逻辑综合时,利用扩展项可保证用尽可能少的逻辑资源实现尽可能快的工作速度。,共享扩展项在每个LAB中有16个扩展项。它是由宏单元提供一个未使用的乘积项,并把它们反馈到逻辑阵列,便于集中管理使用。每个共享扩展乘积项可被LAB内任何(或全部)宏单元使用和共享,以实现复杂的逻辑函数。,4)可编程连线阵列(PIA)通过PIA的可编程布线通道可把多个LAB相互连接,构成所需的逻辑。它能够把器件中任何信号源连接到目的地。所有的专用输入、I/O引脚的反馈、宏单元的反馈均连入PIA中,并且布满整个器件。
31、图5.30示出了来自PIA的信号是如何布线到LAB的。,图5.30 PIA布线图,5)I/O控制块 I/O控制块允许每个I/O引脚单独地配置成输入、输出和双向工作方式。所有I/O引脚都有一个三态缓冲器,它的使能端由OE1n、OE2n及VCC、GND信号中的一个控制。I/O控制块的结构如图5.31所示。,图5.31 I/O控制块的结构,5.3.3 Lattice 公司的器件产品 1.ispLSI系列器件介绍 ispLSI/pLSI系列器件是Lattice公司于20世纪90年代初推出的高性能大规模可编程逻辑器件,集成度在1000门到25000门之间,Pin-to-Pin(管脚到管脚)延时最小可达3
32、.5ns,系统工作速度最高可达180MHz。器件具有在系统编程能力和边界扫描能力,适合在计算机、仪器仪表、通信设备、雷达、DSP系统和遥测系统中使用。ispLSI/pLSI主要包括6个系列:ispLSI/pLSI1000、2000、3000、5000、6000和8000系列。各系列概况见表5.7。,表5.7 Lattice公司ispLSI/pLSI各系列器件概况,表5.7中各系列器件的结构和性能相似,都具有在系统可编程能力,但各系列器件在用途上有一定的侧重点,因而在结构和性能上也略有不同。各系列器件的特点及适用范围如下:(1)ispLSI1000/E系列器件是通用器件。(2)ispLSI200
33、0系列适合高速度系统设计。(3)ispLSI3000系列是为复杂数字系统设计的。(4)ispLSI6000系列是带有存储器的更高密度产品。,图5.32 ispLSI1016的内部结构,图5.33 ispLSI1016的引脚图(PLCC),1)全局布线池GRP(Global Routing Pool)该区位于芯片的中央,其任务是将所有片内逻辑联系在一起,组成系统逻辑功能。2)通用逻辑模块GLB(Generic Logic Block)GLB是图5.32中GRP两边的小方块,每边8块,共16块。GLB是整个器件的逻辑核心。图5.34是GLB的结构图,它由与阵列、乘积项共享阵列、四输出逻辑宏单元和控
34、制逻辑组成。,图5.34 GLB结构,由图5.35可见,乘积项共享阵列的输入来自4个或门,而其4个输出则用来控制该单元中的4个触发器。至于哪一个或门送给哪一个触发器不是固定的,而是靠编程决定的,一个或门输出可以同时送给几个触发器,一个触发器也可以同时接受几个或门的输出信息,有时为了提高速度,还可以跨过PTSA直接将或门输出送至某个触发器。可见,PTSA的存在,使ispLSI1016在乘积项共享方面要比GAL的OLMC更灵活。,图5.35 GLB的标准组态,3)输入/输出单元IOC(Input Ouput Cell)输入/输出单元有输入、输出和双向I/O三类组态,由控制输出三态缓冲电路使能端的
35、MUX来选择。每个I/O单元还有一个有源上拉电阻,当I/O端不使用时,该电阻自动接上以避免因输入悬空引入的噪声和减小电路的电源电流。,4)输出布线区ORP(Output Routing Pool)图5.36是ORP的逻辑图,它是介于GLB和IOC之间的可编程互联阵列。阵列的输入是8个GLB的32个输出端;阵列有16个输出端,分别与该侧的16个IOC相连。通过对ORP的编程,可以将任一个GLB输出灵活地送到16个I/O端的某一个。可以将对GLB的编程和对外部引脚的排列分开进行,并可实现在不改变外部引脚排列的情况下修改芯片内部的逻辑设计。,图5.36 ORP的逻辑图,5)时钟分配网络CDN(Clo
36、ck Distribution Network)时钟分配网络产生5个全局信号,CLK0、CLK1、CLK2、IOCLK0和IOCLK1,其结构如图5.37所示。,图5.37 时钟分配网络的结构,2.ispMACH4A ispMACH4A系列是Lattice的又一款高级CPLD。它结构灵活、便于使用、易掌握、成本低。ispMACH4A器件的密度范围为32512个宏单元,这些宏单元可百分之百地利用,全部引脚都输出保留。它可在5 V和3.3 V电压下工作。,图5.38 ispMACH4A的方框图和PAL块结构,在ispMACH4A结构中,宏单元通过逻辑分配器与乘积项巧妙连接,而I/O引脚经由输出开关
37、矩阵与宏单元灵活相连。此外,可通过输入开关矩阵选择更多的输入布线。这些资源的提供使设计更加灵活,效率更高。宏单元与I/O单元的比率定义为PAL块内部的宏单元数与I/O单元数之比。ispMACH4A各器件的主要结构如表5.8所示。,表5.8 ispMACH4A各器件的主要结构,5.4 现场可编程门阵列(FPGA)的基本结构,5.4.1 FPGA的整体结构 图5.39是FPGA的结构原理图。从图中可以看出,FPGA主要由三部分组成:可编程逻辑块CLB(Configurable Logic Block)、可编程输入/输出模块IOB(Input/Output Block)和可编程内部连线PI(Prog
38、rammable Interconnect)。,图5.39 FPGA的结构,1.可编程逻辑块CLB CLB是FPGA的基本逻辑单元,其内部又可以分为组合逻辑和寄存器两部分。组合逻辑电路实际上是一个多变量输入的PROM阵列,可以实现多变量任意函数;而寄存器电路是由多个触发器及可编程输入、输出和时钟端组成的。在FPGA中,所有的逻辑功能都是在CLB中完成的。,2.可编程输入/输出模块IOB IOB为芯片内部逻辑和芯片外部的输入端/输出端提供接口,可编程为输入、输出和双向I/O三种方式。3.可编程内部连线PI FPGA依靠对PI的编程,将各个CLB和IOB有效地组合起来,实现系统的逻辑功能。FPGA
39、的这种所谓的逻辑单元阵列(LCA)结构,具有门阵列和可编程逻辑器件的双重特征,既像门阵列,通过内部可编程连线将CLB按设计要求连接在一起,又具有可编程器件的特点,每个单元都可以编程。,5.4.2 Spartan-E系列的基本结构 随着半导体技术的飞速发展,Xilinx公司的FPGA产品也经历着巨大的变化。XC3000、XC4000、Spartan和Virtex系列FPGA已经基本被淘汰,Spartan/XL和Virtex-E系列FPGA也逐渐退出市场。Spartan-E系列产品的主要技术参数如表5.9所示。,表5.9 Spartan-E系列产品的主要技术参数,如图5.40所示,Spartan-
40、E系列产品器件结构采用成熟的Virtex-E架构,主要由可配置逻辑模块(CLB,Configurable Logic Block)、输入/输出接口模块(IOB,Input/Output Block)、随机存储器块(BlockRAM)和数字延迟锁相环(DLL,Delay-Locked Loop)组成。其中,CLB用于实现FPGA的大部分逻辑功能,IOB用于提供管脚与内部逻辑之间的接口,BlockRAM用于实现FPGA内部数据的随机存取,DLL用于FPGA内部的时钟控制和管理。,图5.40 Spartan-E系列产品的结构示意图,1.可配置逻辑模块CLB 在Spartan-E系列产品中,逻辑单元(
41、LC,Logic Cell)是CLB的基本结构。1个LC包括1个4输入函数发生器、进位控制逻辑和存储逻辑。在LC中,每个4输入函数发生器可用于实现1个4输入查找表(LUT,LookUp Table)、161 bit同步RAM或161 bit移位寄存器;存储逻辑可配置为D触发器或锁存器;进位控制逻辑与CLB中的运算逻辑相配合,可以在1个LC中实现1个1位全加器。在LC中,每个函数发生器的输出既可以驱动CLB的输出,也可以作为D触发器的输入。,在Spartan-E系列产品中,每个CLB含有两个切片(Slice),每个Slice包括两个LC。Slice的内部结构如图5.41所示。除了4个基本的LC外
42、,在Spartan-E系列产品的CLB中还包括附加逻辑和运算逻辑。CLB中的附加逻辑可以将2个或4个函数发生器组合起来,用于实现更多输入的函数发生器。,图5.41 Spartan-E Slice的结构,2.输入/输出接口模块IOB Spartan-E系列产品的IOB提供FPGA内部逻辑与外部封装管脚之间的接口。如图5.42所示,在IOB中,三个内部寄存器可以实现D触发器和锁存器,它们共享一个时钟信号(CLK)和置位/复位信号(SR),并具有独立的使能信号(ICE和OCE)。,在Spartan-E系列产品中,IOB的外部信号输入路径上包括一个缓冲器,用于控制外部输入信号是否直接进入FPGA内部。
43、如果外部输入信号不直接进入FPGA内部,则它将通过IOB中的内部寄存器输入FPGA内部。通过配置IOB的输入缓冲器,可以支持Spartan-E系列产品的所有输入接口信号标准。,图5.42 Spartan-E IOB的结构,在SpartanI-E系列产品中,IOB的信号输出路径上包括一个三态输出缓冲器,用于控制FPGA内部信号是否直接输出到FPGA外部。如果FPGA内部信号不直接输出到FPGA外部,那么它将通过IOB中的内部寄存器输出。通过配置IOB的输出驱动,可以支持Spartan-E系列产品的所有输出接口信号标准。大多数情况下,输出信号的高电压取决于接口电压VCCO。,图5.43 Spart
44、an-E的管脚Bank示意图,如图5.43所示,Spartan-E系列产品的I/O管脚分布在8个Bank中,每个Bank的接口电压VCCO必须保持一致,不同Bank的VCCO允许不同。,表5.10 Spartan-E兼容的输出接口标准,3.随机存储器块BlockRAM BlockRAM在Spartan-E内部按列排列,并沿着FPGA的两个垂直边摆放。Spartan-E内部的BlockRAM单位容量为4 Kb,单位高度与4个CLB模块的高度相同。如图5.44所示,Spartan-E内部的BlockRAM是一个完全同步的双端口RAM,端口的数据宽度可独立配置。通过级联多个BlockRAM可以实现F
45、PGA内部的大容量数据存储。,图5.44 Spartan-E BlockRAM接口,4.数字延迟锁相环DLL 在Spartan-E系列产品中,每个全局时钟缓冲器都与一个数字延迟锁相环(DLL)相连,每个DLL可以驱动两个全局时钟网络。通过监控输入时钟信号和分布时钟信号,DLL可以自动调整并消除输入时钟信号与FPGA内部分布时钟之间的相位偏移,从而保证到达内部触发器的时钟边沿与时钟输入管脚的信号同步。,5.4.3 Xilinx FPGA其他系列简介 Xilinx早期产品是XC2000、XC3000和XC4000系列。随着大规模集成电路的发展和FPGA技术的迅速发展,Xilinx公司不断推出许多大
46、容量、高性能的新产品,例如Xilinx Spartan/XL系列、Xilinx Spartan-系列以及Xilinx Virtex系列等。下面简要介绍它们的主要特点和资源配置。,1.Spartan/XL系列 Spartan是第一个可以替代ASIC的高集成度FPGA产品。它是在XC4000的结构基础上改进而成的。在Spartan系列基础上,进一步又出现了Spartan/XL系列。该系列芯片具有快速的进位逻辑,有更灵活的高速时钟网络,其CLB具有锁存能力,输出驱动能力达12 mA或24 mA,而且具有5 V和3.3 V的PCI总线兼容性以及加强的边界扫描等特点,其应用前景极为广泛。Spartan/
47、XL系列FPGA的主要资源配置如表5.11所示。,表5.11 Spartan/XL系列FPGA的主要资源配置,2.Xilinx Spartan系列 Xilinx Spartan-FPGA系列有Xilinx Spartan-2.5V系列以及Xilinx Spartan-1.5V系列。它的主要特点是采用了较低的接口电压,有效地减少了电路功耗,提高了芯片的集成度。Xilinx Spartan-2.5V系列FPGA提供15 000到200000的系统门级电路,可利用的I/O端数也增加到284个,最高工作频率可达到200MHz。XilinxSpartan-1.5V系列FPGA具有更高的性能指标和更丰富的
48、逻辑资源。表5.12和表5.13分别给出了Xilinx Spartan-2.5V及1.5 V系列FPGA的主要资源配置。,表5.12 Xilinx Spartan-2.5 V系列FPGA的主要资源配置,表5.13 Xilinx Spartan-1.5V系列FPGA的主要资源配置,3.Xilinx Virtex系列 Xilinx Virtex系列有Virtex、Virtex-及Virtex-E等系列产品。表5.14和表5.15分别给出了Virtex及Virtex-E系列FPGA的资源配置。通过以上介绍,可见FPGA的发展趋势是芯片容量越来越大,最大系统门数急剧增加,CLB阵列也迅速扩大,片内RA
49、M由原来的数十个增加到百万以上,可利用的I/O端数已经猛增到数万以上。而且随着超大规模集成电路的迅猛发展,FPGA还将进一步向着大容量、多功能、高速度和低电压的方向发展。FPGA必将在数字系统设计中发挥越来越重要的作用。,表5.14 Xilinx Virtex 系列FPGA的资源配置,表5.15 Xilinx Virtex-E 系列FPGA的资源配置,大部分FPGA采用基于SRAM的查找表逻辑形成结构,就是用SRAM(静态随机存储器)来构成逻辑函数发生器。一个N输入查找表(LUT)可以实现N个输入变量的任何逻辑功能,如N输入“与”、N输入“异或”等。图5.45所示是4输入LUT,其内部结构如图
50、5.46所示。一个N输入的查找表,需要SRAM存储N个输入构成的真值表,需要用2的N次幂个位的SRAM单元。显然N不可能很大,否则LUT的利用率将很低。输入多于N个逻辑函数时,必须用几个查找表分开实现。,图5.45 FPGA查找表单元,图5.46 FPGA查找表单元内部结构,5.5 其他可编程器件,5.5.1 在系统可编程数字开关GDS和互连器件GDX ispGDS(isp Generic Digital Switch)和ispGDX(isp Generic Digital Crosspoint)系列产品主要应用于信号布线、微处理器接口连接、多位的数据/地址总线接口等系统设计中。,1.在系统可