GAL的基本结构与PAL相类似,都是由一个可编程的与阵列去驱动一个固定连接的或阵列,所不同的是输出部件结构不同。GAL在每一个输出端都集成有一个输出逻辑宏单元OLMC(Output Logic Macro Cell),允许使用者定义每个输出的结构和功能。典型器件有GAL16V8。
GAL16V8芯片是具有8个固定输入引脚、最多可达16个输入引脚,8个输出引脚,输出可编程的一种GAL器件。其逻辑结构如图1所示。
图1
由图可见,它由8个输入缓冲器、8个反馈输入缓冲器、8个输出逻辑宏单元OLMC,8个输出三态缓冲器、与阵列和系统时钟、输出选通信号等组成。其中,与阵列包含32列和64行,32列表示8个输入的原变量和反变量及8个输出反馈信号的原变量和反变量;64行表示与阵列可产生64个与项, 8个输出,每个输出包括8个与项。
(1)输出逻辑宏单元OLMC
OLMC的逻辑结构示意图如图2所示。它由一个8输入或门、极性选择异或门、D触发器、4个多路选择器等组成。
图2
图中,只要恰当地给出各控制信号的值,就能形成OLMC的不同组态。因此,在适应不同要求方面,OLMC给设计者提供了最大的灵活性。具体各控制信号的值是由GAL结构控制字中的相应可编程位的状态决定的。
(2)结构控制字
GAL16V8由一个82位的结构控制字控制着器件的各种功能组合状态。控制字中各位的功能如图3所示。图中,XOR(n)和AC1(n)字段下面的数字分别对应器件的输出引脚号,指相应引脚号对应的宏单元。
图3
通过编程结构控制字中的SYN、AC0和AC1(n),输出逻辑宏单元OLMC(n)可以组成以下5种组态。
① 专用输入方式(SYN·AC0·AC1(n)=101)。
② 专用组合型输出方式(SYN·AC0·AC1(n)=100)。
③ 组合型输出方式(SYN·AC0·AC1(n)=111)。
④ 寄存器型器件中的组合逻辑输出方式(SYN·AC0·AC1(n)=011)。
⑤ 寄存器型输出方式(SYN·AC0·AC1(n)=010)。
上述OLMC组态的实现是由开发软件和硬件完成的。开发软件将选择与配制控制字的所有位,并自动检查各引线的用法。
(3)行地址布局
GAL器件的可编程阵列包括与阵列、结构控制字、保密位及整体擦除位等。对其进行编程时是由行地址进行映射的。GAL16V8的行地址布局如图4所示。
图4