Programmable Logic Array (PLA)



In this chapter, we will talk about Programmable Logic Array (PLA), its block diagram, and applications. The programmable logic array (PLA) is a type of programmable logic device (PLD). Historically, PLA is the first PLD device. It contains an array/matrix of AND and OR gates whose configuration is done as per the needs of applications.

In a PLA, a set of fusible links is used to establish or remove the contact of a literal in the AND operation or contact of a product term in the OR operation. Therefore, a PLA is a type of PLD that allows both AND matrix and OR matrix to program.

In digital electronics, PLAs are used to design and implement a variety of complex combinational circuits. However, some PLAs also have a memory element, hence they can be used to implement sequential circuits as well.

Block Diagram of PLA

A programmable logic array (PLA) is a type of fixed architecture programmable logic device (PLD) which consists of programmable AND and OR gates. A PLA contains a programmable AND array which is followed by a programmable OR array.

The block diagram of the PLA is shown in the following figure −

Block Diagram of PLA

It consists of the following main components

Input Buffer

The input buffer is used in PLA to avoid the loading effect on the source that drives the inputs.

AND Array/Matrix

The AND array/matrix is used in PLA to generate the product terms.

OR Array/Matrix

In a PLA, the OR array/matrix is used to generate the desired output. This is done by Oring the product terms to produce the sum terms.

Invert/Non-Invert Matrix

It is a buffer used in PLAs to set the output to active-high or active-low.

Output Buffer

This buffer is used at the output side. It is mainly provided to increase the driving capability of the programmable logic array (PLA).

Combinational Logic Design using PLA

In the field of digital electronics, the PLAs are extensively used for designing combinational logic circuits. The greatest advantage of designing combinational circuits using PLAs is that PLA consist of programmable AND and OR arrays which allows to implement custom desired logic functions.

The step-by-step procedure to design a combinational logic circuit using PLAs is explained below −

Step 1 − Develop a PLA program table that shows the inputs, product terms, and outputs.

Step 2 − Design the AND matrix that can generate the desired product terms.

Step 3 − Design the OR matrix that can generate the desired output.

Step 4 − Design the invert/non-invert matrix to set the active-low or active-high output.

Step 5 − Finally, program the PLA by utilizing the PLA program table.

Let us understand this process of combinational circuit design using PLA with the help of an example.

Example

Design a full-adder circuit using programmable logic array (PLA).

Solution

A full-adder consists of three-inputs and two outputs. Since it has 3 inputs, thus there are total 8 product terms which are given in the following truth table of the full adder −

Inputs Outputs
A B Cin S Cout
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1

From this truth table, the output sum (S) and the output carry (Cout) are given by,

$$\mathrm{S \: = \: \sum \: m(1,2,4,7)}$$

$$\mathrm{C_{out} \: = \: \sum \: m(3,5,6,7)}$$

Thus, their Boolean expressions will be,

Combinational Logic Design using PLA

$$\mathrm{S \: = \: \overline{A} \: B \: \overline{C_{in}} \: + \: \overline{A} \: \overline{B} \: C_{in} \: + \: A \: \overline{B} \: \overline{C_{in}} \: + \: A \: B \: C_{in}}$$

$$\mathrm{C_{out} \: = \: A \: B \: + \: B \: C_{in} \: + \: A \: C_{in}}$$

From these two Boolean expressions, we can see that there are seven product terms and two sum terms. The PLA program table for this full-adder circuit is shown below −

Sr.No Product Terms Inputs Outputs
A B Cin S Cout
1 $\mathrm{\overline{A} \: B \: \overline{C_{in}}}$ 0 1 0 1 -
2 $\mathrm{\overline{A} \: \overline{B} \: C_{in}}$ 0 0 1 1 -
3 $\mathrm{A \: \overline{B} \: \overline{C_{in}}}$ 1 0 0 1 -
4 $\mathrm{A \: B \: C_{in}}$ 1 1 1 1 -
5 $\mathrm{A \: B }$ 1 1 - - 1
6 $\mathrm{B \: C_{in}}$ - 1 1 - 1
7 $\mathrm{A \: C_{in}}$ 1 - 1 - 1
T T

In this PLA program table, "1" stands for the connection and "-" stands for the absence of the product term in the output. "T" stands for true and it represents the active-high output.

The PLA circuit diagram of the full-adder is shown in the following figure.

PLA Circuit Diagram

This example illustrates the complete step-by-step procedure to implement a combinational logic circuit using PLA.

Advantages of PLAs

The following are some key advantages of Programmable Logic Arrays (PLAs) that make them indispensable in the field of digital electronics −

  • PLAs provide flexibility in terms of design and implementation of a variety of digital logic operations. PLAs can be used to implement custom logic functions required to fulfil the needs of different applications.
  • PLAs also minimize the time required to design and develop a new digital circuit or system.
  • PLAs provide a less expensive way of implementing highly complex digital logic functions. PLAs eliminate the need of discrete components to implement a logic function, hence they result in space efficiency.
  • Since PLAs are programmable, they can be modified on their designs without re-fabricating the entire circuit.

Disadvantages of PLAs

However, PLAs offer several advantages as discussed above. But they also have some disadvantages which are listed below −

  • For a large number of inputs and outputs, PLAs are highly complex to design and implement. Being a fixed architecture device, PLAs have limited performance in terms of speed and processing power.
  • A PLA is generally optimized for a specific application, as it has a fixed number of AND gates and OR gates. This constraint disallows the designers to implement highly complex logic functions with the same PLA.
  • Program a PLA is a time consuming and complex process.

Applications of PLAs

Programmable Logic Arrays (PLAs) are widely used in various applications across different fields. The following are some common applications of PLAs −

  • PLAs are used in the field of digital signal processing to implement various logical functions, such as filtering, convolution, Fourier transformation, etc.
  • In control systems, PLAs are used to implement control logic functions of various components like feedback, PID controllers, state machines, etc.
  • PLAs are used to perform different types of arithmetic operations like addition, subtraction, multiplication, and division.
  • PLAs also find their application in the field data compression and encryption technologies. PLAs are used in digital communication systems and networking equipment to implement algorithms for protocol handling, packet processing, error detection and correction, and more.
  • PLAs are also used in different measuring instruments such as digital oscilloscopes, protocol analyzers, logic analyzer, etc.

Conclusion

A PLA is nothing but a kind of digital logic device used to implement complex digital functions without need of discrete components like AND gates, OR gates, etc. In this chapter, we explained the basics and applications of programmable logic arrays (PLAs).

Advertisements