A Programmable Logic Array (PLA) is a type of Programmable Logic Device (PLD) used to implement combinational logic circuits. Unlike fixed-function logic devices, a PLA allows the user to configure its internal logic to perform any logic function, as long as the function is achievable with the number of inputs and outputs the device provides.
PLAs were developed as a way to simplify the design of logic circuits, providing a more flexible, customizable alternative to traditional hard-wired logic gates and programmable logic devices like PALs (Programmable Array Logic).
A PLA consists of two key parts:
AND Plane (AND Array):
OR Plane (OR Array):
In essence, the PLA works by first generating a set of product terms (AND terms) from the input variables in the AND plane, then summing those terms in the OR plane to produce the final output.
Programming the AND Plane:
Programming the OR Plane:
PLAs provide several key advantages:
Flexibility: PLAs are very flexible because both the AND and OR planes are programmable. This allows users to implement any logic function that can be described by a sum of products (SOP) expression, which is a common form of Boolean expressions.
Customization: PLAs allow for a wide range of custom logic functions to be implemented, including complex Boolean expressions with many terms. Designers can create highly specific logic circuits tailored to their needs.
Compactness: Since PLAs can implement multiple logic functions in a single device, they help reduce the number of components needed for a design, leading to smaller and more cost-effective solutions.
Reuse: The ability to reprogram a PLA makes it easy to adapt the design as requirements change, saving time and cost in cases where logic needs to be modified after deployment.
Although PLAs offer significant flexibility, they do have some limitations:
Speed: PLAs may be slower compared to other programmable logic devices like PALs or FPGAs for large or highly complex logic designs, primarily because of the complexity of programming both the AND and OR planes.
Cost: While PLAs provide flexibility, they can be more expensive than simpler devices like PALs or fixed logic gates, especially in lower volume applications.
Limited Logic Resources: PLAs are not as dense as FPGAs in terms of logic capacity, so they may not be suitable for very large designs that require significant logic gates or complex functions.
Power Consumption: PLAs can consume more power than simpler devices because they have more programmable elements and larger arrays. This may be a concern in power-sensitive applications.
PLAs can be categorized based on their size and complexity:
Small-Scale PLAs: These are typically used for relatively simple combinational logic functions. They might have fewer inputs and outputs and are suitable for small systems or custom logic circuits.
Large-Scale PLAs: These PLAs can support more complex designs with more inputs, outputs, and programmable logic resources. They can implement larger, more sophisticated combinational logic circuits.
PLAs are often contrasted with PALs (Programmable Array Logic), another form of programmable logic device, which typically has a fixed AND array and a programmable OR array. PALs are faster and cheaper than PLAs but offer less flexibility, as the AND array cannot be programmed, only the OR array.
PLAs are used in a variety of digital systems and applications, especially where custom logic is needed:
Control Systems: In embedded control systems, PLAs can be used to implement custom control logic for specific applications, such as signal processing or event-driven control.
Custom Logic Functions: PLAs are used in situations where a designer needs to implement a complex combination of logic gates or custom Boolean expressions.
Prototyping: PLAs are ideal for prototyping because they allow for the design and testing of custom logic without the need to create an entirely new chip.
Communication Systems: PLAs are used in digital communication systems to implement custom protocols, modulations, or error-checking functions.
Data Processing: PLAs can be employed in systems where complex data processing operations are required, such as in image processing or signal routing.
Consider a simple PLA with 3 inputs (A, B, C) and 2 outputs (Y1, Y2). You might want to implement the following logic functions:
The steps to implement this on a PLA would be:
Program the AND plane: Create the necessary product terms:
Program the OR plane: Combine the product terms in the OR plane:
By programming these terms into the AND and OR planes, the PLA would implement these functions.
PLAs (Programmable Logic Arrays) are highly flexible and powerful devices used for implementing custom combinational logic functions. With programmable AND and OR planes, they provide a customizable solution for a wide variety of digital logic circuits, making them ideal for prototyping and applications requiring specific logic configurations. Although they have some limitations in terms of speed and complexity, PLAs remain a valuable tool in digital system design.
Open this section to load past papers