版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、硬件描述语言与数字系统开发,第2章 可编程逻辑器件概述,可编程逻辑器件及其发展 SPLD的基本结构与逻辑表示 四种简单PLD简介 CPLD结构原理 FPGA结构原理,第2章 可编程逻辑器件概述,2.1 可编程逻辑器件及其发展,可编程逻辑逻辑器件PLD是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于20世纪70年代单片机的发明与使用。 可编程逻辑器件能完成任何数字器件的功能,上至高性能CPU,下至简单的74系列电路,都可以用可编程逻辑器件来实现。可编程逻辑器件如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入法或硬件描述语言,自由地设计一个数字系统,通过软件仿真,我们可以事
2、先验证设计的正确性,还可以利用PLD的在线修改能力,随时修改设计。 使用可编程逻辑器件来开发数字电路,可以大大缩短设计时间,减少芯片面积,提高系统的可靠性。可编程逻辑器件的这些优点使得可编程逻辑器件技术在20世纪90年 代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL (Hardware Description Language)的进步。,PLD的分类-按集成度分类,1熔丝(Fuse)型器件。,2反熔丝(Anti-fuse)型器件 。,3EPROM型。,4EEPROM型 。,5SRAM型 。,6Flash型 。,PLD的分类-按编程工艺分类,PLD的发展历程,熔丝编程的PR
3、OM和PLA器件,AMD公司推出PAL器件,GAL器件,FPGA器件 EPLD器件,CPLD器件,内嵌复杂功能模块的SoPC,早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)三种,它们由全译码的与阵列和可编程的或阵列组成,由于阵列规模大,速度低,主要用途是作存储器用。 20世纪70年代中期,出现了一类结构上稍显复杂的可编程芯片,称为可编程逻辑阵列PLA(Programmable Logic Array)。它由可编程的与阵列和可编程的或阵列组成,虽然阵列规模增大,提高了芯片的利用率,但由于编程复杂,支持PLA的开发软件
4、有一定难度,因而也没有得到广泛应用。 20世纪70年代末,美国一公司率先提出了可编程阵列逻辑器件PAL(Programmable Array Logic)。PAL由可编程的与阵列和固定的或阵列构成,采用熔丝编程方式、双极型工艺制造。PAL在器件的工作速度、输出结构种类上较早期的可编程逻辑器件有了很大进步,但由于其输出方式固定不能重新组态,所以编程灵活性较差,又由于采用的是PROM工艺,只能一次性编程,使用者仍要承担一定风险。,20世纪80年代中期,Lattice公司发明了通用阵列逻辑GAL(Generic Array Logic)。它和PAL的区别在于GAL的输出电路可以组态,且大多采用UVC
5、MOS或EECMOS工艺,实现了重复编程,通常可擦写百次以上,甚至上千次。由于GAL芯片具有很强的灵活性,设计风险小,可以取代大部分SSIC、MSIC和PAL器件,所以在20世纪80年代得到广泛应用。 这些早期可编程逻辑器件的一个共同特点是都属于低密度PLD,结构简单,设计灵活,但规模小,难以实现复杂的逻辑功能。 其后,随着集成电路工艺水平的不断提高,PLD突破了传统的单一结构,向着高密度、高速度、低功耗以及结构体系更灵活、适用范围更宽的方向发展,相继出现了各种不同结构的高密度PLD:20世纪80年代中后期,Altera公司推出了一种新型的可擦除、可编程逻辑器件EPLD (Erasable P
6、rogrammable Logic Device),它采用CMOS和UVEPROM工艺制作,集成度比PAL和GAL高得多,设计也更加灵活,但内部互联能力比较弱。,1985年Xilinx公司首家推出了现场可编程门阵列器件FPGA(Field Programmable Gate Array),它是一种新型的高密度PLD,采用CMOSSRAM工艺制作,其结构和阵列型PLD不同,内部由许多独立的可编程逻辑模块组成,逻辑模块之间可以灵活地相互连接,具有密度高、编程速度快、设计灵活和可再配置设计等许多优点。FPGA出现后立即受到世界范围内电了工程师的普遍欢迎,并得到迅速发展。 20世纪80年代末,Latt
7、ice公司提出在系统可编程ISP (In System Programmable)技术后,相继出现了一系列具备在系统可编程能力的复杂可编程逻辑器件CPLD (Complex Programmable Logic Device),CPLD是在EPLD的基础上发展起来的,它采用EECMOS工艺制作,增加了内部联线,改进了内部结构体系,从而比EPLD性能更好,设计更加灵活,其发展也非常迅速。 不同厂家对可编程逻辑器件的叫法也不尽相同。Xilinx公司把基于查找表技术,SRAM工艺,要外挂配置用的EEPROM的可编程逻辑器件称为FPGA;把基于乘积项技术、Flash工艺(类似EEPROM工艺)的可编程
8、逻辑器件称为CPLD。而Altera公司把自己的可编程逻辑器件产品MAX系列(乘积项技术,EEPROM工艺)、FLEX系列(查找表技术,SRAM工艺)都叫做CPLD。,20世纪90年代以后,高密度PLD在生产工艺、器件的编程和测试技术等方面都有了飞速发展,CPLD的集成度一般可达数干甚至上万门。A1tera公司的EPM9560,其单密度达到12000个可用门,包含多达50个宏单元,216个用户IO引脚,并能提供15ns的脚至脚延时,16位计数的最高工作频率为118MHz。目前,CPLD的集成度最多可达几百万个等效门以上,最高工作速度已超过180MHz,FPGA的门级延时已小于3ns。在系统可编
9、程技术、边界扫描技术的出现,也使器件在编程技术和测试技术及系统可重构技术方面有了很快的发展。,2.2 SPLD的基本结构与逻辑表示,SPLD(Simple Programmable Logic Device)包括PROM、PLA、PAL和GAL等。由于CPLD是在PAL和GAL基础上发展起来的,因此下面首先介绍简单PLD的结构特点。 1 简单PLD的基本结构,PLD的基本结构如上图所示,由输入电路,与/或阵列及输出/反馈电路几部分组成, 各主要部分功能介绍如下:,输入电路:由输入缓冲器组成,它使输入信号具有足够的驱动能力,并产生互补输入信号(原变量/反变量)。 与/或阵列:是PLD 的主体。与
10、阵列由与门阵列组成,主要功能是进行输入变量的与运算,产生乘积项;或阵列由或门阵列组成,主要功能是将与阵列产生的乘积项有选择地进行或运算,形成与或项,有效地实现“积之和”形式的组合逻辑函数。 输出/反馈电路:输出电路可以提供不同的输出方式,如直接输出(组合方式)或通过寄存器输出(时序方式)。主要由输出缓冲器(三态门)组成,可以产生输出信号,并根据功能要求,通过三态门控制数据直接输出或反馈到输入端,提供反馈信息。 众所周知,任何一个组合逻辑函数均可转化为与或表达式,用与或表达式来描述,也就是说,可用“与或”两级电路来实现,而任何一个时序电路又都是由组合电路加上存储反馈电路构成,因此,PLD的这种结
11、构方式对实现数字系统设计具有普遍的意义。,PLD的互补缓冲器 PLD的互补输入 PLD中与阵列表示,PLD中或阵列表示 阵列线连接表示,2 简单PLD的逻辑表示,因为PLD内部电路的连接规模很大,用传统的逻辑电路表示方法很难描述PLD的内部结构,所以对PLD内各部分进行描述时采用了一些特殊的简化方法。 (1)PLD内部的连接点: PLD阵列中行线与列线相交点的连接可用下面3种方式表示:,若交叉处有“”,表示实体连接,是一个不可编程的固定连接; 若交叉处无标记,则表示行线与列线不连接(或编程后被擦除); 若交叉处有“”,则表示编程连接,是一个可编程的单元,习惯上表示编程连通。,实际上,可编程的含
12、义就是指在可编程的阵列区中留有一定的“连线区”,可通过编程来确定其连线方式。在采用熔丝工艺的PLD器件中,用户编程前,所有可编程点处的熔丝都处于接通状态,因此可编程点上处处都有“”;用户编程后,可编程点上的熔丝有的被保留(接通),有的被擦除(熔断),行线与列线不再连接。在无实体熔丝的PLD器件中, 编程后有“”的行线与列线交叉点等价于CMOS管的导通,无“”的行线与列线交叉点等价于CMOS管的截至。,(2)输入、输出缓冲器: PLD的输入、输出缓冲器是单输入、双输出的缓冲单元,采用了互补输出结构, 一端是高有效输出,另一端是低有效输出,其表示法如下图所示。,(3)与阵列、或阵列: PLD中的与
13、门可用下图 (a) 表示。图中与门的输入线通常画成行(横)线,与门的所有输入变量都称为输入项,用与行线垂直的列线表示与门的输入。与门的输出称为乘积项P,图 (a)中与门输出PABD。类似地, PLD中的或门可用下图 (b) 表示。,图 (a),图 (b),2 通常,PLD电路中只有部分电路可以编程或组态,PROM、PLA、PAL和GAL四种SPLD的功能、作用不尽相同,主要是它们的电路结构和编程情况不同,下表列出了四种PLD电路的结构持点。,2.3 四种简单PLD简介,PROM阵列图,PROM完成半加器功能,PLA阵列图,PAL结构,从阵列结构图可以看出,可编程阵列逻辑PAL与阵列可编程,或阵
14、列固定连接,每个或门的输出是若干个乘积项之和,其中乘积项的数目是固定的。一般在PAL产品中,最多的乘积项数可达8个。 PAL和GAL的主要差别在于输出结构不同。PAL有几种固定的输出结构,选定芯片型号后,其输出结构也就选定了。例如,产品PAL16L8属于组合型PAL器件,其芯片中每一个输出端的结构如下图所示。图中或门的输出最多可以包含7个乘积项,最上面的与门所对应的乘积项用来控制三态门的输出。当与门输出为“0”时,三态门禁止,输出呈高阻状态,I/O引脚作为输入使用;当与门输出为“l”时,三态门被选通,I/O引脚作为输出使用。两种情况下的信号都可以通过互补输出缓冲器反馈至与阵列的输入端。下图中只
15、画出了其中一个输出,PAL16L8有8个这样的输出端。由于8个输出相对独立,互不牵扯,输出的时间也可能不一致,因此称为“异步I/O输出结构”。,又如,产品PAL16R8属于寄存器型PAL器件(R代表Register),其芯片中每个输出结构如下图所示,称为“寄存器输出结构”。当系统时钟(CLOCK)的上升沿来到后,或门的输出被存入D触发器,然后通过选通三态缓冲器再将它送至输出端。同时, D触发器的输出Q 还可以反馈至与门阵列,这样能记忆原来的状态,从而实现时序逻辑功能。PAL器件除了这两种输出结构外,还有专用组合输出、异或输出和算术选通反馈输出结构等,共有20多种不同的型号可供用户选用。,PAL
16、16V8部分结构示意图,逻辑宏单元,输入/输出口,输入口,GAL结构,时钟信 号输入,三态 控制,可编程 与阵列,固定或 阵列,G A L 1 6 V 8 结 构 示 意 图,GAL和PAL最大的差别在于GAL有一种灵活的、可编程的输出结构,它只有几种基本型号,却可以代替数十种PAL器件,因而称为通用可编程逻辑器件。 GAL的可编程输出结构称为输出逻辑宏单元OLMC(Output Logic Macro Cell)。后图是GAL22V10的OLMC内部逻辑图,从图中可看出,OLMC中除了包含或门阵列和D触发器之外,还多了两个数据选择器(MUX),其中4选1MUX用来选择输出方式和输出极性,2选
17、1MUX用来选择反馈信号(Q或Q),而这些数选器的状态取决于两位可编程特征码S2、S1的控制。编程时,开发软件将根据设计者的要求将S2、S1编为00、01、10、11中的一个,并通过编程器将此信息烧录到芯片中,OLMC便可以分别被组态为四种输出方式中的一种了。这四种输出方式分别是: S2S100时,低电平有效寄存器输出; S2S101时,高电平有效寄存器输出; S2S110时,低电平有效组合IO输出; S2S111时,高电平有效组合IO输出。,GAL 的 OLMC,S2S100时,低电平有效寄存器输出; S2S101时,高电平有效寄存器输出; S2S110时,低电平有效组合IO输出; S2S1
18、11时,高电平有效组合IO输出。,PAL和GAL器件与SSI、MSI标准产品相比,有许多突出的优点: 提高了功能密度,节省了空间,通常一片PAL或GAL可以代替4一12片SSI或24片MSI; 使用方便,设计灵活,具有上电复位功能和加密功能,可以防止非法复制等。因而,这两种产品在早期得到了广泛应用。 但PAL器件有许多缺陷,主要是PAL采用的是PROM编程工艺,只能一次性编程,而且由于输出方式是固定的,不能重新组态,因而编程灵活性较差。 GAL器件的每个宏单元OLMC均可根据需要任意组态,所以它的通用性好,比PAL使用更加灵活,而且GAL器件采用了E2COMS工艺结构,可以重复编程,通常可以擦
19、写百次以上,甚至上千次,因而GAL比PAL应用更为广泛。 此外, PAL、 GAL器件共同的缺陷是编程时需要专门的编程器下载数据。,2.4 CPLD基本结构,CPLD (Complex Programmable Logic Device) 意为复杂可编程逻辑器件,是从PAL、GAL基础上发展起来的阵列型高密度PLD器件,它们大多采用了CMOS EPROM、E2PROM和快闪存储器等编程技术,因而具有高密度、高速度和低功耗等持点。 目前主要的半导体器件公司,如Xilinx、Altera、Lattice和AMD公司等,在各自生产的高密度PLD产品中,都有自己的持点,但总体结构大致是相同的。大多数的
20、CPLD器件中都包含了三种基本结构:可编程的逻辑宏单元;可编程的 I/O单元和可编程的内部连线区。 1可编程逻辑宏单元 逻辑宏单元内部主要包括与/或阵列、可编程触发器和多路选择器等电路,能独立地配置为时序或组合工作方式。CPLD除了比PAL、GAL密度高之外,许多优点都反映在其内部可编程的逻辑宏单元上:, 多触发器结构和“隐埋”触发器结构 GAL器件每个输出宏单元中只有一个触发器,而CPLD的宏单元内通常含两个或两个以上的触发器,其中只有一个触发器与输出端相连,其余触发器的输出不与输出端相连,但可以通过相应的缓冲电路反馈到与阵列,从而与其它触发器一起构成较复杂的时序电路。这些不与输出端相连的触
21、发器就称为“隐埋”触发器。这种结构对于引脚数有限的CPLD器件来说,可以增加触发器数目,即增加其内部资源。 乘积项共享结构 在PAL和GAL的与或阵列中,每个或门的输入乘积项最多为7个或8个,在CPLD的宏单元中,如果输出表达式的与项较多,对应的或门输入端不够用时,可以借助可编程开关将同一单元(或其它单元)中的其它或门与之联合起来使用,或者在每个宏单元中提供末使用的乘积项供其它宏单元使用和共享。乘积项共享结构提高了资源利用率,可以实现快速复杂的逻辑函数。 异步时钟和时钟选择 一般GAL器件只能实现同步时序电路,在CPLD器件中各触发器的时钟可以异步工作,有些器件中触发器的时钟还可以通过数据选择
22、器或时钟网络进行选择,因而使用更加灵活。,MAX7000系列单个宏单元结构,2可编程I/O单元 输入/输出单元,简称I/O单元(或IOC),它是内部信号到I/O引脚的接口部分。由于阵列型高密度PLD通常只有少数几个专用输入端,大部分端口均为用户自定义I/O端,而且系统的输入信号常常需要锁存,因此I/O常作为一个独立单元来处理。 下图(a)是Lattice ispLSI10l6的IOC结构图,它由三态输出缓冲器、输入缓冲器、输入寄存器/锁存器和几个可编程的数据选择器组成。触发器有两种工作方式:当R/L为高电平时,它被设置成边沿触发器;而当R/L为低电平时,它被设置成锁存器。MUX1用于控制三态输
23、出缓冲器的工作状态,MUX2用于选择输出信号的传送通道,MUX3用来选择输出极性。MUX4用于输入方式的选择:在异步输入方式下,输入信号直接经输入缓冲器送到全局布线区的输入端;在同步输入方式下,输入信号加到触发器的输入端,必须等时钟信号IOCLK到达后才能被存入触发器,并经过输入缓冲器加到全局布线区。MUX 5和MUX6用于时钟信号的来源和极性的选择。根据这些数据选择器编程状态的组合,可得到各种可能的IOC组态形式,如下图 (b)所示。,Lattice公司 ispLSI10l6的IOC结构,MUX1用于控制三态输出缓冲器的工作状态;MUX2用于选择输出信号的传送通道;MUX3用来选择输出极性。
24、 MUX4用于输入方式的选择:在异步输入方式下,输入信号直接经输入缓冲器送到全局布线区的输入端;在同步输入方式下,输入信号加到触发器的输入端,必须等时钟信号IOCLK到达后才能被存入触发器,并经过输入缓冲器加到全局布线区。MUX 5和MUX6用于时钟信号的来源和极性的选择。,D触发器有两种工作方式:当R/L为高电平时,它被设置成边沿触发器;而当R/L为低电平时,它被设置成锁存器。,各种可能的IOC组态,3可编程连线阵列 可编程连线阵列的作用是在各逻辑宏单元之间以及逻辑宏单元和IO单元之间提供互连网络,通过可编程连线阵列可以接收来自专用输入端的信号。,MAX7000S 系列的内部互连结构,Log
25、ic Array Block,可编程连线阵列,FPGA (Field Programmable Gate Array) 意为现场可编程门阵列,是20世纪80年代中期出现的高密度可编程逻辑器件。与前面所介绍的阵列型可编程逻辑器件有所不同,它由许多独立的可编程逻辑模块组成,用户可以通过编程将这些模块连接起来实现不同的设计。,2.5 FPGA基本结构,查找表单元内部结构,Cyclone系列器件的LE结构,2.6 CPLD与FPGA的比较,CPLD与FPGA都是由逻辑单元、I/O单元和互连单元三部分组成的。I/O单元功能基本一致,逻辑和互连单元的结构及编程工艺则各不相同,由此带来这两种器件性能及应用上
26、的一些差别。可从以下几方面将CPLD与FPGA作个比较: 1 结构比较 CPLD的逻辑单元是由与/或阵列和可配置的输出宏单元组成,而FPGA采用的是基于SRAM形式的查找表结构。这种工艺结构占用芯片面积小,速度高(1-2ns),但逻辑功能较弱。 CPLD的逻辑单元是大单元,其输入变量数通常有20多个,采用类似PAL的结构。由于单元功能强大,一般逻辑在单元内均可实现,且互连关系简单。缺点是同样集成规模的芯片中触发器数量不多,可用于开发的片内ROM/RAM资源较少。 由此,在应用上,小单元的FPGA较适合数据、时序型系统,该类系统所需的触发器数多,逻辑相对简单;而大单元的CPLD较适合组合、逻辑型
27、系统,该类系统逻辑相对复杂,输入变量多,对触发器的需求量相对较少。 2 互连比较 CPLD因为单元大、功能强,使用的是集总总线,所以其特点是任意一对输入端与输入端之间的延时相等,且是可预测的。 FPGA因为单元小、互连关系复杂,所以使用的互连方式较多,有分段总线、长线、直接互连等等。对FPGA而言,实现同一个功能可能有不同的连线方案,也即,其延时是不确定的。,FPGA与CPLD结构特点,采用连续式快速通道互连 Fast Track结构的CPLD器件,采用分段式查找表LUT 互连结构的FPGA器件,FPGA vs CPLD,集成度 FPGA可以达到比 CPLD更高的集成度 ,同时也具有更复杂的布
28、线结构和逻辑实现。 适合结构 FPGA更适合于触发器丰富的结构 ,而 CPLD更适合于触发器有限而乘积项丰富的结构。,FPGA vs CPLD,功率消耗 CPLD的缺点比较突出。一般情况下 ,CPLD功耗要比 FPGA大 ,且集成度越高越明显。 速度 CPLD优于 FPGA。由于 FPGA是门级编程 ,且 CLB之间是采用分布式互连 ;而 CPLD是逻辑块级编程 ,且其逻辑块互连是集总式的。因此 ,CPLD比 FPGA有较高的速度和较大的时间可预测性。,FPGA vs CPLD,编程方式 CPLD通过修改具有固定内连电路的逻辑功能来编程(基于乘积项的开关矩阵),FPGA主要通过改变内部连线的布线来编程(基于查找表的分段连线);FPGA可在逻辑门下编程 ,而 CPLD是在逻辑块下编程 ,在编程上 FPGA比 CPLD具有更大的灵活性。 CPLD主要是基于E2PROM或 FLASH存储器编程 ,编程次数达 1万次。其优点是在系
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF 2428-2026食品基体标准物质研制(生产)通用技术要求
- GB/T 7597-2026电力用油取样方法
- 小型工程安全指南讲解
- 国外医院宣教经验
- 骨科患者康复指导
- 小学卫生健康宣教
- 钻孔机司机达标竞赛考核试卷含答案
- 津优力健康产品宣
- 颜料生产工常识竞赛考核试卷含答案
- 混合集成电路装调工岗前合规化考核试卷含答案
- 2026年湖南中考(数学)考试试卷真题(含答案)
- 2026年肾内科医生三基三严培训试卷及答案
- 2026年哈尔滨市道里区六年级下学期期末英语试题及答案
- 2026湖北武汉市区属国有企业招聘笔试历年参考题库附带答案详解
- 2026年公安机关人民警察高级执法资格考试真题含答案
- 护理人员的情绪管理与礼仪
- 2026上海博物馆公开招聘12名工作人员考试备考试题及答案解析
- 安宁疗护中的灵性关怀与信仰支持
- 2026年高考化学终极冲刺:专题03 化学反应原理综合题(大题专练逐空突破)(全国适用)(原卷版及解析)
- 中医诊断学之诊断思路与诊断方法
- 会计管理内部控制制度
评论
0/150
提交评论