数字电路与系统设计课件5.ppt_第1页
数字电路与系统设计课件5.ppt_第2页
数字电路与系统设计课件5.ppt_第3页
数字电路与系统设计课件5.ppt_第4页
数字电路与系统设计课件5.ppt_第5页
已阅读5页,还剩141页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第5章 可编程逻辑器件,5.1 可编程逻辑器件概述 5.2 简单可编程逻辑器件 5.3 高密度可编程逻辑器件HDPLD 5.4 PLD 的编程与测试,在数字系统的设计中, 主要有三类基本器件可供选用, 它们是: 中、小规模标准逻辑模块, 如在前面章节中介绍的74系列及其改进系列、 CD4000系列、74HC系列等。 微处理器(Microprocessor)。 专用集成电路ASIC(Application Specific Integrated Circuit)。 ,5.1 可编程逻辑器件概述,5.1.1 PLD的发展简史,20世纪70年代,熔丝编程的PROM(Programmable Read

2、 Only Memory)和PLA(Programmable Logic Array)是最早出现的可编程逻辑器件。 20世纪70年代末, AMD公司推出了PAL(Programmable Array Logic)器件。 20世纪80年代初, Lattice公司首先生产出了可电擦写的、 比PAL使用更灵活的GAL(Generic Array Logic)器件。 ,20世纪80年代中期, Xilinx公司提出了现场可编程的概念, 同时生产出了世界上第一片FPGA(Field Programmable Gate Array)器件。 同一时期, Altera公司推出了EPLD(Erasable PLD

3、),它比GAL具有更高的集成度, 可以用紫外线或电擦除。 20世纪80年代末, Lattice公司又提出了在系统可编程ISP(InSystem Programmability)的概念,并推出了一系列具有在系统可编程能力的CPLD(Complex PLD)器件。此后,其它PLD生产厂家都相继采用了ISP技术。,进入20世纪90年代后,可编程逻辑器件的发展十分迅速。 主要表现为三个方面: 一是规模越来越大; 二是速度越来越高; 三是电路结构越来越灵活, 电路资源更加丰富。目前已经有集成度在300万门以上、系统频率为100MHz以上的PLD供用户使用, 在有些可编程逻辑器件中还集成了微处理器、数字信

4、号处理单元和存储器等。这样,一个完整的数字系统甚至仅用一片可编程逻辑器件就可实现,即所谓的片上系统SOC(System On Chip)。,5.1.2 PLD的分类,1 按集成度分类 集成度是集成电路一项很重要的指标, 按照集成度可以将可编程逻辑器件分为两类: 低密度可编程逻辑器件LDPLD(LowDensity PLD)。 高密度可编程逻辑器件HDPLD(HighDensity PLD)。 一般以芯片GAL22V10的容量来区分LDPLD和HDPLD。不同制造厂家生产的GAL22V10的密度略有差别,大致在500750门之间。如果按照这个标准,PROM、PLA、PAL和GAL器件属于LDPL

5、D,EPLD、CPLD和FPGA器件则属于HDPLD。 ,2 按基本结构分类 目前常用的可编程逻辑器件都是从与-或阵列和门阵列两种基本结构发展起来的,所以可以从结构上将其分成两大类器件:PLD器件和FPGA器件。 这种分类方法将基本结构为与-或阵列的器件称为PLD器件, 将基本结构为门阵列的器件称为FPGA器件。 LDPLD(PROM、 PLA、 PAL、 GAL)、 EPLD、 CPLD的基本结构都是与-或阵列, FPGA则是一种门阵列结构。,3 按编程工艺分类 所谓编程工艺, 是指在可编程逻辑器件中可编程元件的类型。 按照这个标准,可编程逻辑器件又可分成五类: 熔丝(Fuse)或反熔丝(A

6、ntiFuse)编程器件。 PROM、 Xilinx的XC8100系列F PGA和Actel的FPGA等采用熔丝或反熔丝作为编程元件。 UVEPROM编程器件, 即紫外线擦除/电气编程器件。 Altera的Classic系列和MAX5000系列EPLD采用的就是这种编程工艺。, E2PROM编程器件,即电可擦写编程器件。Altera的MAX7000系列和MAX9000系列以及Lattice的GAL器件、 ispLSI系列CPLD都属于这一类器件。 Flash Memory(闪速存储器)编程器件。 Atmel的部分低密度PLD、 Xilinx的XC9500系列CPLD采用这种编程工艺。 SRAM

7、编程器件。如: Xilinx的FPGA(除XC8100系列)和Altera的FPGA(FLEX系列、APEX系列)均采用这种编程工艺。,对于第类可编程逻辑器件, 它们在编程后, 编程数据就保持在器件上,故将它们称为非易失性器件; 而对于第类可编程逻辑器件, 存储在SRAM中的配置数据在掉电后会丢失, 在每次上电后都要重新进行配置, 因此将这类器件称为易失性器件。由于熔丝或反熔丝编程器件只能编程一次, 所以又将这类器件称为一次性编程器件, 即OTP(One Time Programmable)器件, 其它各类器件均可以多次编程。 ,除以上三种分类方法外, 可编程逻辑器件还有其它的一些分类方法。如

8、:按照制造工艺,可分为双极型和MOS型;还有人把可编程逻辑器件分为简单可编程逻辑器件SPLD(Simple PLD)和复杂可编程逻辑器件CPLD, 将FPGA也归于CPLD中。 原则上,各种分类方法之间是相互联系、并行不悖的。在各类可编程逻辑器件中,目前大量生产和广泛应用的是以CPLD和FPGA为代表的HDPLD, 它们都采用CMOS制造工艺, 编程工艺大多采用SRAM或E2PROM。,5.1.3 PLD电路的表示方法,1 PLD连接的表示法,图 5 - 1 PLD连接的表示方法 (a) 固定连接; (b) 编程连接; (c) 不连接,2 基本逻辑门的PLD表示法 1) 缓冲器,图 5-2 基

9、本逻辑门的PLD表示法,2) 与门 图5-2(d)表示的是一个三输入的与门, 根据连接关系可知, 与门输出P=AC; 当一个与门的所有输入变量都连接时, 可以像图5-2(e)那样表示, 这时, P=ABC。,3) 或门 图52(f)表示的是一个三输入的或门, 或门输出 P=ABC。 ,4) 与-或阵列图 与-或阵列是用多个与门和或门构成的一种阵列结构, 原则上任意组合逻辑电路都可以表示成与-或阵列的形式。图53(a)清楚地表明了一个不可编程的与阵列和一个可编程的或阵列。 不难写出输出变量的逻辑表达式为: F1(A,B)=m(0,1,3) F2(A,B)=m(0,2,3) 有时为了方便,可以将阵

10、列中的逻辑门省略掉,简化成图5-3(b)的形式。,图 5-3 与-或阵列图,5.2 简单可编程逻辑器件SPLD,图 5-4 SPLD的基本结构,电路由输入电路、与阵列、 或阵列和输出电路四部分组成。其中,与阵列和或阵列是PLD的主体部分, 逻辑函数主要靠它们来实现。与阵列的每一个输入端(包括内部反馈输入)都有输入缓冲电路, 从而使输入信号具有足够的驱动能力, 并且产生原变量和反变量两个互补信号;有些PLD的输入电路还含有锁存器, 甚至是一些可以组态的输入宏单元(Micro Cell),可以实现对输入信号的预处理。 PLD有多种输出方式, 可以由或阵列直接输出(组合方式), 也可以通过寄存器输出

11、(时序方式); 输出可以是高电平有效, 也可以是低电平有效;无论采用哪种输出方式, 输出信号一般最后都是经过三态(TS)结构或集电极开路(OC)结构的输出缓冲器送到PLD的输出引脚; 输出信号还可以通过内部通路反馈到与阵列的输入端。 较新的PLD都将输出电路做成了输出宏单元,使用者可根据需要方便地通过编程选择各种输出方式。,众所周知, 任何组合逻辑函数都可以写成“与-或”表达式, 从而用“与门-或门”这种二级电路来实现; 而任何时序电路又都是由组合电路加上存储器件(触发器)构成的。因此SPLD的这种结构对实现数字电路具有普遍意义。 依据可编程的电路资源,SPLD又可分成PROM、PLA、 PA

12、L和GAL四种, 它们的结构特点如表5-1所示。 ,表5-1 四种SPLD的结构特点,5.2.1 只读存储器ROM,1 ROM的结构 ROM的主体是一个不可编程的与阵列和一个可编程的或阵列,如图5-(a)所示。 图中,An-1A0是n个输入变量,经与阵列后产生由n个输入变量构成的2n个不同的最小项m2n1m0, Fm1F0是对或阵列编程后产生的m个输出函数。 ROM的输出电路是三态结构或OC结构的输出缓冲器。 ,图 5-5 ROM的电路结构 (a) 与-或阵列结构图; (b) 存储器结构图,图 5-5 ROM的电路结构 (a) 与-或阵列结构图; (b) 存储器结构图,图 5-6 ROM结构图

13、 (a) 与-或阵列结构图; (b) 存储器示意图,图 5-6 ROM结构图 (a) 与-或阵列结构图; (b) 存储器示意图,任何组合逻辑函数都可以写成最小项之积的标准形式。因此,只要合理地对或阵列进行编程, ROM的这种结构可以实现任意n个输入变量的m个函数,所以ROM是一种可编程逻辑器件。 例如,图5-(a)给出的是一个22(2个输入)2(2个输出)ROM在对其或阵列编程后的阵列图,不难看出:,显然,该ROM实现了2个2变量的逻辑函数,,如果从存储器的角度观察ROM的电路结构,将图5-(a)所示的ROM的输入变量A1、A0看作地址,不难发现ROM中的与阵列实际上是一个高电平输出有效的地址

14、全译码器。当地址A1A0=01时,m1有效,输出F1F0=10;同理,当地址A1A0分别等于00、10和11时,读出的内容为11、01和11。由此看来,ROM中的或阵列又可以被看作一个存储阵列,m0m3是存储阵列的字线, F1、F0是存储阵列的位线。所以,ROM的电路结构又可以被表示成5-(b)所示的形式。一般用存储阵列所能够存储的二进制信息的位数2nm(字线与位线的乘积)来表示ROM的存储容量, 它也恰好等同于作为PLD的与门数和或门数的乘积。 ,2 ROM的分类 从制造工艺上可以将ROM分成双极型和MOS型, 鉴于MOS型电路(尤其是CMOS电路)具有功耗低、 集成度高的优点, 所以目前大

15、容量的ROM都是采用MOS工艺制造的。 另外,从编程工艺和擦除方法上又可以将ROM分为: 固定只读存储器、可编程只读存储器PROM(Programmable Read Only Memory)、紫外线擦除可编程只读存储器UVEPROM(UltraViolet Erasable Programmable Read Only Memory)、 电擦除可编程只读存储器E2PROM(Electric Erasable Programmable Read Only Memory)和闪速存储器(Flash Memory)。 ,1) 固定只读存储器 固定ROM又称为掩膜ROM,一般简称为ROM。在这种ROM

16、的制造过程中, 生产者通过最后一道工序掩膜, 将用户要求的数据“写入”存储器, 因而有时也将这种方法称为掩膜编程。 掩膜ROM中的数据在出厂后再也不能被修改, 对用户而言掩膜ROM是不可编程的,一般用来作为字符发生器, 或者用来存储数学用表(如三角函数表、 指数函数表等)以及一些很成熟且用量很大的通用程序。 ROM中的存储单元可以是二极管, 也可以是双极型三极管或MOS管。,图5-是一个44位二极管ROM电路的示意图。电路中,地址译码器输出高电平有效, 它的存储单元使用二极管构成, 字线与位线交叉点上接有二极管表示该位存储“1”,无二极管表示该位存储“0”。 显然该电路表示固定存储了4个字,每

17、个字有4位, 它们分别是1010、 1001、 0101和1111。,图 5-7 44位二极管ROM,在图5存储阵列中, 用N沟道增强型MOS管代替了图5中的二极管。 字线与位线交叉点上接有MOS管表示该位存储“1”, 无MOS管表示该位存储“0”。 假设经过地址译码后, W0W3中的某一位字线为高电平, 则使得与这根字线相连的MOS管导通, 并使与这些MOS管漏极相连的位线为低电平, 经输出缓冲器反相后,输出为1。图5-存储的内容与图5-的相同。,图 5-8 44位MOS管ROM,2) 可编程只读存储器(PROM),图 5-9 44位二极管PROM存储阵列,为了克服熔丝的缺点,又出现了反熔丝

18、, 它通过击穿介质达到连通线路的目的。Actel公司的可编程低阻电路元件PLICE(Programmable Low Impedance Circuit Element)反熔丝的结构如图510所示, PLICE反熔丝是位于n+扩散和多晶硅之间的介质, 是和CMOS以及其它工艺(如双极型、 BiMOS等)相兼容的。 在未编程状态下,反熔丝呈现十分高的阻抗(100 M);当18 V的编程电压加在其上时, 介质被击穿, 两层导电材料连在一起, 接通电阻小于1 k。反熔丝占用的硅片面积非常小,十分适宜于作集成度很高的可编程器件的编程元件。 ,图 5-10 PLICE反熔丝结构图,3) 可擦除可编程只读

19、存储器(EPROM) EPROM包括UVEPROM、E2PROM和Flash Memory, 它们与前面讲过的PROM在结构上并无太大区别,只是采用了不同的存储元件和编程工艺。 UVEPROM通常简称为EPROM, 它采用叠栅注入MOS管(Stackedgate Injection MetalOxideSemiconductor, 即SIMOS管),其结构示意图和符号如图5-11(a)、(b)所示。,图 5-11 SIMOS管的结构、 符号及其构成的存储单元 (a) SIMOS管的结构; (b) SIMOS管的符号; (c) 存储单元,SIMOS管本身是一个N沟道增强型MOS管,与普通MOS管

20、的区别在于它有两个重叠的栅极控制栅Gc和浮栅Gf。上面的控制栅用于控制读/写操作;下面的浮栅被包围在绝缘材料SiO2中,用于长期保存注入的电荷。当浮栅上没有电荷时,给控制栅加上正常的高电平(由字线输入)能够使MOS管导通;而在浮栅上注入负电荷以后,则衬底表面感应的是正电荷,这使得MOS管的开启电压变高,正常的高电平不会使MOS管导通。 由此可见, PROM是利用SIMOS管的浮栅上有无负电荷来存储二进制数据的, 有负电荷表示存储的是1,无负电荷表示存储的是0,如图5-11(c)所示。 ,在写入数据之前, 浮栅上都是不带电荷的, 相当于存储的信息全部为0。 在写入数据时, 用户通过编程器在SIM

21、OS管的漏极源极间加以较高的电压(2025 V), 使之发生雪崩击穿现象。 如果此时再在控制栅上加以高压脉冲, 就会有一些电子在高压电场的作用下穿过SiO2层,被浮栅俘获,从而实现了电荷注入, 也就是向存储单元写入了1。 在断电后,浮栅上的电子没有放电回路, 所以信息可以长久保存。 ,在紫外线的照射下,SiO2层中会产生电子-空穴对, 为浮栅上的电荷提供放电通路,使之放电, 这个过程称为擦除。擦除时间大约为2030分钟,在所有的数据都被擦除后又可以重新写入数据。UVEPROM器件外壳上的玻璃窗就是为紫外线擦除数据而设置的。在编程完毕后,通常用不透明的胶带将玻璃窗遮住,以防数据丢失。 ,E2PR

22、OM和Flash Memory采用的也是浮栅编程工艺,用MOS管的浮栅上有无电荷来表示存储信息,只不过构成它们的存储单元的MOS管的结构略有区别。 E2PROM和Flash Memory不但可以用编程器反复编程,而且还可以用电擦除, 这大大提高了擦除速度。E2PROM中数据的擦除和写入是同时进行的, 以字为单位, 一个字的改写时间一般为ms级;Flash Memory的擦除和读写速度更快, 数据的擦除和写入是分开进行的,擦除方式类似UVEPROM那样整片擦除或分块擦除。 ,3 ROM在组合逻辑设计中的应用,【例5-1】用适当容量的PROM实现22快速乘法器。 解 22快速乘法器的输入是两个2位

23、二进制数,输出的结果是4位二进制数。可以设被乘数为(A1A0)2,乘数为(B1B0)2,则(A1A0)2(B1B0)2 =(D3D2D1D0)2。只要将A1A0B1B0按顺序作为PROM的地址,把它们的乘积存放在相应的存储单元, 即可实现两个2位二进制数的快速乘法。PROM的PLD阵列图如图5-12所示, 它的容量为164位。如果要实现mn快速乘法器, PROM的容量至少为2m+n(mn)位。,图 5-11 用PROM实现22快速乘法器,用可编程ROM来实现组合逻辑函数的最大不足之处在于对芯片的利用率不高,这是因为ROM中的与阵列是一个固定的全译码阵列, 每一个乘积项都是一个最小项,只能实现组

24、合逻辑函数的最小项表达式,不能进行化简,而且实际上大多数的组合逻辑函数也并不需要所有的最小项。因此,ROM在绝大多数场合还是被作为存储器使用。,5.2.2 可编程逻辑阵列PLA 1 PLA的结构,为了提高对芯片的利用率,在PROM的基础上又开发出了一种与阵列、 或阵列都可以编程的PLD可编程逻辑阵列PLA。 这样, 与阵列输出的乘积项不必一定是最小项,在采用PLA实现组合逻辑函数时可以运用逻辑函数经过化简后的最简与-或式; 而且与阵列输出的乘积项的个数也可以小于2n(n为输入变量的个数),从而减小了与阵列的规模。,PLA的规模通常用输入变量数、乘积项的个数和或阵列输出信号数这三者的乘积来表示。

25、例如一个16488的PLA,就表示它有16个输入变量,与阵列可以产生48个乘积项,或阵列有8个输出端。 按照输出方式, PLA可以分成两类:一类PLA以时序方式输出,在这类PLA的输出电路中除了输出缓冲器以外还有触发器, 适用于实现时序逻辑, 称为时序逻辑PLA;另一类PLA以组合方式输出,在这类PLA中不含有触发器, 适用于实现组合逻辑, 称为组合逻辑PLA。PLA的输出电路一般是不可编程的,但有些型号的PLA器件在每一个或门的输出端增加了一个可编程的异或门, 以便于对输出信号的极性进行控制,如图514所示。当编程单元为1时,或阵列输出S与经过异或门以后的输出Y同相;当编程单元为0时,S与Y

26、反相。,图 5-14 PLA的异或输出结构,2 PLA的应用,【例5-3】 试用组合逻辑PLA实现从四位自然二进制代码到格雷码的转换。 解 四位自然二进制代码转换为格雷码的真值表如表5-2所示。,表5-2 四位自然二进制代码和格雷码的转换表,采用PLA实现组合逻辑函数时,必须先对逻辑函数进行化简, 以提高对芯片的利用率。对多输出逻辑函数进行化简时要注意合理使用逻辑函数之间的公共项,使乘积项的总数最小。经过逻辑函数化简, 可以得到,图 5-15 例53的PLA阵列,5.2.3 可编程阵列逻辑PAL 可编程阵列逻辑PAL的主要部分仍然是与-或阵列,其中与阵列可根据需要进行编程,一般采用熔丝编程工艺

27、,而或阵列是固定的。与阵列的可编程性保证了与门输入变量的灵活性, 而或阵列固定使器件得以简化, 进一步提高了对芯片的利用率。 与PLA相比, PAL是一种更加有效的PLD结构, 它被后来发展起来的许多PLD所采用。 ,PAL器件的输出电路一般是不可编程的, 为了扩展器件的功能并增加使用的灵活性,在不同型号的PAL中采用了不同结构的输出电路, 这些结构主要有以下几类。,1) 专用输出结构 专用输出结构的共同特点是输出端只能用作输出信号, 因为下面将会看到在另外一种输出结构中,输出端在一定条件下可以作为输入使用。 专用输出结构的PAL中不含有触发器,只能用来实现组合电路,其输出电路是一个或门,或者

28、是一个或非门,还有的PAL采用互补输出的或门。图5-19所示为一个采用或非门的专用输出结构。 ,图 5-19 PAL的专用输出结构,2) 可编程I/O(输入/输出)结构 在可编程I/O结构中,器件端口的工作状态(输入或者输出)是可以控制的。图5-20所示的是一个可编程I/O结构的输出电路, 它包括一个三态输出缓冲器和一个将端口上的信号送到与阵列上的互补输出缓冲器。不难发现,三态输出缓冲器的使能信号来自于与阵列的输出,是可编程的。在图520所示的编程情况下,当I1= I0= 0时,使能信号OE= 1,端口处于输出状态; 否则,OE = 0, 三态缓冲器输出为高阻抗,端口处于输入状态。,图 5-2

29、0 PAL的可编程I/O结构,在有些可编程I/O结构的PAL中, 在或阵列与输出缓冲器之间还设有图5-14中所示的可编程异或门,这样就可以通过编程来控制输出信号的极性。 目前具有可编程I/O结构的PAL主要有PAL16L8、 PAL20L10等。,3) 寄存器输出结构 可以用来实现时序逻辑电路,图 5-21 PAL的寄存器输出结构,4) 异或输出结构 图5-22所示的输出结构与寄存器输出结构类似,只不过在或阵列输出与触发器之间又设置了异或门,这种结构被称为异或输出结构。属于异或输出结构的PAL主要有PAL20X4、PAL20X8、 PAL20X10等。,图 5-22 PAL的异或输出结构,与S

30、SI、MSI标准产品相比,PAL的出现提高了设计的灵活性,有效减少了设计所用器件的数量。通常一片PAL可代替412片SSI或24片MSI。 但是PAL一般采用熔丝编程工艺, 只能编程一次,所以使用者仍要承担一定的风险; 另外由于不同型号的芯片的输出结构各不相同,这也给使用者在选择器件时带来一些不便。 一般而言, PAL只能用来实现一些规模不大的组合电路和简单的时序电路(如计数器、 移位寄存器等)。,5.2.4 通用阵列逻辑GAL 通用阵列逻辑GAL是在PAL的基础上发展起来的, 它继承了PAL的与-或阵列结构,与PAL完全兼容。它与PAL最大的不同是用输出逻辑宏单元OLMC取代了或门和输出电路

31、,可以通过编程将OLMC组态成多种输出结构,大大增强了芯片的通用性和灵活性。另外,GAL采用E2PROM编程工艺,可以用电擦除并重复编程。 GAL器件的命名规则与PAL相同,GAL22V10中的22表示与阵列的输入变量数,10表示输出端的个数,V则是输出方式可以改变的意思。目前常见的GAL器件主要有GAL16V8、GAL20V8、GAL22V10、GAL39V8和ispGAL16Z8等,其中GAL39V8中的或阵列也可编程,对ispGAL16Z8编程时则不需要专门的编程器, 可在系统编程。,1 GAL的基本结构 图5-23是GAL16V8的电路结构图。 它主要由5部分组成: 8个输入缓冲器(引

32、脚29作为固定输入端口); 8个三态结构的输出缓冲器(引脚1219作为I/O端口); 8个OLMC(OLMC12OLMC19); 与阵列和OLMC之间的8个反馈缓冲器; 一个规模为3264位的可编程与阵列, 它共有32个输入和64个乘积项, 这64个乘积项平均分配给8个OLMC。,图 5-23 GAL16V8的电路结构图,除了以上5个部分以外,GAL16V8还有一个专用时钟输入端CK(引脚1)、全局输出使能信号OE输入端(引脚11)、 一个工作电源端UCC(引脚20, 一般UCC=5 V)和一个接地端GND(引脚10)。 在对GAL16V8进行编程时,需要用到以下几个引脚:引脚1为编程时钟输入

33、端SCLK;引脚11为编程电压输入端PRLD;引脚9被作为编程数据串行输入端SDI;引脚12为编程数据串行输出端SDO; 电源端UCC(引脚20)和接地端GND(引脚10)。,2 GAL编程单元的行地址映射图,图5-24是GAL16V8的编程单元行地址映射图,它表明了在GAL16V8中编程单元的地址分配和功能划分。 编程是逐行进行的。 编程数据在编程系统的控制下串行输入到64位移位寄存器中,每装满一次就向编程单元写入一行数据。 第031行是与阵列的编程单元, 每行有64位, 编程后可以产生64个乘积项。 第32行为芯片的电子标签,也有64位。用户可以在这里存放器件的编号、电路编号、编程日期、版

34、本号等信息,以备查询。,第3359行是生产厂家保留的空间,用户不能使用。 第60行是一个82位的结构控制字, 用于控制OLMC的工作模式和乘积项的禁止。 第61行是一位加密单元,加密单元被编程后,与阵列中的编程数据不能被更改或读出,从而使设计成果得以保护。 只有当整个芯片的编程数据被擦除时,加密单元才同时被擦除。但是电子标签不受加密单元的保护。 第62行是一位保留位。 第63行是一个整体擦除位,编程系统对这一位进行擦除将导致整个芯片中所有的编程单元都被擦掉。 ,图 5-24 GAL16V8编程单元的地址分配,3GAL的输出逻辑宏单元OLMC,图 5-25 GAL16V8的OLMC结构框图和结构

35、控制字组成 (a) OLMC结构框图; (b) 结构控制字,图 5-25 GAL16V8的OLMC结构框图和结构控制字组成 (a) OLMC结构框图; (b) 结构控制字,GAL器件的每一个输出端都有一个OLMC, OLMC被组态成哪一种输出结构取决于对结构控制字的编程。图525给出了GAL16V8的OLMC结构图和控制字示意图。 由图525(a)可知,OLMC主要包括以下四个部分。 (1) 一个8输入的或门:或门的7个输入是直接来自于与阵列输出的乘积项, 第8个输入来自于乘积项数据选择器的输出。 (2) 一个可编程的异或门:通过对控制位XOR(n)(括号中的n是OLMC的编号)的编程,可改变

36、输出信号的极性。当XOR(n) = 0时, 低电平输出有效;当XOR(n) = 1时,高电平输出有效。 ,(3) 一个D触发器: D触发器用于实现时序逻辑的场合。 (4) 四个数据选择器: 乘积项数据选择器(PTMUX)。 它是一个二选一数据选择器, 受控制位AC0和AC1(n)控制(AC0是所有OLMC公用的控制位)。当AC0 = 0或AC1(n) = 0时, 来自于与阵列的第8个乘积项被接入到或门的第8个输入端; 当AC0 = AC1(n) = 1时, 接入到或门的第8个输入端的信号为0。 , 输出数据选择器(OMUX)。 它也是一个受控制位AC0和AC1(n)控制的二选一数据选择器。当A

37、C0 = 0或AC1(n) = 1时, 该OLMC采用组合输出方式; 当AC0 = 1且AC1(n) = 0时,该OLMC为寄存器同步输出。 三态数据选择器(STMUX)。它是一个受控制位AC0和AC1(n)控制的四选一数据选择器,用于选择输出三态缓冲器的使能信号。当AC0 = AC1(n) = 0时,选择UCC作为使能信号,输出三态缓冲器处于常通状态;当AC0 = 0且AC1(n) = 1时,选择地电平作为使能信号,输出三态缓冲器处于高阻状态,引脚作为输入引脚使用; 当AC0 = 1且AC1(n) = 0时,输出三态缓冲器受全局输出使能信号OE控制;当AC0 = 1且AC1(n) = 1时,

38、选择来自于与阵列的第8个乘积项作为使能信号。,根据以上所述,不难归纳出OLMC的4种工作模式(或组态): 当AC0 = 0且AC1(n) = 0时, OLMC为专用组合输出模式, 如图5-26(a)所示; 当AC0 = 0且AC1(n) = 1时, OLMC为专用输入模式, 如图5-26(b)所示; 当AC0 = 1且AC1(n) = 0且SYN = 0时, OLMC为寄存器输出模式, 如图5-26(c)所示; 当AC0 = 1且AC1(n) = 1时, OLMC为组合输入/输出模式, 如图5-26(d)所示。,图 5-26 OLMC的4种工作模式 (a) 专用组合输出; (b) 专用输入;

39、(c) 寄存器输出; (d) 组合输入/输出,4 GAL器件的优、 缺点 在SPLD中, GAL是应用最广泛的一种, 它主要有以下一些优点: 与中、小规模标准器件相比, 减少了设计中所用的芯片数量。 由于引入了OLMC这种结构, 提高了器件的通用性。 由于采用E2PROM编程工艺, 器件可以用电擦除并重复编程, 编程次数一般都在100次以上, 将设计风险降到最低。 采用CMOS制造工艺, 速度高、功耗小。, 具有上电复位和寄存器同步预置功能。上电后,GAL的内部电路会产生一个异步复位信号, 将所有的寄存器都清0, 使得器件在上电后处在一个确定的状态,有利于时序电路的设计。 寄存器同步预置功能是

40、指可以将寄存器预置成任何一个特定的状态,以实现对电路的100%测试。 具有加密功能, 可在一定程度上防止非法复制。,但是GAL也有明显的不足之处: 电路的结构还不够灵活。 例如, 在GAL中, 所有的寄存器的时钟端都连在一起,使用由外部引脚输入的统一时钟, 这样单片GAL就不能实现异步时序电路。 GAL仍属于低密度PLD器件,而且正是由于电路的规模较小,所以人们不需要读取编程信息,就可以通过测试等方法分析出某个GAL实现的逻辑功能, 使得GAL可加密的优点不能完全发挥。 事实上, 目前市场上已有多种GAL解密软件。,5.3 高密度可编程逻辑器件HDPLD,HDPLD包括EPLD、CPLD和FP

41、GA三种,大致可以分为两类: 一类是与标准门阵列结构类似的单元型HDPLDFPGA; 另一类是基于与-或阵列结构(或称为乘积项结构)的阵列扩展型HDPLDEPLD和CPLD, 其中CPLD是EPLD的改进型器件。 经过十几年的发展, 目前市场上HDPLD产品型号繁多, 电路结构也千差万别。 其中最具有代表性的还是Xilinx公司的FPGA器件和Altera公司的CPLD器件, 它们开发得较早, 占据了大部分的PLD市场。 当然还有其它许多著名厂商的器件, 如:Lattice, Vantis, Actel, Quicklogic, Lucent等。,部分HDPLD产品及其主要性能如表5-3所示。

42、,表5-3 部分HDPLD产品的性能表,5.3.1 复杂可编程逻辑器件CPLD 目前生产CPLD的厂家有很多,各种型号的CPLD在结构上也都有各自的特点和长处,但概括起来,它们都是由三大部分组成的,即可编程逻辑块(构成CPLD的主体部分)、输入/输出块和可编程互连资源(用于逻辑块之间以及逻辑块与输入/输出块之间的连接),如图5-27所示。 ,图 5-27 CPLD的一般结构,CPLD的这种结构是在GAL的基础上扩展、改进而成的, 尽管它的规模比GAL大得多,功能也强得多,但它的主体部分可编程逻辑块仍然是基于乘积项(即: 与-或阵列)的结构,因而将其称为阵列扩展型HDPLD。 扩展的方法并不是简

43、单地增大与阵列的规模,因为这样做势必导致芯片的利用率下降和电路的传输时延增加,所以CPLD采用了分区结构, 即将整个芯片划分成多个逻辑块和输入/输出块,每个逻辑块都有各自的与阵列、 逻辑宏单元、 输入和输出等,相当于一个独立的SPLD,再通过一定方式的全局性互连资源将这些SPLD和输入/输出块连接起来,构成更大规模的CPLD。 简单地讲,CPLD就是将多个SPLD集成到一块芯片上,并通过可编程连线实现它们之间的连接。,就编程工艺而言,多数的CPLD采用E2PROM编程工艺, 也有采用Flash Memory编程工艺的。 下面以Altera公司生产的MAX7000系列为例, 介绍CPLD的电路结

44、构及其工作原理。MAX7000在Altera公司生产的CPLD中是速度最快的一个系列,包括MAX7000E、MAX7000S、 MAX7000A三种器件,集成度为6005000个可用门、 32256个宏单元和36155个可用I/O引脚。 它采用CMOS制造工艺和E2PROM编程工艺, 并可以进行在系统编程。 ,图5-28所示为MAX7000A的电路结构,它主要由逻辑阵列块LAB(Logic Array Block)、I/O控制块和可编程互连阵列PIA(Programmable Interconnect Array)三个部分构成。 另外, MAX7000A结构中还包括4个专用输入, 它们既可以作

45、为通用逻辑输入,也可以作为高速的全局控制信号(1个时钟信号、 1个清零信号和两个输出使能信号)。 ,图 5-28 MAX7000A的电路结构图,1 逻辑阵列块LAB MAX7000A的主体是通过可编程互连阵列PIA连接在一起的、 高性能的、 灵活的逻辑阵列块。每个LAB由16个宏单元组成, 输入到每个LAB的有如下信号: 来自于PIA的36个通用逻辑输入; 全局控制信号(时钟信号、 清零信号); 从I/O引脚到寄存器的直接输入通道, 用于实现MAX7000A的最短建立时间。LAB的输出信号可以同时馈入PIA和I/O控制块。,2 宏单元Macrocell,MAX7000A的宏单元如图5-29所示

46、,它包括与阵列、乘积项选择阵列以及由一个或门、 一个异或门、一个触发器和4个多路选择器构成的OLMC。 不难看出, 每一个宏单元就相当于一片GAL。 1) 与阵列、 乘积项选择矩阵 与阵列用于实现组合逻辑, 每个宏单元的与阵列可以提供5个乘积项。 乘积项选择矩阵分配这些乘积项作为“或门”或“异或门”的输入(以实现组合逻辑函数),或者作为触发器的控制信号(清零、 置位、 使能和时钟)。,图5-29 MAX7000A的宏单元,2) 扩展乘积项 尽管大多数逻辑函数可以用一个宏单元的5个乘积项来实现, 但在某些复杂的函数中需要用到更多的乘积项,这样就必须利用另外的宏单元。 虽然多个宏单元也可以通过PI

47、A连接,但AX7000A允许利用扩展乘积项, 从而保证用尽可能少的逻辑资源实现尽可能快的工作速度。 扩展乘积项有两种: 共享扩展项和并联扩展项。 在每一个宏单元的与阵列所提供的5个乘积项中,都可以有一个乘积项经反相后反馈回与阵列,这个乘积项就被称为共享扩展项。 这样每个LAB最多可以有16个共享扩展项被本LAB的任何一个宏单元所使用。图5-30(a)表明了共享扩展项是如何馈送到多个宏单元的。 ,图 5-30 MX7000A的扩展乘积项 (a) 共享扩展项;,并联扩展项是指在一些宏单元中没有被使用的乘积项, 并且可以被直接馈送到相邻的宏单元的或逻辑以实现复杂的逻辑函数。 在使用并联扩展项时,或门

48、最多允许20个乘积项直接输入, 其中5个乘积项由本宏单元提供, 另外15个乘积项是由本LAB中相邻的宏单元提供的并联扩展项。 在MAX7000A的LAB中,16个宏单元被分成两组, 每组有8个宏单元(即一组为18, 另一组为916), 从而在LAB中形成两条独立的并联扩展项借出/借入链。一个宏单元可以从与之相邻的较小编号的宏单元中借入并联扩展项,而第1、 9个宏单元只能借出并联扩展项,第8、16个宏单元只能借入并联扩展项。图5-30(b)表明了并联扩展项是如何从相邻宏单元借用的。 ,图 5-30 MX7000A的扩展乘积项 (b) 并联扩展项,3) 输出逻辑宏单元OLMC MAX7000A所有

49、宏单元的OLMC都能单独地被配置成组合逻辑工作方式或时序逻辑工作方式。 在组合逻辑工作方式下,触发器被旁路; 在时序逻辑工作方式下, 触发器的控制信号(清零、 置位、 时钟和使能)可以通过编程选择, 触发器的输入可以来自本单元的组合输出, 也可以直接来自于I/O引脚。 另外, 宏单元输出信号的极性也可通过编程控制。,3 输入/输出控制块 输入/输出控制块(I/O Control Block)的结构如图5-31所示。 I/O控制块允许每一个I/O引脚单独地配置成输入、 输出或双向工作方式。所有的I/O引脚都有一个三态输出缓冲器, 可以从610个全局输出使能信号中选择一个信号作为其控制信号, 也可

50、以选择集电极开路输出。输入信号可以馈入PIA, 也可以通过快速通道直接送到宏单元的触发器。,图 5-31 MAX7000A的I/O控制块结构,4 可编程互连阵列PIA 通过可编程互连阵列可以将多个LAB和I/O控制块连接起来构成所需要的逻辑。 MAX7000A中的PIA是一组可编程的全局总线, 它可以将馈入它的任何信号源送到整个芯片的各个地方。 图532表明了馈入到PIA的信号是如何送到LAB的。 每个可编程单元控制一个2输入的与门, 以从PIA选择馈入LAB的信号。 多数CPLD中的互连资源都有类似于MAX7000A的PIA的这种结构,这种连接线最大的特点是能够提供具有固定时延的通路, 也就

51、是说信号在芯片中的传输时延是固定的、可以预测的, 所以将这种连接线称为确定型连接线。,图 5-32 MAX7000A的PIA,5.3.2 现场可编程门阵列FPGA 与前面介绍过的几种PLD器件不同, 现场可编程门阵列FPGA的主体不再是与-或阵列,而是由多个可编程的基本逻辑单元组成的一个二维矩阵。 围绕该矩阵设有I/O单元,逻辑单元之间以及逻辑单元与I/O单元之间通过可编程连线进行连接。因此, FPGA被称为单元型HDPLD。而由于基本逻辑单元的排列方式与掩膜可编程的门阵列GA类似,所以沿用了门阵列这个名称。 就编程工艺而言, 多数的FPGA采用SRAM编程工艺, 也有少数的FPGA采用反熔丝

52、编程工艺。 ,下面主要以Xilinx公司的第三代FPGA产品XC4000系列为例,介绍FPGA的电路结构和工作原理。 Xilinx公司FPGA的基本结构如图5-33所示, 它主要由三部分组成: 可配置逻辑块CLB(Configurable Logic Block)、 可编程输入/输出块IOB(Input/Output Block)和可编程互连PI(Programmable Interconnect)。 整个芯片的逻辑功能是通过对芯片内部的 SRAM编程确定的。 ,图 5-33 FPGA的结构示意图,1 可配置逻辑块CLB CLB是FPGA实现各种逻辑功能的基本单元。图5-34为XC4000E中

53、CLB的简化结构框图,它主要由快速进位逻辑、 3个逻辑函数发生器、 2个D触发器、 多个可编程数据选择器以及其它控制电路组成。 CLB共有13个输入和4个输出。 在13个输入中, G1G4、F1F4为8个组合逻辑输入,K为时钟信号,C1C4是4个控制信号,它们通过可编程数据选择器分配给触发器时钟使能信号EC、触发器置位/复位信号SR/H0、直接输入信号DIN/H2及信号H1;在4个输出中, X、Y为组合输出, XQ、YQ为寄存器/控制信号输出。 ,图 5-34 简化的CLB结构框图,1) 逻辑函数发生器 这里所谓的逻辑函数发生器, 在物理结构上实际就是一个2n1位的SRAM, 它可以实现任何一

54、个n变量的组合逻辑函数。因为只要将n个输入变量作为SRAM的地址,把2n个函数值存到相应的SRAM单元中, 那么SRAM的输出就是逻辑函数。 通常将逻辑函数发生器的这种结构称为查找表LUT(LookUp Table)。 ,在XC4000E系列的CLB中共有3个函数发生器, 它们构成一个二级电路。在第一级中是两个独立的4变量函数发生器,它们的输入分别为G1G4和F1F4,输出分别为G和F,在第二级中是一个3变量的函数发生器,它的输出为H,其中一个输入为H1,另外两个输入可以从SR/H0和G、 DIN/H2和F中各选一个信号; 组合逻辑函数G或H可以从Y直接输出, F或H可以从X直接输出。 这样,

55、 一个CLB可以实现高达9个变量的逻辑函数。,2) 触发器 在XC4000E系列的CLB中有两个边沿触发的D触发器, 它们与逻辑函数发生器配合可以实现各种时序逻辑电路。 触发器的激励信号可以通过可编程数据选择器从DIN、G 、 F和H中选择。对于两个触发器共用时钟K和时钟使能信号EC来说, 任何一个触发器都可以选择在时钟的上升沿或下降沿触发,也可以单独选择时钟使能为EC或1(即永久时钟使能)。 两个触发器还有一个共用信号置位/复位信号SR, 它可以被编程为对每个触发器独立的复位或置位信号。另外,每个触发器还有一个全局的复位/置位信号(图5-34中未画出),用来在上电或配置时将所有的触发器置位或

56、清除。 ,3) 快速进位逻辑 为了提高FPGA的运算速度, 在CLB的两个逻辑函数发生器G和F之前还设计了快速进位逻辑电路,如图5-35所示。 例如, 函数发生器G和F可以被配置成2位带进位输入和进位输出的二进制数加法器。如果将多个CLB通过进位输入/输出级连起来, 还可以扩展到任意长度。为了连接方便,在XC4000E系列的快速进位逻辑中设计了两组进位输入/输出,使用时只选择其中的一组, 这样在FPGA的CLB之间就形成了一个独立于可编程连接线的进位/借位链。,图 5-35 快速进位逻辑电路,4) 逻辑函数发生器用作片内RAM 逻辑函数发生器G和F除了能够实现一般的组合逻辑函数以外, 它们各自

57、的16个可编程数据存储单元还可以被用作片内RAM。 片内RAM的速度非常快,读操作时间与逻辑时延一样, 写操作时间只比读操作稍慢一点,整个读/写速度要比片外RAM快许多,因为片内RAM避免了输入/输出端的延时。 如表5-4所示, 逻辑函数发生器被用作片内RAM时有多种配置模式。 ,表5-4 片内RAM的配置模式,就容量而言,CLB中的逻辑函数发生器可以被配置成2个独立的161位RAM、1个162位RAM或1个321位RAM, 也可以只将逻辑函数发生器G或F配置成1个161位RAM,而其余的逻辑函数发生器仍然可以实现最多为5个变量的逻辑函数。 另外, 片内RAM有两种写操作方式,一种是边沿触发(

58、同步方式), 即在CLB时钟信号的边沿将数据写入RAM,而写信号则被作为时钟使能; 另一种是电平触发(异步方式),即直接用外部的写信号作为RAM的写脉冲。 按照读/写端口模式,片内RAM可以被配置成单口RAM或双口RAM。所谓单口RAM,就是读、写操作共用一个地址端口,所以读、写不能同时进行; 而双口RAM的读、写操作地址端口相互独立,两种操作可以同时进行, 互不影响。 ,片内RAM的各种配置模式的原理框图如图5-36、 图5-37、 图5-38、 图5-39和图5-40所示。 图中, WE为外部的写信号,D0和D1是RAM的数据输入端,G1G4和F1F4为读/写地址,A4为第5位读地址,G、

59、 F和H为RAM的数据输出端。,图 5-36 321同步单元RAM原理框图,图 5-37 162(或161)同步单口RAM原理框图,图 5-38 162(或161)异步单口RAM原理框图,图 5-39 321异步单口RAM原理框图,图 5-40 161双口RAM原理框图,2可编程输入/输出块IOB,图 5-41 简化的IOB原理框图,IOB中有输入、输出两条通路。当引脚用作输入时, 外部引脚上的信号经过输入缓冲器,可以直接由I1或I2进入内部逻辑, 也可以经过触发器后再进入内部逻辑;当引脚用作输出时,内部逻辑中的信号可以先经过触发器,再由输出三态缓冲器送到外部引脚上,也可以直接通过三态缓冲器输出。 通过编程, 可以选择三态缓冲器的使能信号为高电平或低电平有效,还可以选择它的摆率(电压变化的速率)为快速或慢速。 快速方式适合于频率较高的信号输出, 慢速方式则有利于减小噪声、 降低功耗。 对于未用的引脚,还可以通过上拉电阻接

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论