1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第5章 可编程逻辑器件,第八章 可编程逻辑器件,8.1 可编程逻辑器件概述,8.2 简单可编程逻辑器件,8.3 高密度可编程逻辑器件HDPLD,8.4 PLD 编程与测试,第1页,教学要求:,一、半导体存放器部分,1、正确了解与熟练掌握:只读存放器、随机存放器工作原理及特点,存放器容量扩展方法及用存放器设计组合逻辑电路。,2、,重点:存放器容量扩展及用存放器设计组合逻辑电路。,二、可编程逻辑器件部分,1、正确了解与熟练掌握:可编程逻辑器件基本结构;PLD分类及表示方法;可编程阵列逻辑PAL应用;通用阵列逻辑
2、GAL应用。,2、,重点:可编程逻辑器件内部结构与工作原理。,第2页,在数字系统设计中,主要有三类基本器件可供选取,它们是:,中、小规模标准逻辑模块,如在前面章节中介绍74系列及其改进系列、CD4000系列、74HC系列等。,微处理器(Microprocessor)。,专用集成电路ASIC(Application Specific,Integrated Circuit)。,第3页,8.1 可编程逻辑器件概述,8.1.1 PLD发展简史,20世纪70年代,熔丝编程,PROM,(Programmable Read Only Memory)和,PLA,(Programmable Logic Arra
3、y)是最早出现可编程逻辑器件。,20世纪70年代末,AMD企业推出了,PAL,(Programmable Array Logic)器件。,20世纪80年代初,Lattice企业首先生产出了可电擦写、比PAL使用更灵活,GAL,(Generic Array Logic)器件。,第4页,20世纪80年代中期,Xilinx企业提出了现场可编程概念,同时生产出了世界上第一片,FPGA,(Field Programmable Gate Array)器件。同一时期,Altera企业推出了,EPLD,(Erasable PLD),它比GAL含有更高集成度,能够用紫外线或电擦除。,20世纪80年代末,Latt
4、ice企业又提出了在系统可编程,ISP,(InSystem Programmability)概念,并推出了一系列含有在系统可编程能力,CPLD,(Complex PLD)器件。今后,其它PLD生产厂家都相继采取了ISP技术。,第5页,进入20世纪90年代后,可编程逻辑器件发展十分快速。主要表现为三个方面:,一是规模越来越大;二是速度越来越高;三是电路结构越来越灵活,电路资源愈加丰富。,当前已经有集成度在300万门以上、系统频率为100MHz以上PLD供用户使用,在有些可编程逻辑器件中还集成了微处理器、数字信号处理单元和存放器等。这么,一个完整数字系统甚至仅用一片可编程逻辑器件就可实现,即所谓片
5、上系统,SOC,(System On Chip)。,第6页,8.1.2 PLD分类,1 按集成度分类,集成度是集成电路一项很主要指标,按照集成度能够将可编程逻辑器件分为两类:,低密度可编程逻辑器件LDPLD,(LowDensity PLD)。,高密度可编程逻辑器件HDPLD,(High Density PLD)。,普通以芯片GAL22V10容量来区分LDPLD和HDPLD。不一样制造厂家生产GAL22V10密度略有差异,大致在500750门之间。假如按照这个标准,PROM、PLA、PAL和GAL器件属于LDPLD,EPLD、CPLD和FPGA器件则属于HDPLD。,第7页,2 按基本结构分类,
6、当前惯用可编程逻辑器件都是从,与-或阵列和门阵列,两种基本结构发展起来,所以能够从结构上将其分成两大类器件:PLD器件和FPGA器件。,这种分类方法,将基本结构为,与-或阵列,器件称为PLD器件,将基本结构为,门阵列,器件称为FPGA器件。,LDPLD(PROM、PLA、PAL、GAL)、EPLD、CPLD基本结构都是与-或阵列,FPGA则是一个门阵列结构。,第8页,3 按编程工艺分类,所谓编程工艺,是指在可编程逻辑器件中可编程元件类型。按照这个标准,可编程逻辑器件又可分成五类:,熔丝(Fuse)或反熔丝(AntiFuse)编程器件。PROM、XilinxXC8100系列FPGA和ActelF
7、PGA等采取熔丝或反熔丝作为编程元件。,UVEPROM编程器件,即紫外线擦除/电气编程器件。AlteraClassic系列和MAX5000系列EPLD采取就是这种编程工艺。,第9页,E,2,PROM编程器件,即电可擦写编程器件。AlteraMAX7000系列和MAX9000系列以及LatticeGAL器件、ispLSI系列CPLD都属于这一类器件。,Flash Memory(闪速存放器)编程器件。Atmel部分低密度PLD、XilinxXC9500系列CPLD采取这种编程工艺。,SRAM编程器件。如:XilinxFPGA(除XC8100系列)和AlteraFPGA(FLEX系列、APEX系列)
8、均采取这种编程工艺。,第10页,对于第类可编程逻辑器件,它们在编程后,编程数据就保持在器件上,故将它们称为非易失性器件;而对于第类可编程逻辑器件,存放在SRAM中配置数据在掉电后会丢失,在每次上电后都要重新进行配置,所以将这类器件称为易失性器件。因为熔丝或反熔丝编程器件只能编程一次,所以又将这类器件称为一次性编程器件,即,OTP,(,One Time Programmable),器件,其它各类器件均能够屡次编程。,第11页,除以上三种分类方法外,可编程逻辑器件还有其它一些分类方法。如:按照制造工艺,可分为双极型和MOS型;还有些人把可编程逻辑器件分为简单可编程逻辑器件SPLD(Simple P
9、LD)和复杂可编程逻辑器件CPLD,将FPGA也归于CPLD中。标准上,各种分类方法之间是相互联络、并行不悖。在各类可编程逻辑器件中,,当前大量生产和广泛应用是以CPLD和FPGA为代表HDPLD,,它们都采取CMOS制造工艺,,编程工艺大多采取SRAM或E,2,PROM。,第12页,8.1.3 PLD电路表示方法,1 PLD连接表示法,图 8-1 PLD连接表示方法,(a)固定连接;(b)编程连接;(c)不连接,第13页,2 基本逻辑门PLD表示法,1)缓冲器,图 8-2 基本逻辑门PLD表示法,第14页,2)与门,图8-2(d)表示是一个三输入与门,依据连接关系可知,与门输出P=AC;当一
10、个与门全部输入变量都连接时,能够像图8-2(e)那样表示,这时,P=ABC。,3)或门,图8-2(f)表示是一个三输入或门,或门输出,P=ABC。,第15页,4)与-或阵列图,与-或阵列是用多个与门和或门组成一个阵列结构,,标准上任意组合逻辑电路都能够表示成与-或阵列形式,。图8-3(a)清楚地表明了一个不可编程与阵列和一个可编程或阵列。不难写出输出变量逻辑表示式为:,F,1,(A,B)=m(0,1,3),F,2,(A,B)=m(0,2,3),有时为了方便,能够将阵列中逻辑门省略掉,简化成图8-3(b)形式。,第16页,图 8-3 与-或阵列图,第17页,8.2 简单可编程逻辑器件SPLD,图
11、 8-4 SPLD基本结构,电路由输入电路、与阵列、或阵列和输出电路四部分组成。其中,与阵列和或阵列是PLD主体部分,逻辑函数主要靠它们来实现。,与阵列每一个输入端(包含内部反馈输入)都有输入缓冲电路,从,而使输入信号含有足够驱动能力,,而且产生原变量和反变量两个互补信号。,第18页,有些PLD输入电路还含有锁存器,甚至是一些能够组态输入宏单元(Micro Cell),能够实现对输入信号预处理。PLD有各种,输出方式,,能够由,或阵列直接输出(组合方式),也能够经过存放器输出(时序方式);,输出能够是高电平有效,也能够是低电平有效;不论采取哪种输出方式,,输出信号普通最终都是经过三态(TS)结
12、构或集电极开路(OC)结构输出缓冲器送到PLD输出引脚;,输出信号还能够经过内部通路反馈到与阵列输入端。,较新PLD都将输出电路做成了输出宏单元,使用者可依据需要方便地经过编程选择各种输出方式。,第19页,众所周知,任何组合逻辑函数都能够写成“与-或”表示式,从而用“与门-或门”这种二级电路来实现;而任何时序电路又都是由组合电路加上存放器件(触发器)组成。所以SPLD这种结构对实现数字电路含有普遍意义。,依据可编程电路资源,SPLD又可分成PROM、PLA、PAL和GAL四种,它们结构特点如表8-1所表示。,第20页,表8-1 四种SPLD结构特点,器件名,与阵列,或阵列,输出电路,PROM,
13、固定,可编程,固定,PLA,可编程,可编程,固定,PAL,可编程,固定,固定,GAL,可编程,固定,可编程,第21页,8.2.1 只读存放器ROM,1 ROM结构,ROM主体是,一个不可编程与阵列和一个可编程或阵列,,如图8-(a)所表示。图中,A,n-1,A,0,是n个输入变量,经与阵列后产生由n个输入变量组成2,n,个不一样最小项m,2,n,1,m,0,,F,m1,F,0,是对或阵列编程后产生m个输出函数。,ROM输出电路是三态结构或OC结构输出缓冲器。,第22页,图 8-5 ROM电路结构,(a)与-或阵列结构图;(b)存放器结构图,第23页,图 8-5 ROM电路结构,(a)与-或阵列
14、结构图;(b)存放器结构图,第24页,图 8-6 ROM结构图,(a)与-或阵列结构图;(b)存放器示意图,第25页,(b)存放器示意图,图 8-6 ROM结构图,第26页,任何组合逻辑函数都能够写成最小项之积标准形式。所以,只要合理地对或阵列进行编程,ROM这种结构能够实现任意n个输入变量m个函数,所以ROM是一个可编程逻辑器件。比如,图8-(a)给出是一个2,2,(2个输入)2(2个输出)ROM在对其或阵列编程后阵列图,不难看出:,显然,该ROM实现了2个2变量逻辑函数,,第27页,假如从存放器角度观察ROM电路结构,将图8-(a)所表示ROM输入变量A,1,、A,0,看作地址,不难发觉R
15、OM中与阵列实际上是一个高电平输出有效地址全译码器。当地址A,1,A,0,=01时,m,1,有效,输出F,1,F,0,=10;同理,当地址A,1,A,0,分别等于00、10和11时,读出内容为11、01和11。由此看来,,ROM中或阵列又能够被看作一个存放阵列,m,0,m,3,是存放阵列,字线,,F,1,、F,0,是存放阵列,位线,。,所以,ROM电路结构又能够被表示成8-(b)所表示形式。普通用存放阵列所能够存放二进制信息,位数2,n,m(字线与位线乘积),来表示ROM存放容量,它也恰好等同于作为PLD与门数和或门数乘积。,第28页,2 ROM分类,从制造工艺上能够将ROM分成双极型和MOS
16、型,鉴于MOS型电路(尤其是CMOS电路)含有功耗低、集成度高优点,所以当前大容量ROM都是采取MOS工艺制造。,另外,从编程工艺和擦除方法上又能够将ROM分为:固定只读存放器、可编程只读存放器PROM(Programmable Read Only Memory)、紫外线擦除可编程只读存放器UVEPROM(UltraViolet Erasable Programmable Read Only Memory)、电擦除可编程只读存放器E2PROM(Electric Erasable Programmable Read Only Memory)和闪速存放器(Flash Memory)。,第29页,1
17、固定只读存放器,固定ROM又称为掩膜ROM,普通简称为ROM。在这种ROM制造过程中,生产者经过最终一道工序掩膜,将用户要求数据“写入”存放器,因而有时也将这种方法称为,掩膜编程,。掩膜ROM中数据在出厂后再也不能被修改,对用户而言掩膜ROM是不可编程,普通用来作为字符发生器,或者用来存放数学用表(如三角函数表、指数函数表等)以及一些很成熟且用量很大通用程序。,ROM中存放单元能够是二极管,也能够是双极型三极管或MOS管。,第30页,图8-是一个44位二极管ROM电路示意图。电路中,地址译码器输出高电平有效,它,存放单元使用二极管组成,字线与位线交叉点上接有二极管表示该位存放“1”,无二极管
18、表示该位存放“0”。,显然该电路表示固定存放了4个字,每个字有4位,它们分别是1010、1001、0101和1111。,第31页,图 8-7 44位二极管ROM,第32页,在图8-存放阵列中,用N沟道增强型MOS管代替了图8-中二极管。,字线与位线交叉点上接有MOS管表示该位存放“1”,无MOS管表示该位存放“0”。,假设经过地址译码后,W,0,W,3,中某一位字线为高电平,则使得与这根字线相连MOS管导通,并使与这些MOS管漏极相连位线为低电平,经输出缓冲器反相后,输出为1。图8-存放内容与图8-相同。,第33页,图 8-8 44位MOS管ROM,第34页,2)可编程只读存放器(PROM),
19、图 8-9 44位二极管PROM存放阵列,第35页,为了克服熔丝缺点,又出现了反熔丝,它经过击穿介质到达连通线路目标。,Actel企业可编程低阻电路元件PLICE(Programmable Low Impedance Circuit Element)反熔丝结构如图5-10所表示,PLICE反熔丝是位于n+扩散和多晶硅之间介质,是和CMOS以及其它工艺(如双极型、BiMOS等)相兼容。在未编程状态下,反熔丝展现十分高阻抗(100 M);当18 V编程电压加在其上时,介质被击穿,两层导电材料连在一起,接通电阻小于1 k。反熔丝占用硅片面积非常小,十分适宜于作集成度很高可编程器件编程元件。,第36页
20、图 8-10 PLICE反熔丝结构图,第37页,3)可擦除可编程只读存放器(EPROM),EPROM包含UVEPROM、E,2,PROM和Flash Memory,,它们与前面讲过PROM在结构上并无太大区分,只是采取了不一样存放元件和编程工艺。,UVEPROM通常简称为EPROM,它采取叠栅注入MOS管(Stackedgate Injection MetalOxideSemiconductor,即SIMOS管),其结构示意图和符号如图8-11(a)、(b)所表示。,第38页,图 8-11 SIMOS管结构、符号及其组成存放单元,(a)SIMOS管结构;(b)SIMOS管符号;(c)存放单元
21、第39页,SIMOS管本身是一个N沟道增强型MOS管,与普通MOS管区分在于它有两个重合栅极控制栅G,c,和浮栅G,f,。上面控制栅用于控制读/写操作;下面浮栅被包围在绝缘材料SiO,2,中,用于长久保留注入电荷。当浮栅上没有电荷时,给控制栅加上正常高电平(由字线输入)能够使MOS管导通;而在浮栅上注入负电荷以后,则衬底表面感应是正电荷,这使得MOS管开启电压变高,正常高电平不会使MOS管导通。由此可见,PROM是利用SIMOS管浮栅上有没有负电荷来存放二进制数据,有负电荷表示存放是1,无负电荷表示存放是0,如图8-11(c)所表示。,第40页,在写入数据之前,浮栅上都是不带电荷,相当于存放
22、信息全部为0。在写入数据时,用户经过编程器在SIMOS管漏极源极间加以较高电压(2025 V),使之发生雪崩击穿现象。假如此时再在控制栅上加以高压脉冲,就会有一些电子在高压电场作用下穿过SiO,2,层,被浮栅俘获,从而实现了电荷注入,也就是向存放单元写入了1。在断电后,浮栅上电子没有放电回路,所以信息能够长久保留。,第41页,在紫外线照射下,SiO,2,层中会产生电子-空穴对,为浮栅上电荷提供放电通路,使之放电,这个过程称为擦除。擦除时间大约为2030分钟,在全部数据都被擦除后又能够重新写入数据。,UVEPROM器件外壳上玻璃窗就是为紫外线擦除数据而设置。在编程完成后,通惯用不透明胶带将玻璃窗
23、遮住,以防数据丢失。,第42页,E,2,PROM和Flash Memory采取也是浮栅编程工艺,用MOS管浮栅上有没有电荷来表示存放信息,只不过组成它们存放单元MOS管结构略有区分。E,2,PROM和Flash Memory不但能够用编程器重复编程,而且还能够用电擦除,这大大提升了擦除速度。E,2,PROM中数据擦除和写入是同时进行,以字为单位,一个字改写时间普通为ms级;Flash Memory擦除和读写速度更加快,数据擦除和写入是分开进行,擦除方式类似UVEPROM那样整片擦除或分块擦除。,第43页,3 ROM在组合逻辑设计中应用,【例1】用适当容量PROM实现22快速乘法器。,解:22快
24、速乘法器输入是两个2位二进制数,输出结果是4位二进制数。能够设被乘数为(A,1,A,0,),2,,乘数为(B,1,B,0,),2,,则(A,1,A,0,),2,(B,1,B,0,),2,=(D,3,D,2,D,1,D,0,),2,。只要将A,1,A,0,B,1,B,0,按次序作为PROM地址,把它们乘积存放在对应存放单元,即可实现两个2位二进制数快速乘法。PROMPLD阵列图如图5-12所表示,它容量为164位。假如要实现mn快速乘法器,PROM容量最少为2,m+n,(mn)位。,第44页,图 8-12 用PROM实现22快速乘法器,第45页,【例2】试用PROM实现字符发生器(或字符译码器)
25、组成字符发生器是ROM一个比较主要用途。字符发生器在采取发光二极管阵列作字符显示器或使用大屏幕光栅显示场所下用于字符显示器驱动控制。常见字符显示规格有75、77和97三种点阵。比如,若采取75点阵,则每一个字符都由7个5位字组成。图5-13中给出了一个75LED点阵示意图,图中每个小方格代表一个LED;每一行LED阴极连在一起,分别受3线-8线译码器74138输出W,0,W,6,控制;每一列LED阳极连在一起,分别受PROM输出D,4,D,0,控制;将模7二进制加法计数器状态(000110)作为PROM地址。这么,因为人视觉有一定暂留时间,只要按照一定速率不停地循环读出PROM各个字,在L
26、ED点阵上就能得到一个稳定字符显示。显示字符与PROM中存放内容是一一对应,显然图5-13所表示电路显示字符为R。若要产生更多字符,能够扩大PROM容量。,第46页,图 8-13 字符R显示电路,第47页,用可编程ROM来实现组合逻辑函数最大不足之处于于对芯片利用率不高,这是因为ROM中与阵列是一个固定全译码阵列,每一个乘积项都是一个最小项,只能实现组合逻辑函数最小项表示式,不能进行化简,而且实际上大多数组合逻辑函数也并不需要全部最小项。所以,ROM在绝大多数场所还是被作为存放器使用。,第48页,8.2.2 可编程逻辑阵列PLA,1 PLA结构,为了提升对芯片利用率,在PROM基础上又开发出了
27、一个与阵列、或阵列都能够编程PLD可编程逻辑阵列PLA。这么,与阵列输出乘积项无须一定是最小项,在采取PLA实现组合逻辑函数时能够利用逻辑函数经过化简后,最简与-或式,;而且与阵列输出乘积项个数也能够小于2n(n为输入变量个数),从而减小了与阵列规模。,第49页,PLA规模通惯用输入变量数、乘积项个数和或阵列输出信号数这三者乘积来表示。比如一个16488PLA,就表示它有16个输入变量,与阵列能够产生48个乘积项,或阵列有8个输出端。,按照输出方式,PLA能够分成两类:一类PLA以时序方式输出,在这类PLA输出电路中除了输出缓冲器以外还有触发器,适合用于实现时序逻辑,称为时序逻辑PLA;另一类
28、PLA以组合方式输出,在这类PLA中不含有触发器,适合用于实现组合逻辑,称为组合逻辑PLA。PLA输出电路普通是不可编程,但有些型号PLA器件在每一个或门输出端增加了一个可编程异或门,方便于对输出信号极性进行控制,如图8-14所表示。当编程单元为1时,或阵列输出S与经过异或门以后输出Y同相;当编程单元为0时,S与Y反相。,第50页,图 8-14 PLA异或输出结构,第51页,2 PLA应用,【例3】试用组合逻辑PLA实现从四位自然二进制代码到格雷码转换。,解 四位自然二进制代码转换为格雷码真值表如表8-2所表示。,第52页,采取PLA实现组合逻辑函数时,必须先对逻辑函数进行化简,以提升对芯片利
29、用率。,对多输出逻辑函数进行化简时要注意合理使用逻辑函数之间公共项,使乘积项总数最小。,经过逻辑函数化简,能够得到:,第53页,图 8-15 例8-3PLA阵列,第54页,图 8-16 时序逻辑PLA结构框图,第55页,【例 4】试用 FPLA和JK触发器实现模 4 可逆计器。当X=0 时进行加法计数;,X,=1时进行减法计数。,解:由给定功效可画出模 4 可逆计数器状态,图如图所表示。,依据状态图可求得时序电路激励方程和输出方程为:,第56页,图8-17 例 4模 4 可逆计数器,(,a,)状态图;(,b,)阵列图,第57页,2)PLA在时序逻辑设计中应用,时序逻辑PLA中,在或阵列输出和与
30、阵列输入之间增加了由触发器组成反馈通路,其结构框图如图8-16所表示,因而它能够实现时序逻辑。若采取组合逻辑PLA来实现时序电路,则需要外接触发器单元。,采取PLA设计时序电路方法:,1、首先由逻辑功效导出三组方程(输出方程组、激励,方程组和次态方程组),2、选择适当规模PLA器件来实现电路。,第58页,【例4】试用时序逻辑PLA实现含有异步清零和同时置数功效3位移位存放器。,解 设异步清零信号为 ,低电平有效;同时置数信号为LD,高电平有效;串行输入信号为D,in,;并行输入信号为A、B、C;时钟信号为CP。若触发器为D触发器,则次态方程和激励方程分别为:,次态方程:,激励方程:,第59页,
31、由上面可知,该电路共有7个输入信号、6个乘积项、三个输出信号和3个触发器,能够依据这些数据来选择适当PLA器件。该电路PLA阵列图如图8-17所表示。,PLA这种结构有利于提升对芯片利用率,在ASIC设计中应用得较多。但因为PLA器件制造工艺复杂,又一直缺乏高质量开发工具,因而其使用并不广泛。,第60页,图8-17 例5PLA阵列,第61页,8.2.3 可编程阵列逻辑PAL,可编程阵列逻辑PAL主要部分依然是与-或阵列,其中与阵列可依据需要进行编程,普通采取熔丝编程工艺,而或阵列是固定。与阵列可编程性确保了与门输入变量灵活性,而或阵列固定使器件得以简化,深入提升了对芯片利用率。与PLA相比,P
32、AL是一个愈加有效PLD结构,它被以后发展起来许多PLD所采取。,第62页,【例5】用PAL实现逻辑函数,解 首先对上述逻辑函数进行化简后可得,第63页,图 8-18 例5-PAL阵列,第64页,在当前常见PAL器件中,输入变量最多可到达20个,与阵列输出乘积项最多有80个,或阵列输出端最多有10个,每个或门输入端最多到达16个。,PAL器件输出电路普通是不可编程,为了扩展器件功效并增加使用灵活性,在不一样型号PAL中采取了不一样结构输出电路,这些结构主要有以下几类。,第65页,1)专用输出结构,专用输出结构共同特点是输出端只能用作输出信号,因为下面将会看到在另外一个输出结构中,输出端在一定条
33、件下能够作为输入使用。,专用输出结构PAL中不含有触发器,只能用来实现组合电路,其输出电路是一个或门,或者是一个或非门,还有PAL采取互补输出或门。图8-19所表示为一个采取或非门专用输出结构。,图 8-19 PAL专用输出结构,第66页,当前常见PAL主要有PAL10H8、PAL14H4、PAL10L8、PAL14L4和PAL16C1。其中,PAL10H8和PAL14H4为或门输出结构,PAL10L8和PAL14L4为或非门输出结构。在PAL型号中,第一个数字代表输入变量个数,第二个数字代表输出端个数;两个数字之间字母H、L和C分别表示高电平输出有效、低电平输出有效和互补输出。,第67页,2
34、可编程I/O(输入/输出)结构,在可编程I/O结构中,器件端口工作状态(输入或者输出)是能够控制。图8-20所表示是一个可编程I/O结构输出电路,它包含一个三态输出缓冲器和一个将端口上信号送到与阵列上互补输出缓冲器。不难发觉,三态输出缓冲器使能信号来自于与阵列输出,是可编程。在图8,-,20所表示编程情况下,当,I,1,=I,0,=0时,使能信号OE=1,端口处于输出状态;不然,OE=0,三态缓冲器输出为高阻抗,端口处于输入状态。,第68页,图 8-20 PAL可编程I/O结构,第69页,在有些可编程I/O结构PAL中,在或阵列与输出缓冲器之间还设有图8-14中所表示可编程异或门,这么就能够
35、经过编程来控制输出信号极性。,当前含有可编程I/O结构PAL主要有PAL16L8、PAL20L10等。,3)存放器输出结构,图 8-21 PAL存放器输出结构,第70页,4)异或输出结构,图8-22所表示输出结构与存放器输出结构类似,只不过在或阵列输出与触发器之间又设置了异或门,这种结构被称为异或输出结构。属于异或输出结构PAL主要有PAL20X4、PAL20X8、PAL20X10等。,图 8-22 PAL异或输出结构,第71页,与SSI、MSI标准产品相比,PAL出现提升了设计灵活性,有效降低了设计所用器件数量。通常一片PAL可代替412片SSI或24片MSI。不过PAL普通采取熔丝编程工艺
36、只能编程一次,所以使用者仍要负担一定风险;另外因为不一样型号芯片输出结构各不相同,这也给使用者在选择器件时带来一些不便。普通而言,PAL只能用来实现一些规模不大组合电路和简单时序电路(如计数器、移位存放器等)。,第72页,8.2.4 通用阵列逻辑GAL,通用阵列逻辑GAL是在PAL基础上发展起来,它继承了PAL与-或阵列结构,与PAL完全兼容。它与PAL最大不一样是用输出逻辑宏单元OLMC取代了或门和输出电路,能够经过编程将OLMC组态成各种输出结构,大大增强了芯片通用性和灵活性。另外,GAL采取E,2,PROM编程工艺,能够用电擦除并重复编程。,GAL器件命名规则与PAL相同,GAL22V
37、10中22表示与阵列输入变量数,10表示输出端个数,V则是输出方式能够改变意思。当前常见GAL器件主要有GAL16V8、GAL20V8、GAL22V10、GAL39V8和ispGAL16Z8等,其中GAL39V8中或阵列也可编程,对ispGAL16Z8编程时则不需要专门编程器,可在系统编程。,第73页,1 GAL基本结构,图8-23是GAL16V8电路结构图。它主要由5部分组成:8个输入缓冲器(引脚29作为固定输入端口);8个三态结构输出缓冲器(引脚1219作为I/O端口);8个OLMC(OLMC12OLMC19);与阵列和OLMC之间8个反馈缓冲器;一个规模为3264位可编程与阵列,它共有3
38、2个输入和64个乘积项,这64个乘积项平均分配给8个OLMC。,第74页,图 8-23 GAL16V8电路结构图,第75页,除了以上5个部分以外,GAL16V8还有一个专用时钟输入端CK(引脚1)、全局输出使能信号OE输入端(引脚11)、一个工作电源端U,CC,(引脚20,普通U,CC,=5 V)和一个接地端GND(引脚10)。,在对GAL16V8进行编程时,需要用到以下几个引脚:引脚1为编程时钟输入端S,CLK,;引脚11为编程电压输入端PRLD;引脚9被作为编程数据串行输入端S,DI,;引脚12为编程数据串行输出端S,DO,;电源端U,CC,(引脚20)和接地端GND(引脚10)。,第76
39、页,2 GAL编程单元行地址映射图,图8-24是GAL16V8编程单元行地址映射图,它表明了在GAL16V8中编程单元地址分配和功效划分。,编程是逐行进行。编程数据在编程系统控制下串行输入到64位移位存放器中,每装满一次就向编程单元写入一行数据。,第031行是与阵列编程单元,每行有64位,编程后能够产生64个乘积项。,第32行为芯片电子标签,也有64位。用户能够在这里存放器件编号、电路编号、编程日期、版本号等信息,以备查询。,第77页,第3359行是生产厂家保留空间,用户不能使用。第60行是一个82位结构控制字,用于控制OLMC,工作模式和乘积项禁止。,第61行是一位加密单元,加密单元被编程后
40、与阵列,中编程数据不能被更改或读出,从而使设计,结果得以保护。只有当整个芯片编程数据被,擦除时,加密单元才同时被擦除。不过电子标,签不受加密单元保护。,第62行是一位保留位。,第63行是一个整体擦除位,编程系统对这一位进行擦,除将造成整个芯片中全部编程单元都被擦掉。,第78页,图 8-24 GAL16V8编程单元地址分配,第79页,3GAL输出逻辑宏单元OLMC,图 8-25 GAL16V8OLMC结构框图和结构控制字组成,(a)OLMC结构框图;(b)结构控制字,第80页,图 8-25 GAL16V8OLMC结构框图和结构控制字组成,(a)OLMC结构框图;(b)结构控制字,第81页,GA
41、L器件每一个输出端都有一个OLMC,OLMC被组态成哪一个输出结构取决于对结构控制字编程。图8-25给出了GAL16V8OLMC结构图和控制字示意图。,由图8-25(,a,)可知,OLMC主要包含以下四个部分。,(1)一个8输入或门:或门7个输入是直接来自于,与阵列输出乘积项,第8个输入来自于乘积项数,据选择器输出。,(2)一个可编程异或门:经过对控制位XOR(n)(括,号中n是OLMC编号)编程,可改变输出信号,极性。当XOR(n)=0时,低电平输出有效;,当XOR(n)=1时,高电平输出有效。,第82页,(3)一个D触发器:,D触发器用于实现时序逻辑场所。,(4)四个数据选择器:,乘积项数
42、据选择器(PTMUX)。它是一个二选一数据选择器,受控制位AC0和AC1(n)控制(AC0是全部OLMC公用控制位)。当AC0=0或AC1(n)=0时,来自于与阵列第8个乘积项被接入到或门第8个输入端;当AC0=AC1(n)=1时,接入到或门第8个输入端信号为0。,第83页,输出数据选择器(OMUX)。它也是一个受控制位AC0和AC1(n)控制二选一数据选择器。当AC0=0或AC1(n)=1时,该OLMC采取组合输出方式;当AC0=1且AC1(n)=0时,该OLMC为存放器同时输出。,三态数据选择器(STMUX)。它是一个受控制位AC0和AC1(n)控制四选一数据选择器,用于选择输出三态缓冲器
43、使能信号。当AC0=AC1(n)=0时,选择U,CC,作为使能信号,输出三态缓冲器处于常通状态;当AC0=0且AC1(n)=1时,选择地电平作为使能信号,输出三态缓冲器处于高阻状态,引脚作为输入引脚使用;当AC0=1且AC1(n)=0时,输出三态缓冲器受全局输出使能信号OE控制;当AC0=1且AC1(n)=1时,选择来自于与阵列第8个乘积项作为使能信号。,第84页,反馈数据选择器(FMUX)。它是一个受本单元控制位AC0、AC1(n)和相邻单元控制位AC1(m)控制四选一数据选择器,用于选择由OLMC反馈回与阵列信号。当AC0=AC1(m)=0时,反馈信号为0;当 AC0=0且AC1(m)=1
44、时,反馈信号为相邻OLMC输出;当AC0=1且AC1(n)=0时,反馈信号取自本单元存放器,Q,端;当AC0=1且AC1(n)=1时,反馈信号取自本单元输出端。,第85页,除了以上提到控制位外,在GAL16V8中还有一个同时位SYN和64个乘积项禁止位。同时位SYN用于控制GAL是否有存放器输出能力:当SYN=1时,GAL不具备存放器输出能力;当SYN=0时,GAL具备存放器输出能力。另外,在GAL16V8OLMC19和OLMC12中,AC0和AC1(m)分别被SYN和SYN所代替。64个乘积项禁止位分别用于控制与阵列输出64个乘积项。当某一个禁止位为0时,则对应乘积项恒为0,表明在逻辑中不需
45、要这个乘积项。,第86页,依据以上所述,不难归纳出OLMC4种工作模式(或组态):,当AC0=0且AC1(n)=0时,OLMC为专用组合输出,模式,如图8-26(a)所表示;,当AC0=0且AC1(n)=1时,OLMC为专用输入模,式,如图8-26(b)所表示;,当AC0=1且AC1(n)=0且SYN=0时,OLMC为存放,器输出模式,如图8-26(c)所表示;,当AC0=1且AC1(n)=1时,OLMC为组合输入/输出,模式,如图8-26(d)所表示。,第87页,图 8-26 OLMC4种工作模式,(a)专用组合输出;(b)专用输入;(c)存放器输出;(d)组合输入/输出,第88页,4 GA
46、L器件优、缺点,在SPLD中,GAL是应用最广泛一个,它主要有以下一些优点:,与中、小规模标准器件相比,降低了设计中所,用芯片数量。,因为引入了OLMC这种结构,提升了器件通用,性。,因为采取E,2,PROM编程工艺,器件能够用电擦除,并重复编程,编程次数普通都在100次以上,,将设计风险降到最低。,采取CMOS制造工艺,速度高、功耗小。,第89页,含有上电复位和存放器同时预置功效。上电,后,GAL内部电路会产生一个异步复位信,号,将全部存放器都清0,使得器件在上电,后处于一个确定状态,有利于时序电路设,计。存放器同时预置功效是指能够将存放器预,置成任何一个特定状态,以实现对电路,100%测试
47、含有加密功效,可在一定程度上预防非法复,制。,第90页,不过GAL也有显著不足之处:,电路结构还不够灵活。比如,在GAL中,全部,存放器时钟端都连在一起,使用由外部引脚输,入统一时钟,这么单片GAL就不能实现异步时序,电路。,GAL仍属于低密度PLD器件,而且正是因为电路,规模较小,所以人们不需要读取编程信息,就可,以经过测试等方法分析出某个GAL实现逻辑功,能,使得GAL可加密优点不能完全发挥。事实,上,当前市场上已经有各种GAL解密软件。,第91页,5.3 高密度可编程逻辑器件HDPLD,HDPLD包含EPLD、CPLD和FPGA三种,大致能够分为两类:一类是与标准门阵列结构类似单元型
48、HDPLDFPGA;另一类是基于与-或阵列结构(或称为乘积项结构)阵列扩展型HDPLDEPLD和CPLD,其中CPLD是EPLD改进型器件。,经过十几年发展,当前市场上HDPLD产品型号繁多,电路结构也千差万别。其中最含有代表性还是Xilinx企业FPGA器件和Altera企业CPLD器件,它们开发得较早,占据了大部分PLD市场。当然还有其它许多著名厂商器件,如:Lattice,Vantis,Actel,Quicklogic,Lucent等。,第92页,部分HDPLD产品及其主要性能如表5-3所表示。,表5-3 部分HDPLD产品性能表,第93页,5.3.1 复杂可编程逻辑器件CPLD,当前生
49、产CPLD厂家有很多,各种型号CPLD在结构上也都有各自特点和优点,但概括起来,它们都是由三大部分组成,即可编程逻辑块(组成CPLD主体部分)、输入/输出块和可编程互连资源(用于逻辑块之间以及逻辑块与输入/输出块之间连接),如图5-27所表示。,第94页,图 5-27 CPLD普通结构,第95页,CPLD这种结构是在GAL基础上扩展、改进而成,尽管它规模比GAL大得多,功效也强得多,但它主体部分可编程逻辑块依然是基于乘积项(即:与-或阵列)结构,因而将其称为阵列扩展型HDPLD。,扩展方法并不是简单地增大与阵列规模,因为这么做势必造成芯片利用率下降和电路传输时延增加,所以CPLD采取了分区结构
50、即将整个芯片划分成多个逻辑块和输入/输出块,每个逻辑块都有各自与阵列、逻辑宏单元、输入和输出等,相当于一个独立SPLD,再经过一定方式全局性互连资源将这些SPLD和输入/输出块连接起来,组成更大规模CPLD。简单地讲,CPLD就是将多个SPLD集成到一块芯片上,并经过可编程连线实现它们之间连接。,第96页,就编程工艺而言,多数CPLD采取E2PROM编程工艺,也有采取Flash Memory编程工艺。,下面以Altera企业生产MAX7000系列为例,介绍CPLD电路结构及其工作原理。MAX7000在Altera企业生产CPLD中是速度最快一个系列,包含MAX7000E、MAX7000S、M






