VHDL硬件描述语言与数字系统开发(第2章)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

硬件描述语言与数字系统开发第2章可编程逻辑器件概述•可编程逻辑器件及其发展•SPLD的基本结构与逻辑表示•四种简单PLD简介•CPLD结构原理•FPGA结构原理第2章可编程逻辑器件概述2.1可编程逻辑器件及其发展可编程逻辑逻辑器件PLD是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于20世纪70年代单片机的发明与使用。可编程逻辑器件能完成任何数字器件的功能,上至高性能CPU,下至简单的74系列电路,都可以用可编程逻辑器件来实现。可编程逻辑器件如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法或硬件描述语言,自由地设计一个数字系统,通过软件仿真,我们可以事先验证设计的正确性,还可以利用PLD的在线修改能力,随时修改设计。使用可编程逻辑器件来开发数字电路,可以大大缩短设计时间,减少芯片面积,提高系统的可靠性。可编程逻辑器件的这些优点使得可编程逻辑器件技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL(HardwareDescriptionLanguage)的进步。可编程逻辑器件(PLD)简单PLD复杂PLDPROMPALPLAGALCPLDFPGAPLD的分类----按集成度分类1.熔丝(Fuse)型器件。2.反熔丝(Anti-fuse)型器件。3.EPROM型。4.EEPROM型。5.SRAM型。6.Flash型。PLD的分类----按编程工艺分类PLD的发展历程熔丝编程的PROM和PLA器件AMD公司推出PAL器件GAL器件FPGA器件EPLD器件CPLD器件内嵌复杂功能模块的SoPC早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)三种,它们由全译码的与阵列和可编程的或阵列组成,由于阵列规模大,速度低,主要用途是作存储器用。20世纪70年代中期,出现了一类结构上稍显复杂的可编程芯片,称为可编程逻辑阵列PLA(ProgrammableLogicArray)。它由可编程的与阵列和可编程的或阵列组成,虽然阵列规模增大,提高了芯片的利用率,但由于编程复杂,支持PLA的开发软件有一定难度,因而也没有得到广泛应用。20世纪70年代末,美国一公司率先提出了可编程阵列逻辑器件PAL(ProgrammableArrayLogic)。PAL由可编程的与阵列和固定的或阵列构成,采用熔丝编程方式、双极型工艺制造。PAL在器件的工作速度、输出结构种类上较早期的可编程逻辑器件有了很大进步,但由于其输出方式固定不能重新组态,所以编程灵活性较差,又由于采用的是PROM工艺,只能一次性编程,使用者仍要承担一定风险。20世纪80年代中期,Lattice公司发明了通用阵列逻辑GAL(GenericArrayLogic)。它和PAL的区别在于GAL的输出电路可以组态,且大多采用UVCMOS或EECMOS工艺,实现了重复编程,通常可擦写百次以上,甚至上千次。由于GAL芯片具有很强的灵活性,设计风险小,可以取代大部分SSIC、MSIC和PAL器件,所以在20世纪80年代得到广泛应用。这些早期可编程逻辑器件的一个共同特点是都属于低密度PLD,结构简单,设计灵活,但规模小,难以实现复杂的逻辑功能。其后,随着集成电路工艺水平的不断提高,PLD突破了传统的单一结构,向着高密度、高速度、低功耗以及结构体系更灵活、适用范围更宽的方向发展,相继出现了各种不同结构的高密度PLD:20世纪80年代中后期,Altera公司推出了一种新型的可擦除、可编程逻辑器件EPLD(ErasableProgrammableLogicDevice),它采用CMOS和UVEPROM工艺制作,集成度比PAL和GAL高得多,设计也更加灵活,但内部互联能力比较弱。1985年Xilinx公司首家推出了现场可编程门阵列器件FPGA(FieldProgrammableGateArray),它是一种新型的高密度PLD,采用CMOS—SRAM工艺制作,其结构和阵列型PLD不同,内部由许多独立的可编程逻辑模块组成,逻辑模块之间可以灵活地相互连接,具有密度高、编程速度快、设计灵活和可再配置设计等许多优点。FPGA出现后立即受到世界范围内电了工程师的普遍欢迎,并得到迅速发展。20世纪80年代末,Lattice公司提出在系统可编程ISP(InSystemProgrammable)技术后,相继出现了一系列具备在系统可编程能力的复杂可编程逻辑器件CPLD(ComplexProgrammableLogicDevice),CPLD是在EPLD的基础上发展起来的,它采用EECMOS工艺制作,增加了内部联线,改进了内部结构体系,从而比EPLD性能更好,设计更加灵活,其发展也非常迅速。不同厂家对可编程逻辑器件的叫法也不尽相同。Xilinx公司把基于查找表技术,SRAM工艺,要外挂配置用的EEPROM的可编程逻辑器件称为FPGA;把基于乘积项技术、Flash工艺(类似EEPROM工艺)的可编程逻辑器件称为CPLD。而Altera公司把自己的可编程逻辑器件产品MAX系列(乘积项技术,EEPROM工艺)、FLEX系列(查找表技术,SRAM工艺)都叫做CPLD。20世纪90年代以后,高密度PLD在生产工艺、器件的编程和测试技术等方面都有了飞速发展,CPLD的集成度一般可达数干甚至上万门。A1tera公司的EPM9560,其单密度达到12000个可用门,包含多达50个宏单元,216个用户I/O引脚,并能提供15ns的脚至脚延时,16位计数的最高工作频率为118MHz。目前,CPLD的集成度最多可达几百万个等效门以上,最高工作速度已超过180MHz,FPGA的门级延时已小于3ns。在系统可编程技术、边界扫描技术的出现,也使器件在编程技术和测试技术及系统可重构技术方面有了很快的发展。2.2SPLD的基本结构与逻辑表示SPLD(SimpleProgrammableLogicDevice)包括PROM、PLA、PAL和GAL等。由于CPLD是在PAL和GAL基础上发展起来的,因此下面首先介绍简单PLD的结构特点。1.简单PLD的基本结构输出电路与阵列输入电路或阵列。。。。。。。。输入输出输入项乘积项或项PLD的基本结构如上图所示,由输入电路,与/或阵列及输出/反馈电路几部分组成,各主要部分功能介绍如下:输入电路:由输入缓冲器组成,它使输入信号具有足够的驱动能力,并产生互补输入信号(原变量/反变量)。与/或阵列:是PLD的主体。与阵列由与门阵列组成,主要功能是进行输入变量的与运算,产生乘积项;或阵列由或门阵列组成,主要功能是将与阵列产生的乘积项有选择地进行或运算,形成与或项,有效地实现“积之和”形式的组合逻辑函数。输出/反馈电路:输出电路可以提供不同的输出方式,如直接输出(组合方式)或通过寄存器输出(时序方式)。主要由输出缓冲器(三态门)组成,可以产生输出信号,并根据功能要求,通过三态门控制数据直接输出或反馈到输入端,提供反馈信息。众所周知,任何一个组合逻辑函数均可转化为与或表达式,用与或表达式来描述,也就是说,可用“与—或”两级电路来实现,而任何一个时序电路又都是由组合电路加上存储反馈电路构成,因此,PLD的这种结构方式对实现数字系统设计具有普遍的意义。PLD的互补缓冲器PLD的互补输入PLD中与阵列表示PLD中或阵列表示阵列线连接表示2.简单PLD的逻辑表示因为PLD内部电路的连接规模很大,用传统的逻辑电路表示方法很难描述PLD的内部结构,所以对PLD内各部分进行描述时采用了一些特殊的简化方法。(1)PLD内部的连接点:PLD阵列中行线与列线相交点的连接可用下面3种方式表示:若交叉处有“.”,表示实体连接,是一个不可编程的固定连接;若交叉处无标记,则表示行线与列线不连接(或编程后被擦除);若交叉处有“×”,则表示编程连接,是一个可编程的单元,习惯上表示编程连通。实际上,可编程的含义就是指在可编程的阵列区中留有一定的“连线区”,可通过编程来确定其连线方式。在采用熔丝工艺的PLD器件中,用户编程前,所有可编程点处的熔丝都处于接通状态,因此可编程点上处处都有“×”;用户编程后,可编程点上的熔丝有的被保留(接通),有的被擦除(熔断),行线与列线不再连接。在无实体熔丝的PLD器件中,编程后有“×”的行线与列线交叉点等价于CMOS管的导通,无“×”的行线与列线交叉点等价于CMOS管的截至。(2)输入、输出缓冲器:PLD的输入、输出缓冲器是单输入、双输出的缓冲单元,采用了互补输出结构,一端是高有效输出,另一端是低有效输出,其表示法如下图所示。(3)与阵列、或阵列:PLD中的与门可用下图(a)表示。图中与门的输入线通常画成行(横)线,与门的所有输入变量都称为输入项,用与行线垂直的列线表示与门的输入。与门的输出称为乘积项P,图(a)中与门输出P=A.B.D。类似地,PLD中的或门可用下图(b)表示。图(a)图(b)2.通常,PLD电路中只有部分电路可以编程或组态,PROM、PLA、PAL和GAL四种SPLD的功能、作用不尽相同,主要是它们的电路结构和编程情况不同,下表列出了四种PLD电路的结构持点。2.3四种简单PLD简介类型与阵列或阵列输出方式PROM(ProgramableROM)固定可编程固定PLA(ProgramableLogicArray)可编程可编程固定PAL(ProgramableArrayLogic)可编程固定固定GAL(GenericArrayLogic)可编程固定可编程组态与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0FPROM阵列图与阵列(固定)或阵列(可编程)0A1A1A1A0A0A1F0F01110100AAFAAAAFPROM完成半加器功能与阵列(可编程)或阵列(可编程)0A1A1A1A0A0A1F0FPLA阵列图PAL结构从阵列结构图可以看出,可编程阵列逻辑PAL与阵列可编程,或阵列固定连接,每个或门的输出是若干个乘积项之和,其中乘积项的数目是固定的。一般在PAL产品中,最多的乘积项数可达8个。PAL和GAL的主要差别在于输出结构不同。PAL有几种固定的输出结构,选定芯片型号后,其输出结构也就选定了。例如,产品PAL16L8属于组合型PAL器件,其芯片中每一个输出端的结构如下图所示。图中或门的输出最多可以包含7个乘积项,最上面的与门所对应的乘积项用来控制三态门的输出。当与门输出为“0”时,三态门禁止,输出呈高阻状态,I/O引脚作为输入使用;当与门输出为“l”时,三态门被选通,I/O引脚作为输出使用。两种情况下的信号都可以通过互补输出缓冲器反馈至与阵列的输入端。下图中只画出了其中一个输出,PAL16L8有8个这样的输出端。由于8个输出相对独立,互不牵扯,输出的时间也可能不一致,因此称为“异步I/O输出结构”。又如,产品PAL16R8属于寄存器型PAL器件(R代表Register),其芯片中每个输出结构如下图所示,称为“寄存器输出结构”。当系统时钟(CLOCK)的上升沿来到后,或门的输出被存入D触发器,然后通过选通三态缓冲器再将它送至输出端。同时,D触发器的输出Q’还可以反馈至与门阵列,这样能记忆原来的状态,从而实现时序逻辑功能。PAL器件除了这两种输出结构外,还有专用组合输出、异或输出和算术选通反馈输出结构等,共有20多种不同的型号可供用户选用。11100100R11100100RQQD11100100R11100100RVccSG1SL07SL17SG0SL0619I/O711100100R11100100RQQD11100100R11100100RVccSG1SL06SL16SG1SL0618I/O61CLK/I02I13I207815034781211151619202324272831PAL16V8部分结构示意图逻辑宏单元输入/输出口输入口GAL结构时钟信号输入三态控制可编程与阵列固定或阵列207190347812111516192023242728311381518

1 / 50
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功