Programmable Logic Array
Programmable Logic Array
The combinational circuit do not use all the minterms every time. Occasionally,
they have don't care conditions. Don't care condition when implemented with a
PROM becomes an address input that will never occur. The result is that not all the
bit patterns available in the PROM are used, which may be considered a waste of
available equipment.
For cases where the number of don't care conditions is excessive, it is more
economical to use a second type of LSI component called a Programmable Logic
Array (PLA). A PLA is similar to a PROM in concept; however it does not provide
full decoding of the variables and does not generates all the min. terms as in the
PROM. The PLA replaces decoder by group of AND gates, each of which can
be programmed to generate a product term of the input variables. In PLA, both
AND and OR gates have fuses at the inputs, therefore in PLA both AND and OR
gates are programmable. Fig.(3) shows the block diagram of PLA. It consists of
n-inputs, output buffer with m outputs, m product terms, m sum terms, input and
output buffers. The product terms constitute a group of m AND gates and the sum
terms constitute a group of m OR gates, called OR matrix. Fuses are inserted
between all n-inputs and their complement values to each of the AND gates. Fuses
are also provided between the outputs of the AND gates and the inputs of the OR
gates. The third set of fuses in the output inverters allows the output function to be
generated either in the AND-OR form or in the AND-OR-INVERT form. When
inverter is bypassed by link we get AND -OR implementation. To get AND -OR-
INVERTER implementation inverter link has to be disconnected.
78
Input Buffer:
Input buffers are provided in the PLA to limit loading of the sources that drive
the inputs. They also provide inverted and non-inverted form of inputs at its output.
Figure (4) shows two ways of representing input buffer for single input.
Output Buffer:
The driving capacity of PLA is increased by providing buffers at the output.
They are usually TTL compatible. Figure (5) shows the tri-state, TTL compatible
output buffer. The output buffer may provide totem-pole, open collector or tri-state
output.
79
80
𝐹1 = ∑ 𝑚(3,5,7)
𝐹2 = ∑ 𝑚(4,5,7)
Implement the circuit with a PLA having 3 inputs, 3 product terms and two
outputs.
Solution : Let us determine the truth table for the given Boolean functions
81
Table (1): Truth table
A B C F1 F2
0 0 0 0 0
0 0 1 0 0
0 1 0 0 0
0 1 1 1 0
1 0 0 0 1
1 0 1 1 1
1 1 0 0 0
1 1 1 1 1
K-map simplification
Fig. (7)
Table (2): PLA program table
Product
Inputs Outputs
term
A B C F1 F2
1 1 - 1 1 1
2 - 1 1 1 -
3 1 0 - - 1
T T
T/C
82
From the truth table, the Boolean functions are simplified, as shown in the
Figure. The simplified functions in sum of products are obtained from the maps are
:
𝐹1 = 𝐴𝐶 + 𝐵𝐶
𝐹2 = 𝐴𝐵+̅ 𝐴𝐶
Therefore, there are three distinct product terms : AC, BC and AB̅, and two
sum terms. The PLA program table shown in Table 2 consists of three columns
specifying product terms, inputs and outputs. The first column gives the lists of
product terms numerically. The second column specifies the required paths
between inputs and AND gates. The third column specifies the required paths
between the AND gates and the OR gates. Under each output variable, we write a
T (for true) if the output inverter is to be bypassed, and C (for complement) if the
function is to be complemented with the output inverter. The product terms listed
on the left of first column are not the part of PLA program table they are included
for reference only.
Fig. (8)
83
Example 2 : Illustrate how a PLA can be used for combinational logic design
with reference to the functions :
𝑓1(𝑎, 𝑏, 𝑐) = ∑ 𝑚(0,1,3,4)
𝑓2(𝑎, 𝑏, 𝑐) = ∑ 𝑚(1,2,3,4,5)
Realize the same assuming, that a 3 × 4 × 2 PLA is
available.
Solution: K-map simplification
Fig. (9)
Table (3)
Inputs Outputs
Product terms
A b c F1 F2
𝐛̅ 𝐜̅ — 0 0 1 -
𝐚̅ c 0 - 1 1 1
a 𝐛̅ 1 0 - - 1
𝐚̅ b 0 1 - - 1
T T
84
Implementation
Fig. (10)
Fig. (12)
𝑓2̅ = 𝑎̅2+
𝑎̅1𝑎1𝑎̅0 + 𝑎2𝑎̅0
Looking at function outputs we can realize that product terms 𝑎2𝑎̅0and 𝑎1𝑎̅0 are
common in both functions. Therefore, we need only 4 product terms and functions
can be implemented using a 3× 4 × 2 PLA as shown in Table (4) and Fig. (13).
Table (4)
Fig.
(13)
Solution : Let us derive the truth table of BCD to Excess-3 converter as shown in
Table (5).
87
Table (6)
Fig.(14): BCD to Excess-3 code converter using PLA
Implementation
89
Fig. (15)
90
Table (7): Truth table
A B C F1 F2
0 0 0 0 0
0 0 1 1 0
0 1 0 0 1
0 1 1 1 0
1 0 0 0 1
1 0 1 1 1
1 1 0 0 0
1 1 1 0 0
K-map simplification
91
Fig. (16)
Example 6:
Solution:
x0
x x 1
x'
92
Fig. (17)
93