Lecture 20
Lecture 20
A A B B
A typical Gal has eight or more inputs to the reprogrammable AND array and 8 or
more input/outputs from its ‘Output Logic Macro Cells’ OLMCs. The OLMCs can be
programmed to Combinational Logic or Registered Logic. Combinational Logic is used
for combinational circuits, where as Registered Logic is based on Sequential circuits.
Figure 20.5
AB + AB + AB
ON OFF OFF OFF
Input 1
OLMC Input/
Output 1
Input 2 E2CMOS
Programmable Input/
AND array OLMC
Output 2
Input/
Input n OLMC
Output m
G A L 16 V 8
Programming of PLDs
PLDs are programmed with the help of computer which runs the programming
software. The computer is connected to a programmer socket in which the PLD is
inserted for programming. PLDs can also be programmed when they are installed on a
circuit board.
The programming of a PLD device involves entering the logic function in the
form of a Boolean equation, truth table or a state diagram. Any errors during the entry
process are corrected. The software compiler processes the information in the input file
and translates it into a suitable format. The complier also minimizes the logic. The
minimized logic is then tested by using a set of hypothetical inputs known as test vectors.
The testing verifies the design of the logic circuit before committing it to the PLD. If any
flaws are detected during the testing process the design must be debugged and submitted
for recompilation. Once the design has been finalized a documentation file is produced
along with a fuse map file which is downloaded to the programmer which programs the
PLD device inserted in the programmer socket.
PLDs have In-System Programming (ISP) capability that allows the PLDs to be
programmed after they have been installed on a circuit board. A standard 4-wire interface
is used for programming the In-System PLD. ISP capability allows systems to be
upgraded by reprogramming the PLD.
The GAL22V10
The GAL22V10 is a popular GAL device having twelve inputs and ten
inputs/outputs. The device is available as low-voltage 3.3v version. It is also available as
an ISP version. The device has ten OLMCs that can be programmed to different output
modes. The ten OLMCs receive different number of inputs from the programmable AND
gate array. Figure 20.7. Of the ten OLMCs, two have eight inputs, two have ten inputs,
two have twelve inputs, two have fourteen and two have sixteen inputs. Each OLMC can
be programmed for active-high, active-low output or it can be programmed as an input.
The circuit diagram of an OLMC is shown in figure 20.8. The OLMC consists of
a flip-flop which is a sequential logic device which stores the information at the output of
the OR gate. Flip-flops will be discussed latter. The output and the complemented output
of the flip-flop are connected to the two inputs of the 4-to-1 MUX. The remaining two
inputs of the MUX are connected to the OR gate output and its complemented output.
The output of the MUX is connected to the output through a tri-state buffer. The output is
also connected to the input of a 2-to-1 MUX. The other input of the 2-to-1 MUX is
Tri-State Buffers
Tri-State Buffer is a NOT gate with a control line that disconnects the output from
the input. When the control line is high the buffer operates like a NOT gate and when the
control line is low the output is disconnected from the output and high impedance is seen
at the output. Tri-state buffers are used to disconnect the outputs of devices which are
connected or share a common output line. Figure 20.9
Referring to the OLMC logic circuit. Figure 20.8. When the control input to the
tri-state buffer is set to low, the output of the buffer is set to high impedance
disconnecting the OLMC from the output pin. The output pin is used as an input pin.
44
44
44
44
44
44
Input/Output
OLMC
44
Product Term Lines
44
44
44
Input
In the figure 20.11 the GAL has been programmed for a six variable Boolean
function. The six variables are connected at the six inputs of the GA device. The figure
shows the connection detail for the first variable A. The first group of four vertical lines
represents the variable A and its complement A . The remaining two lines in the group are
not used receive the un-complemented and complemented output from the OLMC.
Similarly, the second group of four vertical lines are connected to the second input pin of
the GAL which is connected to a signal representing variable B. The next four sets of
four vertical lines represent input pins 3, 4, 5 and 6 which are connected to variables C,
D, E and F. The Boolean expression that is implemented has seven product terms. The
first OLMC has eight input product terms, thus it can be used to program the Boolean
expression. The output of the first AND gate generates the first product term of the
Boolean expression. Similarly, the 2nd to 7th AND gates generate the remaining six
product terms respectively. The eight input OR gate (not shown) in the OLMC block
generates the sum of product terms. The last group of vertical lines is used to control the
tri-state buffer connected at the output of the OLMC. The diagram shows that it has been
set to high to allow the tri-state buffer connect the OLMC output to the output pin of the
GAL.
44
x
44
x x x x x x
44
x x x x x x
44
x x x x x x
44
x x x x x x
44
x x x x x x OLMC
Input/Output
x x x x x x
44
x x x x x x
44
44
Input