1、第1章 可编程逻辑器件 1.1 1.1 可编程逻辑器件概述可编程逻辑器件概述 1.2 1.2 低密度低密度PLD PLD 1.3 1.3 高密度高密度PLD PLD 1.4 CPLD1.4 CPLD和和FPGA FPGA 1.5 1.5 基于可编程逻辑器件的数字系统的设计流程基于可编程逻辑器件的数字系统的设计流程 1.6 1.6 可编程逻辑器件的发展趋势可编程逻辑器件的发展趋势 第1章 可编程逻辑器件 第1章 可编程逻辑器件 1.1 1.1 可编程逻辑器件概述可编程逻辑器件概述随着计算机和微电子技术的快速发展,电子器件由早期的电子管、晶体管、中小规模集成电路,发展到超大规模集成电路(几万门以上
2、)以及许多具有特定功能的专用集成电路ASIC(Application-Specific Integrated Circuit)。第1章 可编程逻辑器件 在现代复杂的数字逻辑系统中,专用集成电路的应用越来越广泛,而曾经广泛使用的由基本逻辑门和触发器构成的中小规模集成电路(例如,TTL(Transistor-Transistor Logic)和CMOS(Complementary Metal-Oxide Semiconductor)系列数字集成电路)所占的比例却越来越少。主要原因是这些通用成品集成电路只能够实现特定的逻辑功能,不能由用户根据具体的要求进行修改,而且,许多使用不上的逻辑功能和集成电路
3、管脚不能够发挥应有的作用,造成电子产品的功耗增加,印刷电路板和产品体积增大。第1章 可编程逻辑器件 虽然ASIC的成本很低,但设计周期长,投入费用高,只适合大批量应用,因为只有大批量的应用,才能降低单个芯片的成本。可编程逻辑器件PLD(Programmable Logical Device)自问世以来,经历了从低密度的EPROM、PLA、PAL、GAL到高密度的现场可编程门阵列FPGA(Field Programmable Gate Array)和复杂可编程逻辑器件CPLD(Complex Programmable Logical Device)的发展过程。第1章 可编程逻辑器件 可编程逻辑器
4、件实际上是一种电路的半成品芯片,这种芯片按一定排列方式集成了大量的门和触发器等基本逻辑元件,出厂时不具有特定的逻辑功能,需要用户编程后才能使用;利用专用的开发系统对其进行编程,在芯片内部的可编程连接点进行电路连接,使之完成某个逻辑电路或系统的功能,成为一个可在实际电子系统中使用的专用芯片。第1章 可编程逻辑器件 相对于固定的逻辑器件,PLD芯片具有很多优点,它在设计过程中为设计者提供了非常大的灵活性,通过电子设计自动化工具帮助设计者完成设计输入、仿真、布局布线和将设计方案下载到PLD芯片中。对于基于PLD的电子系统设计来说,设计中的反复修改只需要简单地改变编程文件就可以了,而且设计改变的结果可
5、立即在实际系统中看到。第1章 可编程逻辑器件 可编程逻辑器的出现打破了中小规模通用型集成电路和大规模专用集成电路垄断的局面,大规模可编程逻辑器件既继承了专用集成电路的高集成度、高可靠性的优点,又克服了专用集成电路设计周期长、投资大和灵活性差的缺点。而且,可编程逻辑器件设计灵活,发现错误时可以及时修改,逐步成为复杂数字逻辑系统的理想器件,非常适合于科研单位开发小批量和多品种的电子产品。甚至,有时设计专用集成电路时,也将使用可编程逻辑器件作为实现功能样机的必需步骤。第1章 可编程逻辑器件 可擦除的可编程逻辑器件EPLD(Erasable Programmable Logical Device)则是
6、由用户通过编程实现具体逻辑功能的集成电路。目前,广泛使用的低密度的PLD(所谓低密度,指包含的等效逻辑门低于1000个的PLD芯片,一个门阵等效门就是一个二输入端的与非门)有可编程阵列逻辑PAL(Programmable Array Logic)、通用阵列逻辑GAL(Generic Array Logic)芯片。第1章 可编程逻辑器件 随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程
7、逻辑器件(Field PLD),其中应用最广泛的当属现场可编程门阵列FPGA和复杂可编程逻辑器件CPLD。许多著名的半导体集成电路制造公司都不断地推出了各种新型的高密度PLD(包含的等效逻辑门高于1000个的PLD芯片),高密度PLD包含两种不同结构的器件,一种是复杂可编程逻辑器件,另一种是现场可编程门阵列结构的器件。第1章 可编程逻辑器件 相对于低密度的PLD来说,高密度PLD具有更多的输入/输出、乘积项(product term)和宏单元(macrocell),复杂可编程逻辑器件CPLD含有多个逻辑单元,其中每个逻辑单元都相当于一个低密度的PLD(例如一个GAL16V8),通过内部可编程连
8、线PI(Programmable Interconnect)将芯片内部的逻辑单元连接起来,仅用一个复杂可编程逻辑器件就能够完成比较复杂的逻辑功能。第1章 可编程逻辑器件 FPGA/CPLD实际上就是一个子系统部件。这种芯片受到了电子工程设计人员的广泛关注和欢迎。经过十几年的发展,许多公司都开发出了多种可编程逻辑器件,比较典型的是XILINX公司的FPGA器件系列和Altera公司的CPLD器件系列,它们提供的可编程逻辑器件产品占据了较大的PLD市场,全球60%以上的PLD/FPGA产品是由Altera公司和XILINX公司提供的。当然还有许多其它公司发明的PLD/FPGA产品,如Lattice
9、、Vantis、Actel、Quicklogic、Lucent公司等。第1章 可编程逻辑器件 FPGA器件在结构上,逻辑单元(logic cell)按阵列排列,由可编程的内部连接线连接这些逻辑单元。一般来说,逻辑单元比CPLD的乘积项和宏单元的功能要少,但是含有丰富的触发器和存储器资源,将这些逻辑单元级联起来,就能够完成比较复杂的逻辑功能和大规模(百万门级)的数字系统的设计。第1章 可编程逻辑器件 FPGA的基本结构由以下几个部分组成:可编程逻辑功能块CLB(Configurable Logic Block)在芯片上按矩阵排列;在芯片四周,有许多接口功能块IOB(Input/Output Bl
10、ock);可编程内部连线PI是FPGA中最灵活的一部分,可以在逻辑功能块的行与列以及接口功能块之间实现互连。可编程逻辑功能块CLB、接口功能块IOB和可编程内部连线PI三个主要部分构成了可编程逻辑单元阵列LCA(Logical Cell Array)。CLB实现用户定义的基本逻辑功能,IOB实现内部逻辑与器件封装引脚之间的接口,可编程内部连线PI 完成模块之间的信号传递。第1章 可编程逻辑器件 FPGA的配置数据存放在静态随机存储器SRAM中,即FPGA的所有逻辑功能块、接口功能块和可编程内部连线PI的功能都由存储在芯片上的SRAM中的编程数据来定义。由于断电之后,SRAM中的数据会丢失,因而
11、每次接通电源时,由微处理器来进行初始化和加载编程数据,或将实现电路的结构信息保存在外部存储器EPROM中。FPGA由EPROM读入编程信息,由SRAM中的各位存储信息控制可编程逻辑单元阵列中各个可编程点的通断,从而达到现场可编程的目的。第1章 可编程逻辑器件 XILINX 公司的现场可编程门阵列FPGA有XC3000A/L、XC3100A/L、XC4000A/L、XC5000、XC6200、XC8000、Spartan、Spartan-/Spartan-E、Virtex等系列产品。XC4000系列产品采用了CMOS和SRAM技术,其功耗非常低,在静态和等待状态下的功耗仅为毫瓦级。XILINX公
12、司的Virtex-PRO系列采用0.13 m、9层金属结构,是一款基于Virtex-系列基础的高端FPGA,主要特点是在Virtex-上增加了高速I/O接口能力和嵌入了IBM公司的PowerPC处理器。第1章 可编程逻辑器件 除了FPGA产品外,XILINX公司的CPLD产品有XC9500(5 V CPLD系列)和XC9500XL(3.3 V CPLD系列)系列产品,采用了0.35 m技术,对芯片的编程次数达到一万次,具有在线可编程的功能。结合XC9500系列CPLD的速度快和CoolRunner XPLA3系列CPLD的功耗低的特点,XILINX 公司又推出第二代CPLD产品CoolRunn
13、er-系列CPLD,例如XC2C128等。CoolRunner-系列CPLD的内核电源电压为1.8 V,支持1.5 V、1.8 V、2.5 V和3.3 V等多种输入/输出电平,具有XC9500系列CPLD没有的时钟分频和倍频功能,特别适合采用电池供电的电子产品。第1章 可编程逻辑器件 Altera公司的产品有MAX7000、MAX9000、FLEX8000、FLEX10K、APEX 20K、ACEX、Cyclone和Stratix等系列产品。MAX系列CPLD采用EEPROM技术和乘积项的结构(Product Term Architecture);FLEX系列CPLD采用SRAM技术和查表结构
14、LUT(Look Up Table Architecture);Stratix系列内嵌乘加结构的DSP块,采用1.5 V内核、0.13 m全铜工艺。MAX系列非常适合应用于复杂的组合逻辑和状态机数字系统中(例如接口总线控制器、译码器等);FLEX系列适合应用于需要进行快速运算的数字逻辑系统中(例如数字信号处理、PCI接口电路和计数器等);APEX 20K系列同时具备了MAX系列和FLEX系列的特点,内部还有高速双端RAM。第1章 可编程逻辑器件 Stratix系列芯片具有如下几个特点:(1)内嵌三级存储单元:可配置512 bit小容量RAM;4 Kb容量的标准RAM(M4K);512 Kb的大
15、容量RAM(MegaRAM),并自带奇偶校验。(2)内嵌乘加结构的DSP块(包括硬件乘法器/硬件累加器和流水线结构),适于高速数字信号处理和各类算法的实现。(3)全新布线结构,分为三种长度的行列布线,在保证延时可预测的同时,可提高资源利用率和系统速度。第1章 可编程逻辑器件(4)增强时钟管理和锁相环能力,最多可有40个独立的系统时钟管理区和12组锁相环PLL,实现K*M/N的任意倍频/分频,且参数可动态配置。(5)增加片内终端匹配电阻,提高信号完整性,简化PCB布线。第1章 可编程逻辑器件 Lattice半导体公司将其先进的在系统可编程ISP技术应用到高密度可编程逻辑器件(High Densi
16、ty Programmable Logical Device)中,先后推出了ispLSI 1000、ispLSI2000、ispLSI3000、ispLSI5000、ispLSI6000和ispLSI8000等一系列高密度在系统可编程ispLSI(In System Programmable Large Scale Integration)逻辑器件、宏阵列CMOS高密度(Macro Array CMOS High-density,MACH)器件,其规模为32512个宏单元,多达2万个门,传输延迟tpd可低到4.5 ns,具有连续时的内部连线结构,可以预知内部逻辑的定时关系。第1章 可编程逻辑器
17、件 Lattice半导体公司还推出了MachXO系列器件,该器件是一种将FPGA和存储配置信息的存储器合二为一的可编程逻辑器件,不需要在FPGA芯片外再挂一片外部保存配置信息的存储器,器件内部包含了断电能够存储配置信息的存储器,不会因为通过读取外挂存储器的内容而泄露配置信息,简化了硬件电路的设计,提高了系统设计的安全性。第1章 可编程逻辑器件 不同厂家对可编程逻辑器件的叫法不尽相同。XILINX公司把基于查找表技术、SRAM工艺、外挂配置用的EEPROM的PLD叫做FPGA,把基于乘积项技术和Flash(类似EEPROM工艺)的PLD叫做CPLD;Altera公司把自己的PLD产品MAX系列(
18、乘积项技术,EEPROM工艺)、FLEX系列(查找表技术,SRAM工艺)都称为复杂CPLD。由于FLEX系列也采用SRAM工艺,基于查找表技术,要外挂配置用的EPROM,用法和XILINX公司的FPGA一样,因此很多人把Altera公司的FELX系列产品也叫做FPGA。其实现场可编程门阵列FPGA与复杂可编程逻辑器件CPLD都是可编程逻辑器件,它们都是在PAL、GAL等逻辑器件的基础之上发展起来的。第1章 可编程逻辑器件 还有一种反熔丝(Anti-fuse)技术的FPGA,如Actel和Quicklogic公司的部分产品就是采用这种工艺。其使用方法与上述可编程逻辑器件一样,但是这种可编程逻辑器
19、件的缺点是不能重复改写,所以初期开发过程的费用也比较高。但是采用反熔丝技术的可编程逻辑器件也有许多优点:速度更快,功耗更低,同时抗辐射能力更强,耐高温,可以加密,所以在一些有特殊要求的领域中运用得比较广泛,如军事及航天等领域。可编程逻辑器件PLD的分类如图1-1所示。第1章 可编程逻辑器件 图1-1 可编程逻辑器件PLD的分类第1章 可编程逻辑器件 1.2 1.2 低低密密度度PLDPLD早期的可编程逻辑器件有可编程只读存储器(PROM)和紫外线可擦除只读存储器(EPROM)。由于结构的限制,它们只能完成简单的数字逻辑功能。1 1只读存储器只读存储器ROM(Read Only Memory)R
20、OM(Read Only Memory)1)固定ROM固定ROM所存的信息由厂家完全固定下来,使用过程中无法修改,这种ROM灵活性差,但成本低,可靠性高,主要用于能够批量生产的产品中。第1章 可编程逻辑器件 2)可编程存储器PROM(Programmable ROM)PROM的信息由用户自己根据需要编程写入,但只能够写入一次,一经写入则不能够再修改。3)可改写的可编程存储器EPROM(Erasable PROM)EPROM的信息内容可以多次编程和改写,可以通过紫外线等照射擦除原来的内容。EPROM是采用浮栅技术生产的可编程存储器,一般的EPROM用叠栅MOS管(SIMOS,Stacked-ga
21、te Injection MOS)构成基本的存储单元。EPROM的结构如图1-2所示。第1章 可编程逻辑器件 图1-2 EPROM的结构第1章 可编程逻辑器件 浮栅被绝缘物质SiO2所包围。在写入数据前,浮栅没有电子,当源极接地,给控制栅(接在行选择线上)加上控制电压时,在漏源极之间形成N型沟道(在P型衬底上感应出一个反型层,P型衬底的少子电子连接漏源极的两个N型半导体而导通),MOS管导通,如图1-3(a)所示;而当浮栅带有电子时,则衬底表面感应出正电荷,这使得MOS管的开启电压变高,如果给同样控制栅加上同样的控制电压,MOS管仍然处于截止状态。SIMOS管可以利用浮栅是否积累有负电荷来存储
22、二值数据。第1章 可编程逻辑器件 在漏源极之间加足够高的正电压后,漏源极之间形成强电场,使衬底与漏极之间的PN结产生雪崩击穿,从而使得一些速度较高的电子穿越SiO2层,到达浮栅。当漏极上外加的高压去掉以后,俘获在浮栅上的电子,由于被绝缘层所包围无法消散而长期保存在浮栅上,使浮栅带负电位,从而使该场效应管的开启电压增加,在正常工作状态下处于截止状态,并且在漏源极之间的沟道中感应出正电荷。这样漏源极之间失去N沟道,即使在控制栅上加+5 V电压,漏、源极之间也不可能形成导电沟道,如图1-3(b)所示。第1章 可编程逻辑器件 图1-3 EPROM的工作原理第1章 可编程逻辑器件 EPROM上方开设一个
23、石英玻璃窗,在紫外线照射下,使SiO2层中产生电子-空穴对,为浮栅上的电子提供泄放通道。对EPROM编程时,必须先进行擦除后,才能进行编程。当叠栅MOS管作为基本存储单元构成的EPROM芯片在使用前浮栅上没有电子时,称为空白片。写入过程实际上是给某些存储单元的浮栅上注入电子的过程。第1章 可编程逻辑器件 图1-4 EEPROM存储单元的结构第1章 可编程逻辑器件 4)电可改写的可编程存储器EEPROM(Electrically EPROM)EEPROM存储单元的结构如图1-4所示。在浮栅与漏区之间有一个薄氧化层(厚度在2108 m以内)的区域,这个区域成为隧道区。当隧道区的电场强度大到一定程度
24、(大于107 V/cm)时,在漏区与浮栅之间出现导电隧道,电子可以通过,形成电流,使得一些电子穿越SiO2层,到达浮栅。这种现象称为隧道效应。当漏极上外加的高压去掉以后,在浮栅上的电子由于被绝缘层所包围无法消散而长期保存在浮栅上,使浮栅带负电位,从而使该场效应管的开启电压增加,在正常工作状态下处于截止状态。第1章 可编程逻辑器件 5)快闪(Flash)存储器快闪存储器(Flash EEPROM)又称为快擦快写存储器,快闪存储器的结构如图1-5所示。浮栅与P型衬底的距离更短,约为100。编程时,当源极接地、漏极接4.58 V、栅极接+12 V左右电压时,会使一些电子穿越薄氧化层,到达浮栅。当需要
25、擦除Flash EEPROM上的信息时,源极接5 V、漏极开路和栅极接12 V电压,使浮栅的电子泄放掉。第1章 可编程逻辑器件 图1-5 Flash EEPROM存储单元的结构第1章 可编程逻辑器件 6)熔丝(fuses)型PROM熔丝采用很细的低熔点合金丝多晶硅导线。在写入数据时,只要将需要写入0的那些存储单元的熔丝烧断。编程时,先输入地址信号,提高VCC到编程所需要的电压,在对应写入0的位线上,加入编程脉冲,写入放大器的输出为低电平,这时有很强的脉冲电流通过熔丝,并将熔丝烧断。熔丝编程结构示意图如图1-6所示。第1章 可编程逻辑器件 图1-6 熔丝编程结构示意图第1章 可编程逻辑器件 芯片
26、中,每个数据皆为1,因而不带任何信息,是一个半成品,然后根据用户的需要,用一个能产生编程电流或编程电压(是一种特殊的波形的电流或电压)的编程器,将不需要连接处的熔丝熔断,制成所需要的ROM。这种可以在ROM半成品上编程的器件称为可编程ROM(PROM),是最原始的PLD。第1章 可编程逻辑器件 7)反熔丝(anti-fuse)型PROM一般当熔丝构成一个连接导体时,过大的电流流过该熔丝并将熔丝烧断。而对反熔丝来说,有编程高电压加到反熔丝两端后,反熔丝却呈现很小的电阻。反熔丝型PROM的结构如图1-7所示,电介质夹在多晶硅和扩散层之间。与熔丝型PROM相反,当有编程高电压(例如18 V)加到电介
27、质两端时,击穿介质,介质呈现很小的电阻(小于500),将两层导电材料连通;在没有编程时,在两层导电材料之间的介质的电阻非常高(大于100 M),介质相当于绝缘体。第1章 可编程逻辑器件 图1-7 反熔丝型PROM的结构示意图第1章 可编程逻辑器件 反熔丝型PROM的优点是反熔丝所占用的面积很小,适用于对集成度要求很高的可编程逻辑器件的开关,但是,其缺点同样明显,属于一次性可编程器件,不能够重复使用。使用PROM可以实现组合逻辑功能。分析PROM的结构可知,其译码器部分实际是一个由2n个n输入与门组成的与门阵列(n是阵列的输入端数),即PROM相当于一个不可编程的与阵列和一个可编程的或阵列。每个
28、与门输出一个n变量的乘积项,而存储矩阵的每一个输出端代表一个对这些乘积项进行或运算的或门,因此一个PROM实际是一个按标准“与或”式运算的组合逻辑电路,见图1-8。例如:第1章 可编程逻辑器件 F=ABC+NP+XYW将输入逻辑信号ABCNPXYW 分别接在PROM的地址线A7A6A5A4A3A2A1A0上,输出F接在PROM的数据线D0上。编程时,将地址线A7A6A5、A4A3、A2A1A0都为1的那些存储单元的第一位写为1(如果没有其它逻辑函数考虑),其它单元写为0,就能够实现该组合逻辑功能。第1章 可编程逻辑器件 图1-8 PROM实现组合逻辑功能第1章 可编程逻辑器件 由于PROM的与
29、阵列是全译码器,即它产生了输入逻辑信号的全部最小项,因而所占用的芯片面积随输入信号数量的增加而急剧增加,从而使芯片的成本增加,速度降低。实际上,大多数组合逻辑函数并不需要所有的最小项,因此,用PROM实现组合逻辑的功能会使PROM的资源利用率不高。第1章 可编程逻辑器件 2 2可编程逻辑阵列可编程逻辑阵列PLA(Programmable Logic Array)PLA(Programmable Logic Array)为了克服上述实现数字逻辑电路时的缺点,出现了一类结构上稍复杂的可编程芯片,而任意一个组合逻辑都可以用“与或”表达式来描述,所以,简单可编程逻辑器件的“与”阵列和“或”阵列的连接关
30、系是可编程的,它能够完成各种数字逻辑功能。其工作原理如图1-9所示。第1章 可编程逻辑器件 图1-9 简单可编程逻辑器件的“与”阵列和“或”阵列第1章 可编程逻辑器件 实现逻辑函数时,运用简化后的“与或”表达式,由与阵列构成与项,然后用或阵列实现相应的或运算。例如,要实现下列多输出逻辑函数:通过开发系统,编程“与”阵列和“或”阵列的连接关系,实现上述逻辑功能,如图1-10所示。Q1=AB+ABQ2=AB+AB+ABQ3=AB+AB+ABQ4=AB第1章 可编程逻辑器件 图1-10 简单可编程逻辑器件实现逻辑功能第1章 可编程逻辑器件 PLA在上述基本结构的基础上,增加了三态逻辑门和反馈电路,以
31、乘积项之和的形式完成大部分组合逻辑功能,如图1-11所示。第1章 可编程逻辑器件 图1-11 PLA的结构第1章 可编程逻辑器件 图中采用了简化的表示方法,每个与门的一条线输入表示有多个输入信号线,如图1-12所示。图1-11所示的PLA有3个输入I2、I1、I0,但是其乘积项是6根而不是23根。如果有8个输入,其乘积项是16根。而采用PROM实现组合逻辑输入时,8个输入却对应着256个地址单元。所以PLA的与阵列不再采用全译码的形式,从而减小了阵列的规模。实现数字逻辑功能时,PROM相当于一个不可编程的与阵列和一个可编程的或阵列。PLA与PROM 不同,它不能实现输入信号所有可能的“与”项所
32、构成的“与或”表达式输出,但是PLA含有更多的输入变量,实现组合逻辑功能的速度更快。第1章 可编程逻辑器件 图1-12 PLD的简化表示方法第1章 可编程逻辑器件 3 3可编程阵列逻辑可编程阵列逻辑PAL(Programmable Array Logic)PAL(Programmable Array Logic)PAL由一个可编程的“与”阵列和一个固定的“或”阵列构成,或门的输出可以通过触发器有选择地设置为寄存器输出状态或组合电路输出状态,不但能够实现组合逻辑电路,还能够实现时序逻辑电路,如图1-13所示。PAL器件是可编程的。第1章 可编程逻辑器件 图1-13 PAL的结构第1章 可编程逻辑
33、器件 4 4通用阵列逻辑通用阵列逻辑GAL(Generic Array Logic)GAL(Generic Array Logic)在PAL的基础上,又发展了一种通用阵列逻辑GAL,如GAL16V8、GAL22V10 等。GAL是Lattice 半导体公司于1985年推出的最成功的PLD。它采用了EEPROM工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。第1章 可编程逻辑器件 GAL的基本结构由可编程的与阵列、固定的
34、或阵列和输出宏单元(OLMC)组成,OLMC可以得到不同的输出结构,使得GAL比输出部分相对固定PAL芯片更灵活。下面以GAL16V8为例,介绍GAL的结构(见图1-14)。第1章 可编程逻辑器件 图1-14 GAL的结构第1章 可编程逻辑器件*与阵列有8个输入缓冲器和8个反馈输入缓冲器。每个输入缓冲器有同相和反相输出端(即原变量和反变量),所以与阵列共有(88)2=32个输入变量。*有8个输出逻辑宏单元。*与阵列有64个乘积项、32个输入变量(输入原变量和反变量、反馈输入原变量和反变量),共有3264=2048个可编程单元。*系统时钟CLK和三态输出使能控制信号OE。第1章 可编程逻辑器件
35、OLMC的结构如图1-15所示。*或门的每个输入对应一个乘积项,或门的输出为各乘积项之和。*异或门控制输出极性。F=DXOR(n),XOR(n)=1时,F=;XOR(n)=0时,F=D。*D触发器实现时序逻辑电路。*PTMUX选择低电平时,第一个乘积项可以作为三态输出使能控制信号OE;反之,第一个乘积项作为或门的一个输入。*OMUX(输出数据选择器)。从触发器输出或不经过触发器输出。D第1章 可编程逻辑器件*STMUX(三态输出选择器)。可供选择的信号有四个:三态输出使能控制信号OE;与阵列的第一个乘积项;固定的低电平和高电平。*FMUX(反馈数据选择器)。可供选择的信号有四个:触发器的反相输
36、出;本单元输出;相邻单元输出或固定的低电平。由于低密度PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但是其结构较简单,因而只能实现规模较小的电路。第1章 可编程逻辑器件 图1-15 OLMC的结构第1章 可编程逻辑器件 1.3 1.3 高高密密度度 PLDPLD20世纪80年代中期。Altera公司和XILINX公司分别推出了CPLD和FPGA,它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其它专用集成电路相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无
37、需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10 000件以下)之中。第1章 可编程逻辑器件 尽管FPGA、CPLD和其它类型PLD的结构各有其特点和长处,但概括起来,它们由三大部分组成:一个二维的逻辑块阵列,构成了PLD器件的逻辑组成核心;输入/输出单元;连接逻辑单元的互连资源。互连资源由各种长度的连线线段组成,其中包含一些可编程的连接开关,它们用于逻辑单元之间、逻辑单元与输入/输出单元之间的连接。对于FPGA来说,还嵌入了其它一些资源,例如存储器、乘法器、时钟管理单元和CPU等。第1章 可编程逻辑器件 1.3.1 XC95001.3.1 XC9
38、500在系统可编程逻辑器件系列在系统可编程逻辑器件系列1 1XC9500XC9500在系统可编程逻辑器件系列概述在系统可编程逻辑器件系列概述XC9500系列产品采用了先进的CMOS Fast FLASH 技术,使用FALSH ROM控制每个可编程单元,具有在系统可编程的功能。在系统可编程指用户为了修改逻辑设计或重构数字逻辑系统(包括增加或修改可编程逻辑器件的I/O引脚),而在已经设计和制作好的数字系统中,通过在系统可编程逻辑器件的编程控制信号线,直接对印刷电路板上的在系统可编程逻辑器件进行在线编程(即不需要将CPLD芯片从印刷电路板上取下来,这点与EPROM、PAL和GAL可编程逻辑芯片不一样
39、。第1章 可编程逻辑器件 对EPROM、PAL和GAL可编程逻辑芯片编程时,需将要编程的芯片在专门的编程器上进行编程操作)和反复修改,并进行现场调试和验证。即使已经成为定型的产品,同样能够不断改进以前的逻辑设计方案,加速了产品的更新换代周期。对已经焊接在印刷电路板上的在系统可编程逻辑器件进行在线编程时,使用印刷电路板上的电源作为编程电源即可。这样使得原来不容易改变的硬件设计变得像软件一样灵活而易于修改和调试。第1章 可编程逻辑器件 XC9500系列产品几乎可以实现所有通用数字逻辑集成电路的功能,克服了专用数字集成电路设计周期长、投入费用高的缺点。其先进的设计思想和灵活的在系统可编程方式,反映了
40、当代数字逻辑系统的一种发展趋势。XC9500系列产品有XC9536、XC9572、XC95108、XC95144、XC95216、XC95288几种型号,这些型号的产品包含的宏单元数量、逻辑门数量和寄存器数量如表1-1所示。当XC9500系列芯片的输入/输出管脚定义成输出管脚时,能够输出24 mA的电流,对芯片进行编程次数可达到10 000次以上。第1章 可编程逻辑器件 表1-1 XC9500系列产品第1章 可编程逻辑器件 2 2XC9500XC9500在系统可编程逻辑器件系列结构在系统可编程逻辑器件系列结构XC9500系列芯片主要由功能单元FB(Function Block)、输入/输出单元
41、IOB和快速连接开关矩阵(Fast Connect Switch Matrix)组成,如图1-16所示。每个FB都可以实现一定逻辑功能的单元逻辑电路,FB之间通过快速连接开关矩阵连接在一起实现复杂的逻辑功能,IOB实现芯片的输入/输出信号与其它外部各种信号的相匹配的接口。第1章 可编程逻辑器件 1)功能单元每个功能单元由18个独立的宏单元(Macrocell)、乘积项分配器(Product Term Allocators)和可编程与阵列组成,如图1-17所示。来自快速连接开关矩阵的36个输入信号变成72个互补信号进入可编程与阵列,通过乘积项分配器,将这些信号分配给宏单元。第1章 可编程逻辑器件
42、 图1-16 XC9500系列芯片的结构第1章 可编程逻辑器件 图1-17 功能单元的结构第1章 可编程逻辑器件 功能单元的内部电路如图1-18所示。36个输入信号经过乘积项分配器和宏单元的或门和异或门实现组合逻辑功能,组合逻辑的输出信号可以不经过宏单元的触发器而直接输出;使用宏单元的触发器实现时序逻辑功能,全局时钟信号、全局复位/置位信号和乘积项的输出信号都可以通过编程控制宏单元的触发器。第1章 可编程逻辑器件 图1-18 功能单元的内部电路第1章 可编程逻辑器件 2)输入/输出单元输入/输出单元的内部电路如图1-19所示。通过编程可以使输入/输出管脚定义成输入信号或输出信号以及三态信号,也
43、能够定义成固定的低电平和高电平。第1章 可编程逻辑器件 图1-19 输入/输出单元的内部电路第1章 可编程逻辑器件 1.3.2 CoolRunner-1.3.2 CoolRunner-可编程逻辑器件系列可编程逻辑器件系列CoolRunner-是建立在XILINX的XC9500和 CoolRunner XPLA3系列产品基础之上的新一代CPLD,它结合了XC9500系列高速度和方便易用的特点,以及XPLA3系列的超低功耗特点。CoolRunner-系列器件采用了快速零功耗FZP(Fast Zero Power)专利技术和1.8 V内核工作电压以及1.5 V、1.8 V、2.5 V和3.3 V多电
44、压接口标准输出,是一种低功耗的CPLD器件,具有在线可编程的功能。第1章 可编程逻辑器件 该系列器件的密度范围为32512宏单元,管脚至管脚延迟仅为3.5 ns,静态电流小于100 A。部分CoolRunner-可编程逻辑器件系列的型号和包含的宏单元数量以及最大输入/输出数量如表1-2所示。第1章 可编程逻辑器件 表1-2 CoolRunner-可编程逻辑器件系列第1章 可编程逻辑器件 CoolRunner-可编程逻辑器件主要由功能单元FB(Function Block)、输入/输出单元IOB和先进内部互连矩阵AIM(Advanced Interconnect Matrix)组成,每个功能单元
45、包含了16个宏单元MC(Macrocell),如图1-20所示。每个宏单元都可以实现一定逻辑功能的单元逻辑电路,宏单元MC之间通过可编程内部互连矩阵连接在一起实现复杂的逻辑功能,IOB实现芯片的输入/输出信号与其它外部各种信号相匹配的接口。第1章 可编程逻辑器件 图1-20 CoolRunner-系列芯片的结构第1章 可编程逻辑器件 1)宏单元每个宏单元由乘积项和触发器组成,可以实现组合逻辑和时序逻辑功能,如图1-21所示,其中GCK(Global Clock)是全局时钟信号,GSR(Global Set/Reset)是全局置位/复位信号,GTS(Global Tri-States)是全局输出
46、使能控制信号。宏单元中的触发器通过编程可以设置成触发器、锁存器和双边沿触发器。第1章 可编程逻辑器件 图1-21 宏单元结构第1章 可编程逻辑器件 2)输入/输出单元输入/输出单元的内部电路如图1-22所示。通过编程可以使输入/输出管脚定义成输入信号或输出信号以及三态信号,也能够定义成固定的低电平和高电平。第1章 可编程逻辑器件 图1-22 输入/输出单元的内部电路第1章 可编程逻辑器件 3)时钟分频单元CoolRunner-可编程逻辑器件嵌入了时钟分频单元,分频系数分别为2、4、6、8、10、12、14和16,如图1-23所示。第1章 可编程逻辑器件 图1-23 时钟分频单元第1章 可编程逻
47、辑器件 1.3.3 Spartan1.3.3 Spartan可编程逻辑器件系列可编程逻辑器件系列XILINX公司1998年初将Spartan(5 V,0.5 m集成电路制造工艺)系列可编程逻辑器件投放市场,并且于同年年底将Spartan-XL(3 V,0.35 m集成电路制造工艺)系列可编程逻辑器件投放市场,2000年又推出Spartan-XL(2.5 V,0.22/0.18 m集成电路制造工艺)系列可编程逻辑器件。第1章 可编程逻辑器件 Spartan可编程逻辑器件系列采用了CMOS和SRAM技术,配置信息保存在芯片内部的配置存储器SRAM中,使用SRAM控制每个可编程单元,通电以后,配置信
48、息可以通过主动或从动的方式,将配置信息装入芯片的SRAM(Static Random Access Memory)中,芯片完成指定的逻辑功能。该存储器为静态随机存储器SRAM,其结构如图1-24所示。第1章 可编程逻辑器件 图1-24 SRAM结构第1章 可编程逻辑器件 对其中一位编程时,Select为高电平,Tp:on。如果编程数据位为逻辑“0”,则T4:off,T3:on,输出OUT为逻辑“1”,T1:off,T2:on。编程结束时,Select为低电平,Tp:off,SRAM的输出OUT保持为逻辑“1”,控制Ts:on;反之,Ts:off。使用SRAM控制每个可编程开关,如图1-25所示
49、。第1章 可编程逻辑器件 图1-25 SRAM控制每个可编程开关第1章 可编程逻辑器件 编程后,配置存储器的状态不再发生变化。断开电源,配置存储器内的信息消失。当再接通电源时,需要将配置信息重新输入到FPGA芯片内的配置存储器。部分Spartan可编程逻辑器件系列的型号和包含的寄存器数量以及逻辑门的密度如表1-3所示。部分Spartan-可编程逻辑器件系列的型号和包含的寄存器数量以及逻辑门的密度如表1-4所示。第1章 可编程逻辑器件 表1-3 Spartan可编程逻辑器件系列第1章 可编程逻辑器件 表1-4 Spartan-可编程逻辑器件系列第1章 可编程逻辑器件 Spartan可编程逻辑器件
50、主要由可编程逻辑单元CLB(Configurable Logic Block)、连线通道(Routing Channel)和可编程输入/输出单元IOB(Input/Output Block)组成,如图1-26所示。每个CLB都可以配置成实现一定逻辑功能的单元逻辑电路。CLB之间通过连线通道连接在一起以实现复杂的逻辑功能。IOB实现了芯片的输入/输出信号与其它外部各种信号相匹配的接口。当Spartan系列芯片的输入/输出管脚定义成输出管脚时,每个输出管脚能够承受12 mA的灌电流。第1章 可编程逻辑器件 图1-26 Spartan可编程逻辑器件结构图第1章 可编程逻辑器件 1 1可编程逻辑单元可