Programmable Logic Devices
Programmable logic devices (PLDs) are a versatile class of integrated circuits that can be configured to implement custom digital logic functions after manufacturing. Unlike fixed-function integrated circuits, they offer flexibility in hardware design, allowing engineers to create application-specific solutions without the cost and lead time of developing custom silicon.
Overview
Programmable logic devices bridge the gap between general-purpose processors and custom application-specific integrated circuits (ASICs). They provide hardware-level performance with the flexibility of software-like reconfiguration, which makes them essential to modern digital design. From simple logic replacement to complete system-on-chip implementations, PLDs serve diverse applications across many industries.
The evolution of programmable logic has reshaped how engineers approach digital design. What began as small programmable arrays has grown into sophisticated devices capable of implementing entire systems, including embedded processors, digital signal processing (DSP) functions, and high-speed interfaces. This programmability enables rapid prototyping, field updates, and adaptive systems that adjust their behavior to operational requirements.
Fundamental Architecture
Every programmable logic device combines three kinds of resources: programmable logic that implements Boolean functions, programmable interconnect that routes signals between logic elements, and input/output (I/O) blocks that connect to the outside world. The form these resources take distinguishes the device families. Simple and complex programmable logic devices build their logic from product-term arrays of AND and OR gates that realize sum-of-products expressions directly. Field-programmable gate arrays instead use a fine-grained fabric of small lookup tables (LUTs), flip-flops, and multiplexers, surrounded by hardened blocks for arithmetic, memory, and high-speed signaling.
I/O blocks support a wide range of voltage standards and signaling protocols, from single-ended levels such as LVCMOS to differential standards such as LVDS, together with programmable drive strength, slew-rate control, and on-chip termination. This flexibility lets a single device interface directly with memories, sensors, and other chips without external level translation.
Categories of Programmable Logic
Simple Programmable Logic Devices (SPLDs)
SPLDs include PALs (programmable array logic), GALs (generic array logic), and PLAs (programmable logic arrays). These devices implement combinational and sequential logic using arrays of AND and OR gates that realize sum-of-products expressions. A PLA makes both the AND and OR planes programmable, whereas a PAL programs only the AND plane and fixes the OR plane, trading flexibility for speed and lower cost. Capacities are small — the classic GAL22V10, for example, provides ten output macrocells with eight to sixteen product terms each — but SPLDs remain useful for glue logic, address decoding, and simple state machines.
Complex Programmable Logic Devices (CPLDs)
CPLDs integrate multiple SPLD-like blocks through a global programmable interconnect, which gives them predictable timing and instant-on operation. A typical CPLD provides from a few dozen to several hundred macrocells and stores its configuration in on-chip flash or EEPROM, so it is ready at power-up without an external configuration memory. These traits suit control applications that need deterministic timing, such as system management, interface bridging, board-level power sequencing, and I/O expansion.
Field-Programmable Gate Arrays (FPGAs)
FPGAs represent the highest tier of programmable logic complexity, containing thousands to millions of logic elements built around lookup tables rather than the fixed AND/OR planes of SPLDs and CPLDs. Modern FPGAs surround this fine-grained fabric with dedicated hardware blocks for DSP arithmetic, embedded block RAM, multi-gigabit serial transceivers, and even hardened processor subsystems. The largest current devices offer well over ten million logic cells and serial transceivers running beyond 100 gigabits per second per lane, enabling complex algorithms, massively parallel processing architectures, and complete systems on a single chip.
Programming Technologies
The technology that stores a device's configuration shapes its security, power consumption, reconfigurability, and tolerance of harsh environments. Three approaches dominate:
- SRAM-based: The configuration is held in volatile static RAM, so the device reloads its bitstream from external memory at every power-up. This approach dominates FPGAs because it allows unlimited reconfiguration and rides the newest manufacturing processes, at the cost of power-up latency and a bitstream that must be protected by encryption and authentication.
- Flash and EEPROM: Non-volatile cells retain the configuration without power, giving instant-on operation and in-system reprogrammability. This technology is standard in CPLDs and in the flash-based FPGAs used where immediate startup or resistance to configuration tampering matters.
- Antifuse: Programming forms permanent conductive links, so the device is one-time programmable and cannot be reconfigured. In return, antifuse parts offer strong tamper resistance and excellent radiation tolerance, which makes them valuable in aerospace and defense systems.
Design Methodology
Designing with programmable logic devices requires specialized tools and methodologies. Hardware description languages (HDLs) such as VHDL and Verilog let designers describe circuit behavior at several levels of abstraction. Modern flows also support high-level synthesis from languages such as C, C++, and SystemC, allowing algorithm developers to target hardware implementations directly.
The design process typically moves through specification, HDL coding, functional simulation, synthesis, place-and-route, timing analysis, and verification. Each step demands careful attention to resource utilization, timing constraints, and power. Design reuse through intellectual property (IP) cores and parameterized modules accelerates development and builds on proven, verified functionality.
Applications and Trends
Programmable logic devices serve diverse markets, including telecommunications, automotive, aerospace, industrial automation, and data centers. In telecommunications, they handle protocol processing and signal conditioning. Automotive applications include advanced driver-assistance systems (ADAS) and infotainment. Data centers employ FPGAs to accelerate specific workloads such as encryption, compression, and machine-learning inference.
Emerging trends include heterogeneous platforms that pair programmable logic with scalar processors, vector engines, and dedicated AI accelerators on a single device, blurring the line between FPGA and system-on-chip. Artificial intelligence and machine learning drive the development of specialized fabrics optimized for low-precision neural-network inference. Advanced packaging, including 2.5D silicon interposers and chiplet-based designs, integrates multiple dies and high-bandwidth memory (HBM) in a single package, expanding capability while managing cost and power density.
Articles in This Category
For a deeper treatment of the field-programmable side of this topic — FPGA and CPLD architectures, configuration memories, JTAG programming, and HDL design flows — follow the subcategory below.
Conclusion
Programmable logic spans a wide spectrum, from small SPLDs that replace a handful of logic chips to FPGAs that host entire systems. Choosing the right device means weighing capacity, timing, power, programming technology, and cost against the demands of the application. As these devices absorb ever more processing, memory, and connectivity, they increasingly blur the boundary between hardware and software, enabling new paradigms in system design. A firm grasp of digital design fundamentals, computer architecture, and electronic design automation tools is the foundation for using them well.