L5 Programmable Logic
L5 Programmable Logic
Digital Circuits
Lecture 4: Memory and Programmable Logic
Content Reference: M. Morris Mano, and Michael D. Ciletti, “Digital Design with an introduction to Verilog HDL, VHDL, and
System Verilog”, Sixth Edition, Pearson, 2017
Note: Reference to images may be found as hyperlinks or in slide notes
What is in this lecture?
• Introduction
• Programmable Logic Array
• Programmable Array Logic
• Sequential Programable Devices
Outline
Programmable Logic Device (PLD)
• Programmable Logic Device (PLD): An integrated circuit with internal logic
gates connected through electronic paths. The desired logic is obtained
by programing the device.
• Programming: The hardware procedure which specifies the bits that are
inserted into the hardware configuration
• Example procedure: Original device has all electronic paths connected via fuses,
fuses are blown during programing
• Examples:
• ROM
• Programmable Logic Array (PLA)
• Programmable Array Logic (PAL)
• Field Programmable Gate Array (FPGA)
Programmable Logic Devices (PLDs)
• They are a
combination of
AND Gates and
OR gates
• They can be
classified into
three groups
Programmable Logic Array
A PLA differs from a PROM as it does not provide full decoding of the variables and
does not generate all the minterms by default
• The decoder is replaced by an array of AND gates which can be
programmed
• The product terms are connected via an array of OR gates which also
can be programmed
Programmable Logic Array- Diagram
Inputs go AND gates for
through buffer product terms
inverter
combinations
• A typical integrated circuit PLA may have 16 inputs, 48 product terms, and eight
outputs
Programming a PLA
Programing can be done as,
• Mask programing (by manufacture)
• FPLA (Field‐Programmable Logic Array): Field programing with a
commercial hardware programmer
Objective during programming
• Minimize number of product terms
• Size of the product term does not matter
Example
Implement the following two Boolean functions with PLA,
𝐹1 𝐴, 𝐵, 𝐶 = ∑(0, 1, 2, 4)
𝐹2 𝐴, 𝐵, 𝐶 = ∑(0, 5, 6, 7)
BC BC
00 01 11 10 00 01 11 10
A A
0 1 1 1 0 1
1 1 1 1 1 1
𝐹1 𝐹2
Example cont…
The true or complement values of the functions can be simplified,
BC BC
00 01 11 10 00 01 11 10
A A
0 1 1 0 1 0 1 0 0 0
1 1 0 0 0 1 0 1 1 1
𝐹1 = (𝐴𝐶 + 𝐵𝐶 + 𝐴𝐵)′ 𝐹2 = 𝐴𝐶 + 𝐴𝐵 + 𝐴′ 𝐵 ′ 𝐶′
F1’ is found in the k-map as in this way more product terms are common
Example cont…
So the PLA programming table is,
Inputs Outputs
Product Term
A B C F1 (C) F2 (T)
1 𝐴𝐵 1 1 –
2 𝐴𝐶 1 – 1
3 𝐵𝐶 – 1 1
4 𝐴′ 𝐵 ′ 𝐶′ 0 0 0
Inputs Outputs
Product Term
A B C F1 (C) F2 (T)
1 𝐴𝐵 1 1 – 1 1
2 𝐴𝐶 1 – 1 1 1
3 𝐵𝐶 – 1 1 1 –
4 𝐴′ 𝐵 ′ 𝐶′ 0 0 0 – 1
Inputs Outputs
Product Term
A B C F1 (C) F2 (T)
1 𝐴𝐵 1 1 – 1 1
2 𝐴𝐶 1 – 1 1 1
3 𝐵𝐶 – 1 1 1 –
4 𝐴′ 𝐵 ′ 𝐶′ 0 0 0 – 1
𝐹1 = (𝐴𝐶 + 𝐵𝐶 + 𝐴𝐵)′ 𝐹2 = 𝐴𝐶 + 𝐴𝐵 + 𝐴′ 𝐵 ′ 𝐶′
Example cont…
Minimum Number of Product Terms
• This is usually done with the help of minimum number of terms
computer‐aided design (CAD)
• K-map minimization may not always work
• Consider the outputs below
BC BC
00 01 11 10 00 01 11 10
A A
0 1 0 0 0 0 1 0 0 1
1 0 0 0 0 1 0 0 0 1
• 𝑤 𝐴, 𝐵, 𝐶, 𝐷 = ∑ 2, 12, 13
• 𝑥 𝐴, 𝐵, 𝐶, 𝐷 = ∑ 7, 8, 9, 10, 11, 12, 13, 14, 15
• 𝑦 𝐴, 𝐵, 𝐶, 𝐷 = ∑ 0, 2, 3, 4, 5, 6, 7, 8, 10, 11,15
• z 𝐴, 𝐵, 𝐶, 𝐷 = ∑(1, 2, 8, 12, 13)
Exercise cont…
Simplifying the four functions to a minimum number of terms results in,
• 𝑤 = 𝐴𝐵𝐶 ′ + 𝐴′ 𝐵 ′ 𝐶𝐷′
• 𝑥 = 𝐴 + 𝐵𝐶𝐷
• 𝑦 = 𝐴′ 𝐵 + 𝐶𝐷 + 𝐵 ′ 𝐷′
• 𝑧 = 𝐴𝐵𝐶 ′ + 𝐴′ 𝐵 ′ 𝐶𝐷′ + 𝐴𝐶 ′ 𝐷′ + 𝐴′ 𝐵 ′ 𝐶 ′ 𝐷
By using w, it is possible to reduce the number of terms for z from four to three
Exercise cont…
Simplifying the four functions to a minimum number of terms results in,
• 𝑤 = 𝐴𝐵𝐶 ′ + 𝐴′ 𝐵 ′ 𝐶𝐷′
• 𝑥 = 𝐴 + 𝐵𝐶𝐷
• 𝑦 = 𝐴′ 𝐵 + 𝐶𝐷 + 𝐵 ′ 𝐷′
• 𝑧 = 𝑤 + 𝐴𝐶 ′ 𝐷′ + 𝐴′ 𝐵 ′ 𝐶 ′ 𝐷
Product AND Inputs
Outputs
Term
Exercise cont… A B C D w
1 1 1 0 – –
2 0 0 1 0 – 𝑤 = 𝐴𝐵𝐶 ′ + 𝐴′ 𝐵′ 𝐶𝐷′
The PAL programming
3 – – – – –
table is filled like for PLA
4 1 – – – –
5 – 1 1 1 – 𝑥 = 𝐴 + 𝐵𝐶𝐷
6 – – – – –
7 0 1 – – –
8 – – 1 1 – 𝑦 = 𝐴′ 𝐵 + 𝐶𝐷 + 𝐵′ 𝐷′
9 – 0 – 0 –
10 – – – – 1
11 1 – 0 0 – 𝑧 = 𝑤 + 𝐴𝐶 ′ 𝐷′ + 𝐴′ 𝐵′ 𝐶 ′ 𝐷
12 0 0 0 1 –
Exercise cont…
As it ANDs input
and its complement
Example: A.A’=0
Sequential Programable Divices
• Combinational PLD only contain gates
• Sequential programmable devices include both gates and flip‐flops
• Sequential programmable devices are vendor specific
• Three major types of sequential programmable devices
• Sequential (or simple) programmable logic device (SPLD)
• Complex programmable logic device (CPLD)
• Field‐programmable gate array (FPGA)
Sequential Programmable Logic Device (SPLD)
• Sequential PLD is also known as Simple PLD
• The circuit has,
• Flip-flops (D or JK)
• AND-OR array (PLA or PAL)