"); //-->
通用阵列逻辑(GAL)
PAL器件的出现为数字电路的研制工作和小批量产品的生产提供了很大的方便。但是,由于它采用的是双极形熔丝工艺,一旦编程以后不能修改,因而不适应研制工作中经常修改电路的需要。才用CMOS可擦除编程单元的PAL器件克服了不可改写的缺点,然而PAL器件输出电路结构的类型繁多,仍给设计和使用带来一些不便。为了克服PAL器件存在的缺点,LATTICE公司于1985年首先推出了另一种新型的可编程逻辑器件—通用阵列逻辑GAL。GAL采用点可擦除的CMOS(E CMOS)制作,可以用电压信号擦除并可重新编程。GAL器件的输出端设置了可编程的输出逻辑宏单元OLMC(系Output Logic Macro Cell的缩写)。通过编程可将OLMC设置成不同的工作状态,这样就可以用同一种型号的GAL器件实现PAL器件所有的各种输出电路工作模式,从而增强了器件的通用性。
8.4.1 GAL的电路结构
现以常见的GAL16V8为例,介绍GAL器件的一般结构形式和工作原理。
图8.4.1是GAL16V8的电路结构图。它有一个32*64位的可编程与逻辑阵列,8个OLMC,10个输入缓冲器,8个三态输出缓冲器和8个反馈/输入缓冲器。
与逻辑阵列的每个交叉点上设有 编程电源。这种编程单元的结构和工作原理和第7.2.3节所讲的 的存储单元相同。图8.4.2是用三个编程单元构成的与门。假定编程后T2、T4的浮置栅上没有带负电荷,而T6的浮置栅上存储了足够的负电荷,则T2、T4导通而T6截止。因此,A、B和P之间是编程连接,而C和P之间没有连接,于是得到P=A*B。
组成或逻辑阵列的8个或门分别包含于8个OLMC中,它们和与逻辑阵列的连接是固定的。
在GAL16V8中除了与逻辑阵列以外还有一些编程单元。编程单元的地址分诶和功能划分情况如图8.4.3所示。因为这并不是编程单元实际的空间布局图,所以又把图8.4.3叫做地址映射图。
第0~31行对应与逻辑阵列的编程单元,编程后可产生0~63共64个乘积项。
第32行是电子标签,供用户存放各种备查的信息。如器件的编号、电路的名称、编程日期、编程次数等。
第33~59行是制造厂家保留的地址空间,用户不能利用。
第60行是结构控制字,共有82位,用于设定8个OLMC的工作模式和64个乘积项的禁止。
第61行是一位加密单元。这一行被编程以后,就不能对与逻辑阵列作进一步的编程或读出验证,因此可以实现对电路设计结构的保密。只有在与逻辑阵列被整体擦除时,才能将加密单元同时擦除。但是电子标签的内容不受加密单元的影响,在加密单元被编程后电子标签的内容仍可读出。
第63行是一位整体擦除位。对这一单元寻址并执行擦除命令,则所有编程单元全部被擦除,器件返回到编程前的状态。
对GAL的编程是在开发系统的控制下完成的。在编程状态下,编程数据由第9脚串行送入GAL器件内部的移位寄存器中。移位寄存器有64位,装满一次就向编程单元地址中写入一行。编程是逐行进行的。
8.4.2 输出逻辑宏单元(OLMC)
图8.4.4是输出逻辑宏单元的机构图。OLMC中包含一个或门、一个D触发器和由4个数据选择器及一些门电路组成的控制电路。
图中的AC0、AC1(n)、XOR(n)都是结构控制字中的一位数据,通过对结构控制字编程,便可设定OLMC的工作模式。GAL16V8结构控制字的组成如图8.4.5所示,其中的(n)表示OLMC的编号,这个编号与每个OLMC连接的引脚号码一致。
图8.4.4中的或门有8个输入端,它们来自与逻辑阵列的输出,在或门的输出端能产生不超过8项的与-或逻辑函数。
异或门用于控制输出函数的特性。当XOR(n)=0时,异或门的输出和或门的输出同相;当XOR(n)=1时,异或门的输出和或门的输出相位相反。
输出电路结构的形式受4个数据选择器控制。输出数据选择器OMUX是2选1数据选择器,它根据AC0和AC1(n)的状态决定OLMC是工作在组合书出模式还是寄存器模式。当G2的输出为为0时,异或门输出的与-或逻辑函数直接经OMUX送到输出端的三态缓冲器。而G2的输出为1时,触发器的状态经OMUX送到输出三态缓冲器。因此,G2输出为0时是组合逻辑输出,G2输出为1时是寄存器输出。
乘积项数据选择器PTMUX也是2选1数据选择器,它根据AC0、AC1(n)的状态决定来自与逻辑阵列的第一乘积项是否作为或门的一个输入。当G1输出为1时,第一乘积项经过PTMUX加到或门的输入;而G1输出为0时,第一乘积项不作为或门的一个输入。
三态数据选择器TSMUX是4选1数据选择器,用来控制输出端三态缓冲器的工作状态。它根据AC0、AC1(n)的状态从VCC、地、OE和来自与逻辑阵列的一个乘积项当中选择一个作为输出三态缓冲器的控制信号,如表8.4.1所示。
反馈数据选择器FMUX是8选1数据选择器,但输入信号只有4个。它的作用是根据AC0、AC1(n)和AC1(m)的状态从触发器的 端、I/O端、邻级输出和地电平中选择一个作为反馈信号接回到与逻辑阵列的输入,如表8.4.2所示。这里的(m)是相邻OLMC的编号。由图8.4.1GAL16V8的电路结构图可见,对OLMC(16)、OLMC(17)、OLMC(18)、OLMC(19)。而对OLMC(13)、OLMC(14)、OLMC(15)而言,相邻的OLMC分别为OLMC(12)、OLMC(13)、OLMC(14)。OLMC(12)和OLMC(19)的邻级输入分别由11号引脚和1号引脚的输入代替,同时这两个单元的AC0和AC1(m)又被 和SYN所取代。SYN是结构控制字中的一位。
OLMC的工作模式有标8.4.3中列出的5种,它们由结构控制字中的SYN、AC0、AC1(n)、XOR(n)的状态指定。
当SYN=1、AC0=0、AC1(n)=1时,OLMC(n)工作在专用输入模式,简化电路结构如图8.4.6(a)所示。因为这时输出端的三态输入信号作为相邻OLMC的“来自邻级输出(m)”信号经过邻级的FMUX接到与逻辑阵列的输入上。
当SYN=1,AC0=0、AC1(n)=0时,OLMC工作在专用组合输出模式,简化的电路结构如图8.4.6(b)所示。这时输出三态缓冲器处于选通(工作)状态,异或门的输出经OMUX送到三态缓冲器。因为输出缓冲器是一个反相器,所以XOR(n)=0输出的组合逻辑函数为低电平有效,而XOR(n)=1时为高电平有效。由于相邻OLMC的AC1(m)也是0,故反馈选择器的输出为地电平,即没有反馈信号。
当SYN=1、AC0、AC1(n)=1时,OLMC工作在反馈组合输出模式,简化的电路结构如图8.4.6(c)所示。它与专用组合输出模式的区别在于三态缓冲器是由第一乘积项选通的,而且输出信号经过FMUX又反馈到与逻辑阵列的输入线上。
当SYN=0、AC0=1、AC1(n)=1时,OLMC(n)工作在时序电路中的组合输出模式。这时GAL16V8构成一个时序逻辑电路,这个OLMC(n)是时序电路中的组合逻辑部分的输出,而其余的7个OLMC中至少会有一个是寄存器输出模式。由图8.4.6(d)可见,在这种工作模式下,异或门的输出不经过出触发器而直接送往输出端。输出三态缓冲器由第一乘积项选通。输出信号经FMUX反馈到与逻辑阵列上。
因为这时整个GAL16V8是一个时序逻辑电路,故1脚作为时钟信号CLK的输入端使用,11脚作为输出三态缓冲器的选通信号 的输入端使用。这两个信号供给工作在寄存器输出模式下的那些OLMC使用。
当SYN=0、AC0=1、AC1(n)=0时,OLMC(n)工作在寄存器输出模式,简化的电路结构如图8.4.6(e)所示。这时异或门的输出作为D触发器的输入,触发器的Q端经三态缓冲器送至输出端。三态缓冲器由外加的OE信号控制。反馈信号来自 端。时钟信号由1脚输入,11脚接三态控制信号 。
综上所述,只要给GAL器件写入不同的结构控制字,就可以得到不同类型的输出电路结构。这些电路结构完全可以取代PAL器件的各种输出电路结构。
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。