Fact-checked by Grok 2 weeks ago

Programmable logic array

A programmable logic array (PLA) is a type of (PLD) designed to implement functions through a reconfigurable consisting of a programmable AND plane and a programmable OR plane, enabling the realization of sum-of-products (SOP) Boolean expressions. Introduced around 1970 as one of the earliest forms of programmable logic integrated into very-large-scale integration (VLSI) circuits, PLAs provided a flexible alternative to fixed random logic by allowing post-manufacture customization of digital circuits. The architecture typically features an input section with true and complementary signals feeding into the AND , where programmable interconnects generate product terms, which then connect via the OR to form output sums; this NOR-NOR or AND-OR structure supports efficient implementation of multiple logic functions sharing common terms. Early PLAs were often mask-programmable, but field-programmable variants emerged in 1975 with devices like the Signetics 82S100, using fuse or PROM-based programming for user reconfiguration without custom fabrication. PLAs found applications in control units, address decoders, and arithmetic logic units within digital systems, offering a regular structure that simplified design automation and testing compared to bespoke gate arrays. Over time, their scalability limitations led to evolution into more advanced PLDs, such as (PAL) devices in 1978 with fixed OR arrays for faster performance, and eventually complex PLDs (CPLDs) and field-programmable gate arrays (FPGAs) by the 1980s and 1990s, which incorporated routing resources and sequential elements for broader use in prototyping and embedded systems. Despite this, PLAs remain foundational in understanding programmable logic and are still relevant in specialized low-density or educational contexts.

Fundamentals

Definition and Purpose

A programmable logic array (PLA) is a simple (SPLD) used to implement circuits in sum-of-products () form. It features a programmable AND array that generates product terms from inputs (or their complements), followed by a programmable OR array that sums selected product terms to produce outputs, enabling the realization of any through configurable interconnections. The purpose of a PLA in digital design is to facilitate the creation of custom logic without requiring a fully custom ASIC, which involves high development costs and long fabrication times. This makes PLAs ideal for prototyping, where rapid iteration is needed, and for low-volume production runs—typically up to several thousand units—offering low startup costs, quick turnaround, and easy design modifications compared to fixed-function alternatives. PLAs exhibit a fixed two-level with programmable connections in the AND and OR planes, often using fuses or antifuses for configuration, supporting multiple inputs and outputs while focusing exclusively on without built-in sequential elements like flip-flops. This structure provides predictable propagation delays, small circuit area, and high pin-to-pin speeds, prioritizing efficiency for SOP-based functions over more versatile but complex devices. A basic for a PLA is implementing address decoding logic to generate chip selects from microprocessor address lines or the next-state in a state machine controller. The concept was first commercialized with ' TMS2000 in 1970, a mask-programmable device that coined the term PLA for such reconfigurable logic.

Comparison to Other Programmable Logic Devices

Programmable Read-Only Memories (PROMs) feature a fixed AND plane that generates all possible minterms from the inputs, coupled with a programmable OR plane for selecting desired outputs, making them suitable for simple address decoding or implementations but inefficient for sparse logic functions due to the exhaustive minterm generation. In contrast, Programmable Logic Arrays (PLAs) employ both programmable AND and OR planes, allowing selective product term generation without full minterm decoding, which provides greater flexibility for implementing complex while reducing unnecessary wiring and improving efficiency for non-dense functions. Programmable Array Logic (PAL) devices, a variant of PLAs, incorporate a programmable AND plane but a fixed OR plane, restricting each to connect to a predetermined set of outputs (typically 3-16 terms per output), which limits the device to fewer simultaneous outputs and simpler logic structures compared to the fully programmable interconnects in PLAs. This fixed OR structure in simplifies manufacturing, reduces cost, and enhances speed by minimizing routing complexity, but it sacrifices the PLA's ability to share product terms across multiple outputs, making better suited for applications with limited output requirements. Field-Programmable Gate Arrays (FPGAs) differ fundamentally from PLAs through their use of configurable logic blocks based on lookup tables (LUTs), flip-flops, and extensive programmable interconnect resources, enabling gate-level reconfigurability and support for both combinational and across high-density arrays of thousands to millions of gates. While FPGAs offer superior for large-scale designs like processors or signal processors, they introduce higher overhead in area, power, and configuration time, rendering them overkill and more costly for small-to-medium combinational tasks where PLAs' simpler AND-OR architecture provides balanced performance without extensive routing. PLAs occupy a niche in programmable logic for medium-complexity combinational circuits, such as state machine decoders or arithmetic units, where their dual programmability delivers efficient sum-of-products implementations with moderate flexibility, outperforming PROMs and PALs in versatility while avoiding the complexity and of FPGAs for non-reconfigurable, logic-focused applications.

Historical Development

Origins and Early Innovations

The conceptual origins of programmable logic arrays (PLAs) trace back to the , when engineers began exploring programmable matrices and arrays to simplify complex logic functions in digital circuits. These early arrays, often implemented on printed circuit boards, allowed for configurable connections between inputs and outputs, providing a flexible alternative to hardwired logic gates and enabling of custom combinational and . This approach evolved from broader efforts in and associative arrays, such as IBM's read-only associative memory (), which influenced the development of integrated programmable structures for logic simplification. The first commercial PLA was introduced by in 1970 with the TMS2000, a mask-programmable based on technology. This device featured 17 inputs, 32 product terms, 18 outputs, and support for up to 8 JK flip-flops, allowing it to implement sum-of-products logic in a single chip for applications requiring custom sequential and combinational functions. coined the term "programmable logic array" to describe this innovation, marking a shift from bipolar arrays to metal-oxide-semiconductor ( for greater density and efficiency. In 1975, Signetics introduced the 82S100, the first field-programmable logic array (FPLA), using fuse-based programming to allow user reconfiguration without custom masks. Key innovations in the early included the adoption of fused-link and programming techniques, which provided permanent, one-time configuration of interconnections in the AND and OR planes, reducing manufacturing costs for custom logic compared to full custom . Fused links operated by selectively blowing thin metallic connections to open circuits, while antifuses created connections by rupturing insulating layers under , both enabling reliable, non-volatile programming without the need for mask changes in production. These methods facilitated cost-effective deployment of PLAs in volume applications, prioritizing conceptual flexibility over exhaustive reconfiguration. Early adopters of PLAs in the 1970s included , which integrated PLA structures into handheld calculators and simple control systems for arithmetic operations and state machine implementations, such as key decoding and display driving in early electronic calculators.

Evolution and Key Milestones

In the 1980s, programmable logic array (PLA) technology underwent significant advancements, particularly the transition from to processes, which enabled lower power consumption and improved performance for portable and battery-operated applications. This shift was exemplified by the introduction of CMOS-based reprogrammable logic arrays, such as Altera's in 1984, which offered erasability and reduced power draw compared to earlier devices. The Signetics 82S100 FPLA was integrated into the Commodore 64 computer in 1982 to handle control logic functions. The 1990s saw further milestones in PLA evolution, including deeper integration with and the rise of electrically erasable variants for enhanced field reprogrammability. PLAs were commonly paired with MOS 6502 variants, such as the 6510 in systems, where they served as flexible decode and control elements to support evolving system requirements without full chip redesigns. Electrically erasable programmable logic devices, leveraging technology, gained prominence through the decade for their ability to be reprogrammed multiple times without special equipment, addressing limitations of one-time fuse-based programming. From the 2000s into the 2020s, standalone PLAs experienced a decline in popularity, largely superseded by more versatile field-programmable gate arrays (FPGAs) that offered greater density and reconfiguration flexibility for complex designs. However, PLA structures persisted in embedded application-specific integrated circuits (ASICs) and as cores within system-on-chips (SoCs), where their compact sum-of-products implementation proved efficient for tasks like signal routing and simple state machines. In the , the emergence of open-source (EDA) tools, such as Yosys (initiated in 2011), facilitated PLA synthesis and optimization in custom VLSI flows, revitalizing their use in academic and hobbyist prototyping despite the dominance of FPGAs.

Architecture

AND-OR Plane Structure

The core architecture of a programmable logic array (PLA) consists of two primary planes: the AND plane and the OR plane, which together form a two-level structure for implementing combinational functions. The AND plane precedes the OR plane, with product terms generated in the former serving as inputs to the latter. This arrangement provides a , array-based that supports flexible signal through programmable crosspoints. The AND plane is an array of programmable AND gates designed to generate product terms from the input signals and their complements. Inputs, available in both true and complemented forms, are distributed across vertical lines within the plane, while horizontal lines represent potential product terms. At each intersection of an input line and a product term line, a programmable crosspoint—such as a , anti-fuse, or via—allows selective connection, enabling the formation of specific product terms by ANDing subsets of the inputs. In practice, the AND plane often employs or NOR gates for implementation, leveraging DeMorgan's laws to achieve the AND functionality with inverted outputs. For N inputs, the plane can theoretically support up to 2^N minterms, though it is typically configured with K rows to produce a limited number of product terms for efficiency. The OR plane follows the AND plane and comprises an array of programmable OR gates that sum selected product terms to produce the output signals. Product terms from the AND plane extend horizontally into this , intersecting with vertical lines dedicated to individual outputs. Programmable crosspoints at these intersections determine which product terms contribute to each output, allowing multiple terms to be ORed together. Like the AND plane, the OR is frequently realized using NOR or gates for compatibility with fabrication processes. With K product terms feeding into the OR plane, up to M outputs can be generated, where M represents the number of output lines. The interconnections between the planes are seamless, with the horizontal product term lines from the AND plane directly feeding into the OR plane without additional buffering in basic designs. This vertical stacking of planes—inputs entering the top of the AND plane, product terms traversing horizontally, and outputs exiting the bottom of the OR plane—creates a compact, grid-like . A textual representation of a simple with N=3 inputs, K=4 product terms, and M=2 outputs might appear as follows:
Inputs (vertical): x1, x1', x2, x2', x3, x3'
          |
AND Plane (crosspoints programmable)
          |
Product Terms (horizontal): P1, P2, P3, P4
          |
OR Plane (crosspoints programmable)
          |
Outputs (vertical): y1, y2
This layout ensures predictable signal paths and minimizes wiring complexity.

Programmable Elements and Wiring

In programmable logic arrays, the core of configurability lies in the programmable elements positioned at crosspoints within the AND and OR planes, where each functions as a switchable link to selectively connect input lines to product terms and product terms to outputs. These elements determine whether a logical is established or severed, enabling the realization of arbitrary combinational functions in sum-of-products form. Typical densities range from to hundreds of product terms per device, allowing for hundreds to thousands of configurable crosspoints depending on the . Various technologies serve as these programmable elements, with bipolar fuses being prominent in early designs; these consist of thin (Ni-Cr) links that are irreversibly blown by applying a high-current pulse (e.g., 300 mA at 17 V) to create an open circuit and disconnect unwanted paths. In contrast, CMOS-based PLAs often employ transistors as switches, where an nMOS or is controlled by a signal to either or block the signal between lines, offering lower resistance when on compared to fuses. EEPROM cells provide a non-volatile alternative, utilizing floating-gate transistors that store charge to control conductivity—programming applies high voltage to trap electrons, altering the and thus the connection state, while reverses this electrically without UV exposure. Wiring configurations are categorized by programmability: mask-programmed PLAs fix connections via custom metal layers during fabrication, ideal for high-volume applications with no user reconfiguration. Field-programmable options, such as those using cells or fusible links, permit post-manufacture alterations by the user through electrical means, supporting . One-time programmable (OTP) wiring via antifuses involves initially high-resistance structures that are programmed by voltage-induced to form a permanent low-resistance path, balancing security and irreversibility without the need for repeated access. The selection of programmable elements significantly influences consumption, area efficiency, and overall density; for instance, fuse-based PLAs offer high speed but higher draw (typically 600 mW) and larger footprints due to the physical links, whereas pass transistors and cells enable compact layouts with reduced (e.g., 37 mA at 25 MHz ) and better for denser crosspoint arrays, though at the potential cost of slightly slower switching in some cases.

Operation

Sum-of-Products Logic Implementation

A (PLA) realizes functions in the canonical sum-of-products () form, where each output is expressed as the logical OR of one or more product terms, and each product term is the logical AND of literals derived from the inputs or their complements. This form allows for efficient implementation of , as the AND plane in a PLA generates the necessary product terms, while the OR plane combines them to produce the outputs. The SOP representation is particularly suited to PLAs because it directly maps to the device's two-level AND-OR structure, enabling flexibility in selecting which literals contribute to each term. For a set of inputs x_1, x_2, \dots, x_n, a product term P_i is formed as the AND of selected literals, where each literal is either the true input x_j, the complemented input \overline{x_j}, or omitted (don't care condition, no connection to that input). Each output Y_j is then the sum (OR) of selected product terms: Y_j = \sum_{i=1}^K P_i, where K is the number of product terms contributing to that output, and the selection is programmable via the OR plane. In the AND plane, fuses or antifuses are configured to connect the appropriate literals to each AND gate, generating up to $2^n possible minterms, though optimization often uses fewer terms by incorporating don't cares to minimize the logic. A representative example is the of a 2-input (MUX), which selects between two data inputs A and B based on a select input S. The in SOP form is Y = \overline{S} \cdot A + S \cdot B, where the first product term \overline{S} \cdot A (with don't care for B) activates when S = 0, and the second term S \cdot B (with don't care for A) activates when S = 1. In a PLA, the AND plane would program two product terms: one connecting \overline{S} and A (ignoring B), and the other connecting S and B (ignoring A); the OR plane then sums these for the single output Y. This configuration leverages don't cares to reduce the number of connections, demonstrating how PLAs optimize SOP expressions for compact realization.

Input/Output Configuration and Timing

Input signals to a programmable logic array (PLA) are typically processed through input buffering stages that provide both active-high and active-low decoding, enabling the generation of complemented literals directly for the AND plane. These buffers ensure and include inverters to produce the true and inverted forms of each input variable, allowing flexible implementation of logic functions without additional external inversion circuitry. Output configuration in PLAs often employs wired-OR connections in the OR plane to combine multiple product terms for each output, facilitating efficient multi-output realization. For shared bus interfaces or bidirectional operations, tri-state buffers are integrated at the outputs, enabling high-impedance states when disabled to avoid conflicts among multiple drivers. Don't care conditions in the specification are exploited during minimization to consolidate product terms, reducing the number of active lines in the OR plane and optimizing overall density. Timing analysis in PLAs focuses on propagation delays through the two-level structure, where the total delay t_{PLA} = t_{AND} + t_{OR}, with t_{AND} representing the delay across the programmable AND plane and t_{OR} across the OR plane. Increased in the AND plane lengthens t_{AND} due to more parallel paths per product term, while higher from the AND to OR plane amplifies t_{OR} as signals drive multiple OR inputs; typical commercial PLAs exhibit delays of 2-35 ns depending on scale. Converting a to PLA configuration involves identifying minterms where outputs are logic 1 and grouping them into shared product terms via minimization techniques like Karnaugh maps. For a 4-input with 16 possible rows, each minterm corresponds to a unique input ; steps include listing the minterms for each output, deriving prime implicants to form product terms (e.g., combining adjacent minterms to eliminate variables), assigning these to AND plane rows, and connecting relevant terms to OR plane columns for each output.

Design and Programming

Implementation Procedure

The implementation procedure for a programmable logic array (PLA) involves a systematic workflow to translate logic specifications into a programmable structure. The process begins with deriving the required equations from the circuit specifications or , expressing the desired outputs in sum-of-products () form. These equations are then minimized to reduce the number of product terms, typically using Karnaugh maps for smaller input sets or the Quine-McCluskey algorithm for larger ones, prioritizing shared terms across multiple outputs to optimize PLA resource usage. The minimized product terms are assigned to the AND plane by determining the input literal connections (including complements) that generate each term. These terms are subsequently mapped to the OR plane, where connections are selected to form the SOP expressions for each output. The final step generates a map or , specifying which fusible links to sever (in fuse-based PLAs) or program to establish the connections. The architectural realization follows a five-block model to support efficient signal and . Input buffers receive and condition external signals, preventing loading on source circuits while providing both true and complemented literals to the AND . The AND , a grid of programmable AND gates, produces the minimized product terms. The OR then combines selected product terms via programmable OR gates to yield the output functions. Output buffers drive the final signals with sufficient strength for external interfacing, and optional flip-flops can be included at the outputs for , enabling designs without additional components. Verification ensures correctness prior to physical programming or fabrication, typically through simulation of the fuse patterns against the original truth table to confirm all input-output mappings. This step identifies any mismatches in product term assignments or OR plane connections, allowing iterative refinement of the fuse map. For illustration, a three-input odd parity checker—which asserts an output for an odd number of input 1s—demonstrates the procedure. The canonical SOP form sums minterms m_1 + m_2 + m_4 + m_7, corresponding to inputs 001, 010, 100, and 111. Minimization yields four terms: P = \bar{A}\bar{B}C + \bar{A}B\bar{C} + A\bar{B}\bar{C} + ABC
These are assigned to the AND plane (e.g., first term connects to \bar{A}, \bar{B}, C; second to \bar{A}, B, \bar{C}) and OR plane (all to the single output), fitting a small PLA with at least four product terms.

Tools and Programming Methods

Design tools for programmable logic arrays (PLAs) primarily involve (EDA) software that facilitates logic synthesis and optimization for the AND-OR array structure. Commercial EDA suites, such as Design Compiler, enable the synthesis of high-level descriptions into gate-level netlists suitable for PLA implementation by minimizing the number of product terms and optimizing the sum-of-products form. Similarly, AMD's Vivado Design Suite supports synthesis flows that can generate netlists adaptable to PLA architectures, particularly through integration with third-party tools like VCS for verification. These tools process inputs in hardware description languages (HDLs) such as or , compiling them into fuse maps or connection patterns that define the programmable interconnections. Open-source alternatives provide accessible options for PLA design, with Yosys Open SYnthesis Suite standing out for its synthesis capabilities. Yosys performs and technology mapping, allowing adaptation to PLA targets by generating flattened netlists that represent AND-OR planes, often through scripts that combine passes like for two-level minimization. This framework supports Verilog-2005 constructs and can output formats compatible with PLA fuse programming, making it suitable for academic and hobbyist projects involving legacy or custom PLA structures. Programming methods for PLAs rely on standardized formats to configure the programmable elements, with the JEDEC file format serving as the industry standard for specifying fuse maps. A JEDEC file encodes the blown or intact fuses in a or hexadecimal representation, detailing the connections in the AND and OR planes for devices like and PLAs. For erasable PLAs using technologies such as or UV-erasable links, in-system programming via (IEEE 1149.1) boundary-scan interfaces allows reconfiguration without device removal, using tools like Corelis ScanExpress Programmer to serially shift data into the configuration registers. In contrast, non-erasable fusible-link PLAs require mask generation for custom fabrication, where synthesis tools output layout data for photolithography masks that permanently define the interconnections during . Modern programming workflows integrate HDL descriptions directly with synthesis tools to target PLA structures, compiling VHDL or Verilog code into optimized two-level logic that fits the array's constraints. Synopsys HDL Compiler, for instance, translates behavioral HDL into structural netlists, applying Boolean minimization to produce PLA-compatible outputs like minimized product terms. Pre-programming verification employs simulation tools such as Synopsys VCS or Mentor Graphics ModelSim, which emulate the PLA's combinational logic to validate timing and functionality against test vectors before fuse programming or mask production. Challenges in tool support persist, particularly for legacy PLAs, where modern EDA flows prioritize FPGA architectures, requiring custom adaptations or wrappers to integrate PLA netlists into broader designs. Limited vendor support for obsolete PLA devices complicates programming and compatibility in mixed-signal systems, often necessitating open-source bridges like Yosys for reverse-engineering or .

Advantages and Limitations

Benefits Over

Programmable logic arrays (PLAs) offer significant efficiency advantages over read-only memories (s) when implementing functions, especially for sparse truth tables or those with many don't care conditions. A requires a full with 2^N entries for N inputs and M outputs, typically using approximately 2^N × M s in a mask-programmed , regardless of the actual . In contrast, a structures the as a sum-of-products form, employing roughly 2N × P + P × M s, where P is the number of product terms needed—often far fewer than 2^N when the function exploits don't cares or has limited minterms. This efficiency is exemplified in the MOS 6502 microprocessor, where a PLA implemented the instruction decoding and control logic, enabling a compact design that contributed to the chip's low cost and small die size compared to alternatives using ROM-based lookup tables for similar functions. The PLA's ability to minimize product terms reduced the overall gate count required for control signal generation, avoiding the overhead of a complete ROM array that would enumerate all possible input combinations. Unlike ROMs, which feature a fixed decoder (AND plane) and programmable output selection (OR plane), PLAs allow programming of both planes, providing greater flexibility in customizing product terms and output sums for efficient implementation. This architecture enables field updates for reprogrammable PLAs (e.g., EPROM-based variants), whereas one-time programmable PLAs and ROMs require full redesign for changes. In terms of density, PLAs excel for sparse functions; for instance, if 50% of the minterms are don't cares, a ROM still demands the full 2^N × M transistor array, while a PLA directly adapts by requiring only product terms for the active minterms, potentially halving or more the effective size depending on the logic minimization.

Drawbacks Compared to Field-Programmable Gate Arrays

Programmable logic arrays (PLAs) suffer from significant scalability limitations when compared to field-programmable gate arrays (FPGAs), primarily due to their rigid AND-OR plane architecture, which is optimized for sum-of-products combinational logic but restricts the number of implementable terms to small scales. Typical commercial PLAs, such as those with a 16×48×8 configuration (16 inputs, 48 product terms, and 8 outputs), can only handle logic functions involving up to around 1000 gates or fewer, as the fixed structure becomes inefficient beyond simple to medium-complexity designs requiring extensive minterm sharing. In contrast, FPGAs employ configurable logic blocks based on lookup tables (LUTs), enabling them to support designs with millions of equivalent gates—such as 1 million-gate systems comprising approximately 83,000 LUT-flip-flop pairs—making PLAs inadequate for modern large-scale digital systems like processors or signal processors. Another key drawback of PLAs is their limited reconfigurability, as most implementations rely on one-time programmable technologies like fuses or anti-fuses, which prevent post-programming modifications and increase development risks for evolving designs. FPGAs mitigate this through SRAM-based or configurations that support repeated reprogramming, even at runtime, facilitating and field updates, although this flexibility elevates costs for low-volume or custom applications where PLAs might otherwise be more economical if static. For large designs, PLAs lack the programmable resources, , and modular blocks found in FPGAs, leading to greater complexity, larger chip footprints, and challenges in interconnecting multiple devices without custom wiring. This structural rigidity makes PLAs less versatile for integrating sequential elements or hierarchical , often requiring supplementary components that inflate overall system size and design effort, whereas FPGAs' distributed interconnects and on-chip resources streamline complex architectures. Regarding power and speed trade-offs, PLAs can achieve lower propagation delays for basic combinational functions due to their direct wired-AND/OR paths, but they prove inefficient for sequential or mixed without add-ons, resulting in higher overall power consumption and slower effective performance in comprehensive systems compared to FPGAs' optimized, scalable .

Applications

Traditional Uses in Digital Systems

Programmable logic arrays (PLAs) played a key role in implementing control logic for early , particularly in state machine decoding. In the , introduced in 1975, the instruction decoding and timing control were realized using a hardwired PLA structure that generated microcode-like signals for the processor's state machine, enabling efficient handling of the 151 official while ignoring undocumented ones. This approach allowed the 6502 to manage complex sequencing with a compact array of 130 entries, combining decoding and timing functions to drive the CPU's and control signals across its six-phase clock cycle. Similar PLA-based control logic was employed in other early 8-bit CPUs, such as the , where the PLA focused on decoding to feed subsequent timing logic, facilitating reliable operation in resource-constrained systems. In of the 1970s and 1980s, PLAs served as to integrate disparate components, notably in home computers and gaming hardware. The Commodore 64, released in 1982, utilized the Signetics 82S100 FPLA for address decoding, I/O mapping, and bank switching between its , , and peripheral chips like the VIC-II video controller and . This 16-input, 48-product-term, 8-output device, programmable via fuse links, reduced the need for multiple discrete gates, enabling a cost-effective single-chip solution for the system's memory and I/O interfacing. In arcade machines, such as Williams' 1988 title NARC, PLAs like the 82S153 implemented custom for video timing, sound triggering, and input multiplexing, allowing developers to tailor without full custom . PLAs found application in during the 1970s and 1980s as sequence controllers for in modems and switches. This programmable structure allowed flexible implementation of state machines for in data streams, adapting to varying rates without hardware redesign. By the 1980s, CMOS modems like the V.22bis incorporated PLAs for hybrid circuit control and echo cancellation sequencing, optimizing 2-wire to 4-wire conversions in voiceband communications. In early automotive electronics, PLAs supported signal processing in engine control units (ECUs) for decoding sensor inputs during the 1980s. This approach facilitated reliable decoding of analog-to-digital converted signals from sensors like crankshaft position encoders, contributing to the shift from mechanical to electronic in vehicles from manufacturers such as Bosch-integrated ECUs. Later in the decade, power driver for automotive actuators employed PLAs to define status logic for and sequencing, reducing component count in engine management modules.

Modern and Emerging Applications

In contemporary , programmable logic arrays (PLAs) serve as efficient () blocks within application-specific integrated circuits (ASICs) and system-on-chips (SoCs), particularly for implementing custom decoders and functions. These structures enable tailored control logic in resource-constrained environments, such as address decoding or state machine controllers, where fixed functionality reduces overhead compared to more general-purpose reconfigurable fabrics. For instance, in ARM-based SoCs used in smartphones and () devices, PLAs facilitate low-overhead decoding for peripheral interfaces and units, optimizing area and latency in high-volume production chips. Hybrid implementations integrate soft PLA cores into field-programmable gate arrays (FPGAs) to emulate legacy systems or achieve low-power execution. By mapping PLA architectures onto FPGA lookup tables and interconnects, designers replicate historical combinational circuits from older digital systems, preserving timing and behavior for projects while leveraging modern FPGA tools for verification. This approach is particularly valuable in low-power applications, where PLA's sum-of-products structure minimizes dynamic switching compared to denser FPGA , enabling efficient implementation of fixed-function blocks like protocol adapters in battery-operated devices. Emerging applications extend PLAs into specialized accelerators, including AI hardware for fixed combinational operations such as hashing algorithms in pipelines. In-memory computing architectures, like the Parallel Processor in Associative (PPAC), incorporate PLA modes to compute Boolean functions as sums of minterms directly within arrays, accelerating matrix-vector products and related operations central to inference with reduced data movement. prototypes further explore quantum-inspired PLAs, where quantum gates replace classical AND/OR planes to implement reversible logic circuits, potentially enabling fault-tolerant designs for future hybrid quantum-classical systems. As of 2025, ongoing integrates PLAs in neuromorphic edge devices for low-power in sensors. Revival trends in open-hardware ecosystems highlight PLAs in customizable controllers for processors, driven by projects emphasizing and . Educational and prototyping initiatives, such as the 16-bit processor design, employ PLA blocks for execution units and decoding, allowing open-source contributions to refine control logic without proprietary tools. These efforts, often implemented on FPGAs for rapid iteration, foster community-driven innovations in embedded controllers for IoT and , aligning with RISC-V's extensible set for tailored .

References

  1. [1]
    Programmable Logic Array - an overview | ScienceDirect Topics
    Programmable Logic Arrays (PLAs) are digital logic devices designed to implement combinational logic functions using programmable AND and OR planes. Inputs, ...Introduction to Programmable... · Applications and Evolution of...
  2. [2]
    None
    ### Summary of Programmable Logic Arrays (PLAs)
  3. [3]
    How the FPGA Came To Be, Part 5 - EEJournal
    Dec 27, 2021 · These diode matrices along with a Mask Programmable Logic Array (MPLA) from National Semiconductor were the… ... History of the FPGA - FPGA ...
  4. [4]
    1978: PAL User-Programmable Logic Devices Introduced
    Chua of Monolithic Memories worked with Andy Chan to introduce a more streamlined architecture they called Programmable Array Logic (PAL) in 1978 that traded ...Missing: definition | Show results with:definition
  5. [5]
    [PDF] Programmable Logic Arrays - arXiv
    A Programmable Logic Array (PLA) is a simple programmable device (SPLD) used ... A PLA has a set of programmable AND gates, which link to a set of programmable OR ...Missing: volume | Show results with:volume
  6. [6]
    [PDF] FPGA and Field Programmable Devices architectures : A tutorial
    prototyping or other low volume scenarios. ... The first device developed specifically for implementing logic circuits was the field Programmable Logic Array PLA.
  7. [7]
    [PDF] Programmable Logic - Bitsavers.org
    Read-Only Memory), and PLA (Programmable Logic Array) devices are the three most popular programmable logic devices (PLDs). All three share the same basic ...
  8. [8]
    [PDF] Digital Beamforming Implementation on an FPGA Platform
    This device, the TMS2000, was programmed by altering the metal layer during the production of the IC. TI coined the term Programmable Logic Array (PLA) for this ...
  9. [9]
    [PDF] Chapter 10: Programmable Devices - Digital Commons @ NJIT
    A programmable logic array, PLA, is similar to a PAL. Unlike a PAL, however, any AND gate can send its output to any OR gate; the AND-OR array is not fixed.Missing: volume | Show results with:volume
  10. [10]
    None
    ### Summary of Comparisons and Key Architectural Differences Between PLA, PAL, and PROM
  11. [11]
    [PDF] ECEN 248
    ∎ PLA: both AND plane and OR plane are programmable. ∎ PAL: Only AND plane is programmable, while OR plane is fixed. Figure 3.28.
  12. [12]
    [PDF] Architecture of FPGAs and CPLDs: A Tutorial
    a Programmable Logic Array (PLA) is a relatively small FPD that contains two ...
  13. [13]
    [PDF] Programmable Logic Overview - PLD, CPLD, FPGA - deadhacker.com
    Mar 24, 2004 · EEPROM and Flash-based devices usually require more power than those based on PROM, EPROM, or SRAM technologies. Programmable logic devices are ...
  14. [14]
    How the FPGA Came to Be, Part 1 - EEJournal
    Dec 6, 2021 · First came field-programmable logic arrays (FPLAs), followed by PALs, GALs, and CPLDs. FPGAs finally appeared at the top of the programmable ...
  15. [15]
  16. [16]
    [PDF] Programmable Logic Arrays
    In 1970, Texas Instruments developed a mask- programmable IC based on the ... TMS2000, was programmed by altering the metal layer during the production ...
  17. [17]
    [PDF] The first PLDs were Programmable Logic Arrays (PLAs).
    The first PLDs were Programmable Logic Arrays (PLAs). ... – AntiFuse technology for programming (AntiFuse means that you program the fuse to make the connection).
  18. [18]
    Hardware Architecture of Texas Instruments' Electronic Calculators
    An IC-based, battery-powered "miniature calculator" that could add, subtract, multiply and divide, yet could fit in the palm of the hand.
  19. [19]
    How the FPGA came to be, Part 2 - EEJournal
    Dec 8, 2021 · The Signetics 82S100 sold reasonably well and was even designed into Commodore's personal computers, including the Commodore 64. (The programmed ...Missing: milestones 1980s CMOS transition
  20. [20]
    First CMOS reprogrammable logic array specs low power and UV ...
    May 3, 1984 · The first reprogrammable logic array, the EP300, brings considerable changes to the programmable-logic marketplace.Missing: FPLA | Show results with:FPLA
  21. [21]
    [PDF] Array for Rapid Integrated CircuitPrototyping - MIT Lincoln Laboratory
    Laser programming can reduce the time required to customize a logic circuit to minutes without the access and resistance limitations ofelectrically ...
  22. [22]
    How the FPGA Came To Be, Part 3 - EEJournal
    Dec 13, 2021 · Part 2 of this article series discussed the development of the first successful programmable logic device, the Signetics 82S100 FPLA (field programmable logic ...
  23. [23]
    From Concept to Programmable Logic Prototype in Minutes
    Dec 12, 2024 · The first of the simple PLDs were programmable read-only memories (PROMs), programmable logic array ... (FPGAs). So, finally, we return to ...
  24. [24]
    [PDF] Programmable Logic Arrays - Semantic Scholar
    The powerful-but-simple property brought PLAs to rapid prototyping, synthesis, design optimization techniques, embedded systems, traditional computer ...
  25. [25]
    [PDF] PRGA: An Open-Source FPGA Research and Prototyping Framework
    PRGA is a customizable, open-source framework for building custom FPGAs, generating Verilog and providing a CAD toolchain. It is developed in Python.
  26. [26]
    [PDF] Programmable Logic - Washington
    ▫ Programmable logic array (PLA). ❑ what we ... ▫ Similar to a PLA structure but with a fully decoded AND array. ❑ completely flexible OR array (unlike PAL).Missing: differences | Show results with:differences
  27. [27]
    [PDF] CPLD and FPGA Architectures - Southern Illinois University
    a Programmable Logic Array (PLA) is a relatively small FPD that contains two levels of logic, an AND- plane and an OR-plane, where both levels are.
  28. [28]
    [PDF] PLAs, ROMs and RAMs PLA structures
    Programmable Logic Array structures provide a logical and compact method of implementing multiple SOP (Sum of Products) or POS expressions.
  29. [29]
    [PDF] Programmable Logic Array
    Nov 30, 2001 · The programmable logic array is an old [1] but important building block in digital VLSIs. Continued advances in VLSI technology, along with the ...Missing: transition advancements
  30. [30]
    [PDF] PROGRAllllAllE IOGIC ARRAYS
    Feb 2, 1976 · SIGNETIC8 BIPOLAR FIELD-PROGRAMMABLE LOGIC ARRAY • 828100, 828101. 16 X 48 X 8 FPLA PROGRAM TABLE. PROGRAM TABLE ENTRIES. INPUT VARIABLE. OUTPUT ...
  31. [31]
    None
    ### Summary of Programmable Elements in PEEL18CV8
  32. [32]
    [PDF] Introduction to Programmable Logic Devices
    The OR array allows any combination of product terms to be included in each sum term. The canonical sum of products form of any function can be realized ...
  33. [33]
    [PDF] Programmable Logic Devices (PLDs)
    Example: Design a PLA, PAL and ROM at a gate level to realize the following sum of product functions: X(A,B,C) = A.B + A.B.C + A.B.C. Y(A,B,C) = A.B + A.B.C.
  34. [34]
    [PDF] Programmable Logic Arrays: An Introduction - SNS Courseware
    Input signals are buffered and their true and complement forms are made available to the AND plane. ... These product terms are then fed into the OR plane, where.
  35. [35]
    Chapter 5 Logic Circuits
    Programmable Logic Array (PLA): Both the AND gate plane and the OR gate ... active-high signal: The higher voltage represents 1. active-low signal: The ...
  36. [36]
    [PDF] LECTURE 4 Logic Design - FSU Computer Science
    PROGRAMMABLE LOGIC ARRAYS. The sum-of-products representation is implemented by the programmable logic array. (PLA). A PLA is composed of: • A set of inputs ...
  37. [37]
    [PDF] Programmable Logic Array (PLA)
    Programmable Logic Array (PLA). In a ROM, the AND section is a decoder ... Follow the design steps from the class lectures. We will study the datapath ...
  38. [38]
    [PDF] Programmable Implementation Technologies
    A macrocell on most modern CPLDs contains a sum-of-products combinatorial logic function and an optional flip-flop. The combinatorial logic function typically ...
  39. [39]
    None
    ### Implementation Procedure for PLA
  40. [40]
    [PDF] Digital Logic Design
    One can easily form the canonical sum of products expression from this table, simply by summing the minterms ... Parity Checker and generator seen in data.
  41. [41]
    Synopsys | EDA Tools, Semiconductor IP & Systems Verification
    Powering the Era of Pervasive Intelligence from Silicon to Systems. Supercharge Productivity • Conquer Complexity • Accelerate Time-to-Market.Office Locations · Careers · About Us · Contact UsMissing: Xilinx Vivado
  42. [42]
    AMD Vivado™ Verification
    AMD Vivado™ Design Suite provides an array of design entry, timing analysis ... EDA – ModelSim® & Questasim®, Synopsys VCS® and AMD Vivado Simulator.
  43. [43]
    [PDF] Vivado Design Suite User Guide Design Flows Overview
    The Xilinx FPGA logic synthesis tools supplied by Synopsys and Mentor Graphics are supported for use with the Vivado Design Suite. In the Vivado Design ...
  44. [44]
    YosysHQ/yosys: Yosys Open SYnthesis Suite - GitHub
    Yosys can be adapted to perform any synthesis job by combining the existing passes (algorithms) using synthesis scripts and adding additional passes as needed ...
  45. [45]
    Yosys Open SYnthesis Suite :: About - YosysHQ
    Yosys is a framework for Verilog RTL synthesis. It currently has extensive Verilog-2005 support and provides a basic set of synthesis algorithms for various ...
  46. [46]
    Programmable devices: Jedec files
    Nov 25, 2022 · Jedec file format​​ This seems to be well documented. The file has two unprintable characters in it, namely 0x02 and 0x03 (STX and ETX).
  47. [47]
    ScanExpress Programmer - Corelis Inc.
    ScanExpress JTAG Programmer is a universal in-system programming (ISP) solution designed for convenience and versatility—a modular, multi-functional, and high- ...
  48. [48]
    programmable logic array (PLA) - JEDEC
    (1) An integrated circuit consisting of an array of combinational logic elements (circuits) with a fixed interconnection pattern in which connections can be ...Missing: programming | Show results with:programming
  49. [49]
    Open Source Projects - YosysHQ GmbH
    YosysHQ maintains open source projects like Yosys (RTL synthesis), SymbiYosys (formal verification), MCY (testbench coverage), and Amaranth (Python toolbox).
  50. [50]
    [PDF] Lecture 16: CAMs, ROMs, PLAs
    A Programmable Logic Array performs any function in sum-of-products form. ... ❑ The OR plane of the PLA is like the ROM array. ❑ The AND plane of the PLA ...
  51. [51]
    The MOS 6502: How a $25 Chip Sparked a Computer Revolution
    Aug 29, 2025 · Internally, the 6502 used a hardwired PLA instruction decoder instead of microcode, and a two-phase on-chip clock generator that simplified ...
  52. [52]
    [PDF] Digital Logic Design ENEE 244-010x
    Programmable Logic Array. • PLAs are characterized by three numbers: – Number of input lines n. – Number of product terms that can be generated p. (the number ...
  53. [53]
    Architectural and Physical Design Challenges for One-Million Gate ...
    The 1 million-gate FPGA will contain (by today's gate counting standards) approximately 83,000 LUT-flip-flop pairs.
  54. [54]
    [PDF] A Brief Introduction to FPGAs - ISEC
    Oct 2, 2023 · • 1975 – PLA (Programmable Logic Array). • 1977 – PAL (Programmable ... FPGA: Advantages and Disadvantages. Advantages. • Programmability.
  55. [55]
    How MOS 6502 Illegal Opcodes really work - pagetable.com
    Jul 29, 2008 · The Decode ROM (PLA). There is no need to understand the whole diagram. The important part is on the left: The instruction register, which ...
  56. [56]
    Reverse engineering ARM1 instruction sequencing, compared with ...
    Unlike the PLA in the 6502 or Z-80, the ARM1's instruction decode PLA operates more like a ROM, with exactly one row active at a time, and it steps through ...
  57. [57]
    PLA Replacement - Mike Naberezny
    PLA Replacement. Many Commodore 8-bit computers implement the Signetics 82S100 FPLA, commonly known as a “PLA” chip by owners.
  58. [58]
    PLS153AN - Any Substitutes?
    Nov 29, 2007 · I'm pretty sure I have the rest of a NARC set at home somewhere... Which board are those on? IIRC PLS153 = 82s153 = a programmable logic array.
  59. [59]
  60. [60]
  61. [61]
    What are programmable logic ICs of different complexity used for?
    Dec 24, 2010 · The difference between FPGAs and CPLDs is that FPGAs are internally based on Look-up tables (LUTs) whereas CPLDs form the logic functions with ...
  62. [62]
  63. [63]
    [PDF] PPAC: A Versatile In-Memory Accelerator for Matrix-Vector-Product ...
    Jul 19, 2019 · We propose the Parallel Processor in Associative Content-addressable memory (PPAC), a novel in-memory accelerator that supports a range of ...
  64. [64]
    Programmable Logic Array in Quantum Computing | Request PDF
    Aug 7, 2025 · In this work, a PLA is designed using ... Quantum computing and quantum-inspired methods have been investigated as promising alternatives.
  65. [65]
    An Educational RISC-V-Based 16-Bit Processor - MDPI
    The block is named “PLA” (Programmable Logic Array) in this project because ... The MicroRV32 framework: An accessible and configurable open source RISC-V cross- ...
  66. [66]
    An Educational RISC-V-Based 16-Bit Processor - ResearchGate
    Nov 18, 2024 · Execution PLA (Programmable Logic Array). 7. Software. It is possible ... With the growing popularity of RISC-V and various open-source released ...