一、只读存储器(ROM只读存储器(ROM)有掩膜ROM、可编程ROM、可改写ROM。ROMMROM(掩膜型只读存储器)PROM(可编程只读存储器)EROM(可编程可改写只读存储器)EEROM(电可编程可改写只读存储器)ROM框图…存储矩阵W0W1地址译码器…W2£1n…A0A1An£1输出缓冲器三态控制……Dm£1D0信息单元(字)存储单元An2n-1WDmD0FmF0掩膜只读存储器(ROM)是在制造时把信息存放在此存储器中,使用时不再重新写入,需要时读出即可;它只能读取所存储信息,而不能改变已存内容,并且在断电后不丢失其中存储内容,故又称固定只读存储器。ROM主要由地址译码器、存储矩阵和输出缓冲器三部分组成。每个存储单元中固定存放着由若干位组成的二进制数码——称为“字”。为了读取不同存储单元中所存的字,将各单元编上代码——称为地址。在输入不同地址时,就能在存储器输出端读出相应的字,即“地址”的输入代码与“字”的输出数码有固定的对应关系。如图所示,它有2n个存储单元,每个单元存放一个字,一共可以存放2n个字;每字有m位,即容量为2n×m(字线×位线)。存储体可以由二极管、三极管和MOS管来实现。三极管矩阵ROM如图所示,W0、W1、W2、W3是字线,F0、F1、F2、F3是位线,ROM的容量即为字线×位线,所以图示ROM的容量为4×4=16,即存储体有16个存储单元。地址译码器A1A0F1F0F3F2VCCW0W1W2W3MROM地址译码器A1A0F1F0F3F2VCCW0W1W2W3MROM地址译码器A1A0F1F0F3F2VCCW0W1W2W3PROM当地址码A1A0=10时,字线W2为高电平,在位线输出端F3F2F1F0读到字0101,任何时候,地址译码器的输出决定了只有一条字线是高电平,所以在ROM的输出端只会读到惟一对应的一个字。在对应的存储单元内存入1还是0,是由相应的三极管的基极是否与字线相连来决定的。1.地址译码器A1A0F1F0F3F2VCCW0W1W2W32.如图所示,ROM中的地址译码器形成了输入变量的最小项,即实现了逻辑变量的“与”运算;ROM中的存储矩阵实现了最小项的或运算,即形成了各个逻辑函数;与阵列中的垂直线Wi代表与逻辑,交叉圆点代表与逻辑的输入变量;或阵列中的水平线F代表或逻辑,交叉圆点代表字线输入。A1A0W3W2W1W0F3F2F1F00000010101010010111010010011001110000011213mmF2102mmmF311mmF300mmF11&&&&A1A0W0W1W2W3F3F2F1F0≥1≥1≥1≥11·1·······A1A0W0W1W2W3F3F2F1F0×××××××××与阵列或阵列213mmF2102mmmF311mmF300mmF例1用ROM实现一位二进制全加器。解全加器的真值表如表所示,A、B为两个加数,Ci-1为低位进位,S为本位的和,Ci为本位的进位。由表可写出最小项表达式为:1111iiiiABCCBACBACBAS1111iiiiiABCCABCBABCAC根据上式,可画出全加器的ROM阵列图如图所示,Ci-1为低位进位,Ci全加器真值表ABCi-1SCi0000010100111001011101110010100110010111全加器阵列图111ABCi£1SCi××××××××Ci-1例2用ROM实现下列逻辑函数。BABAF1BAABF2ABF3解由表达式画出ROM的阵列图如图所示。AABBF3F2F1×××××二、可编程逻辑阵列(PLA)可编程逻辑器件都包含一个与阵列和一个或阵列,二者都是可编程的,故可以实现非标准式的各种电路。用PLA实现组合逻辑电路时,首先将逻辑函数进行化简,再将化简后的逻辑函数表达式中各乘积项填入逻辑阵列图中。例3用PLA实现一位二进制全加器。解:由全加器真值表,用卡诺图化简得最简逻辑表达式为:ABCCBACBACBASBCACABCi式中:A、B为两个加数,C为低位进位,S为本位和,Ci为本位向高位的进位。在S及Ci表达式中共有七个乘积项,它们是:BCPACPABPABCPCBAPCBAPCBAP6543210,,,,,,用这些乘积项组成S和Ci表达式如下:S=P0+P1+P2+P3Ci=P4+P5+P6根据上式,可画出由PLA实现全加器的阵列结构图如图所示。P0P1P2P3P4P5P6SAABBCCCi××××××××××××××××××××××××××××××××××××××××××××××××××三、可编程阵列逻辑(PAL)PAL也是在PROM基础上发展起来的一种可编程逻辑器件,是PAL采用了熔丝编程方式、双极型工艺制造,因而器件的工作速度很高(可达十几ns)。PAL器件由可编程的与阵列、固定的或阵列和输出电路三部分组成。由于它们是与阵列可编程,而且输出结构种类很多,因而给逻辑设计带来很大的灵活性。1.PALPAL基本与门阵列是可编程的,而或门阵列是固定连接的。如图所示PAL基本结构AABBCC+++或阵列固定()与阵列可编()F2F1F02.PALPAL具有多种输出结构。组合逻辑常采用“专用输出的基本门阵列结构”,其输出结构如图所示。图中,若输出部分采用或非门输出时,为低电平有效器件;若采用或门输出时,为高电平有效器件。有的器件还用互补输出的或门,故称为互补型输出,这种输出结构只适用于实现组合逻辑函数。目前常用的产品有PAL10H8(10输入,8输出,高电平有效)、AL10L8(10输入,8输出,低电平有效)、PAL16C1(16输入,1输出,互补型)等。专用输出门阵列结构+输入行FA时序输出结构+IDQQOCCPQ+IDQQOCCPQPAL实现时序逻辑电路功能时,其输出结构如图所示,输出部分采用了一个D触发器,其输出通过选通三态缓冲器送到输出端,构成时序逻辑电路。3.PAL①提高了功能密度,节省了空间。②提高了设计的灵活性,且编程和使用都比较方便。③有上电复位功能,可以防止非法复制。PAL的主要缺点是由于它采用双极型熔丝工艺(PROM结构),只能一次性编程,因而使用者仍要承担一定的风险。四、通用阵列逻辑(GAL)通用阵列逻辑GAL是Lattice公司于1985年首先推出的新型可编程逻辑器件。GAL是PAL的第二代产品,但它采用了ECMOS工艺,可编程的I/O结构,使之成为用户可以重复修改芯片的逻辑功能,在不到1秒钟时间内即可完成芯片的擦除及编程的逻辑器件,按门阵列的可编程结构,GAL可分成两大类:一类是与PAL基本结构相似的普通型GAL器件,其与门阵列是可编程的,或门阵列是固定连接的,如GAL16V8;另一类是与FPLA器件相类似的新一代GAL器件,其与门阵列及或门阵列都是可编程的,如GAL39V18。图示是GAL16V8的逻辑电路图,它有16个输入引脚(其中八个为固定输入引脚)和八个输出引脚。其内部结构是由八个输入缓冲器,八个输出反馈/输入缓冲器,八个输出三态缓冲器,八个输出逻辑宏单元OLMC,8×8个与门构成的与门阵列以及时钟和输出选通信号输入缓冲器等组成。一个OLMC由与阵列输出组成,其内部结构如图所示,每个OLMC包括或门阵列中的一个或门,或门的每一个输入对应一个乘积项,因此或门的输出为有关乘积项之和;图中的异或门用于控制输出信号的极性,当XOR(n)端为1时,异或门起反相器作用;反之为同相器,XOR(n)对应于结构控制字中的一位,n为引脚号;D触发器对异或门的输出状态起记忆作用,使GAL适用于时序逻辑电路。每个OLMC中有四个多路开关MUX,FIMUX用于控制第一乘积项;TSMUX用于选择输出三态缓冲器的选通信号;FMUX决定反馈信号的来源;OMUX用于选择输出信号是组合逻辑的还是寄存逻辑的。多路开关状态取决于结构控制字中的AC0和AC1(n)位的值。例如,TSMUX的控制信号是AC0和AC1(n),当AC0·AC1(n)=11时,表示多路开关TSMUX的数据输入端11被选通,表示三态门的选通信号是第一乘积项。表列出有关控制信号与OLMC的配置关系。GAL16V8逻辑图2OLMC(19)CK1983OLMC(18)18164OLMC(17)17245OLMC(16)16326OLMC(15)15407OLMC(14)14488OLMC(13)13569126311OE1008162431OLMC(12)OLMC内部结构来自与门01QD反馈101101001110010001VCC来自邻顶输出(m)I/O(n)CKOECKOEOMUX+FMUX++TSMUXFIMUXOLMCSYNAC0AC1(n)XOR(n)配置功能输出极性101输入模式11000001所有输出是组合的低有效高有效11111101所有输出是组合的低有效高有效00111101组合输出积存输出低有效高有效00000001寄存输出低有效高有效表中SYN、AC0、AC1(n)和XOR(n)都是结构控制字中可编程位。SYN=0时,GAL器件有寄存输出能力;SYN=1时,GAL为一个纯粹组合逻辑器件。在两个宏单元OLMC(12)和OLMC(19)中,SYN还代替了AC1(m),而SYN代替了AC0,以仿真PAL的型号。XOR(n)位决定着每个输出的极性,当OR(n)=0,输出低电平有效;当XOR(n)=1时,输出高电平有效。GAL器件具有了许多优良特性,但其应用取决于开发环境——硬件工具LogicLab编程器及软件工具GALLAB和CUPL。