Programmable Logic Array (PLA)
A Programmable Logic Array (PLA) is a type of digital integrated circuit that can be configured to implement combinational logic functions. It is a flexible and customizable logic device used to realize a wide range of logic circuits in applications such as digital systems, embedded systems, and programmable hardware design.
A PLA is primarily used to implement Boolean functions by providing a means of customizing the connections between input variables and output variables, allowing for the creation of complex logic gates and circuits. It provides a more generalized and programmable alternative to fixed-function logic devices like AND-OR logic gates.
Structure of PLA
A PLA typically consists of three main sections:
-
Input Stage:
- The input stage consists of a set of input variables (X1, X2, ..., Xn) that are applied to the device. These inputs can be directly used or complemented (inverted) as needed, allowing for flexibility in the logic design.
-
AND Plane:
- The AND plane is a matrix where inputs (or their complements) are connected to product terms (also called AND terms). Each row of this matrix corresponds to a product term formed by a specific combination of input variables.
- The AND plane is programmable, meaning the user can configure which input variables (and their complements) are connected to the respective product terms. Essentially, this plane implements the AND operations that form the "terms" of a Boolean expression.
-
OR Plane:
- The OR plane takes the output from the AND plane and combines the product terms to form the final output. It is also programmable, meaning the user can select which product terms (outputs of the AND plane) are connected to the final output variables.
- The OR plane is responsible for performing the OR operations that combine the product terms into the final logic expression.
-
Output Stage:
- The output stage provides the final logic output based on the connections made in the OR plane. Each output is the result of a logical combination of the product terms that were selected in the AND and OR planes.
Operation of PLA
The PLA works by implementing a sum of products (SOP) expression, which is common in Boolean algebra. Here’s how it works step by step:
-
Inputs and Their Inversions:
- Inputs are fed into the device, and each input can be fed either directly or as its complement (inverted). For example, if the input is
A, both A and A' (complement of A) can be used in the logic configuration.
-
AND Plane Configuration:
- In the AND plane, the inputs (or their complements) are connected in different ways to form various product terms. Each product term is the result of ANDing a combination of inputs. These product terms correspond to the minterms of a Boolean function.
-
OR Plane Configuration:
- The OR plane then receives these product terms, and the output is formed by ORing one or more product terms. The user can select which product terms will contribute to each output variable.
-
Output Stage:
- The final outputs are derived from the OR plane and are available at the outputs of the PLA. These outputs represent the Boolean functions or logic expressions that were designed and programmed into the PLA.
Example
Suppose we have three inputs, A, B, and C, and we want to implement the Boolean function F=A′B+AB′C+AC.
-
AND Plane:
- We need the following product terms:
- A′B
- AB′C
- AC
- These terms are created by appropriately connecting the inputs (and their complements) in the AND plane.
-
OR Plane:
- The OR plane takes these product terms A′B, AB′C, and AC and ORs them together to produce the final output F.
Thus, the PLA is configured to realize the Boolean expression F=A′B+AB′C+AC.
Advantages of PLA
-
Flexibility:
- PLAs are highly flexible because they can be programmed to implement a wide range of Boolean functions, from simple logic gates to complex combinational logic circuits.
-
Customization:
- The logic functions can be customized for specific applications, allowing for a tailored solution that meets the exact needs of a design.
-
Compact Design:
- A PLA can replace multiple discrete logic gates and circuits, leading to more compact and efficient designs for implementing complex functions.
-
Cost-Effective:
- Once a PLA is designed and programmed, it can replace multiple components, reducing the overall system cost, especially in large-scale production.
-
Reconfigurability:
- PLAs are programmable, meaning they can be reprogrammed to implement new logic functions or to adjust to changes in the system requirements.
Disadvantages of PLA
-
Limited Capacity:
- PLAs have a fixed number of input and output lines, which limits the size and complexity of the logic circuits they can implement. For very large logic functions, other devices like CPLDs or FPGAs might be more suitable.
-
Slower than Fixed Logic Gates:
- Although PLAs are flexible, they may not be as fast as dedicated fixed-function logic gates due to the programmable nature of the connections, which can introduce delays.
-
Programming Complexity:
- Designing and programming a PLA can be more complex compared to using pre-designed logic gates, especially when handling large logic functions.
-
Power Consumption:
- Programmable logic devices like PLAs may consume more power than fixed logic gates due to their configurability and the need for more complex internal circuitry.
Applications of PLA
-
Digital Circuit Design:
- PLAs are used in designing custom logic circuits, especially for applications where fixed logic gates are insufficient or too costly.
-
Embedded Systems:
- In embedded systems, PLAs can be used to implement specific control logic functions that are essential for the operation of the system.
-
Algebraic Minimization:
- PLAs are useful in digital circuit minimization where Boolean algebra or Karnaugh maps are used to simplify complex Boolean functions and then implement the simplified logic on a PLA.
-
Prototyping:
- PLAs are commonly used for prototyping digital designs because they allow for easy modifications and reprogramming without requiring a complete redesign of hardware.
In conclusion, a Programmable Logic Array (PLA) is a versatile and efficient device used to implement complex combinational logic functions. Its flexibility and programmability make it highly useful in a variety of applications, although its capacity and speed may be limiting factors in certain designs. PLAs are fundamental in the development of digital systems that require custom logic solutions.