Home DefinitionHardware and Devices Programmable Logic Devices (PLDs): FPGAs and CPLDs

Programmable Logic Devices (PLDs): FPGAs and CPLDs

by Marcin Wieclaw
0 comment
Programmable Logic Devices

In today’s world, digital systems and electronic circuits are incomplete without logic devices. From the smartphones in our pockets to our laptops, smart TVs, fridges, and washing machines in our homes, every device has a digital system present in it. Some of these digital systems need fixed logic devices (FLDs), whereas others require programmable logic devices (PLDs).

In this article, we will see what a programmable logic device (PLD) is, its applications, and different types, such as complex programmable logic devices (CPLDs) and field-programmable gate arrays (FPGAs).

Programmable Logic Devices (PLDs)

An integrated circuit containing an array of logic elements and interconnections is called a programmable logic device (PLD). Users can program the PLDs to get a desired function from them, hence the word “programmable” in the name. Logic elements used in PLDs can either be simple combinational or sequential circuits.

These sequential circuits can sometimes be any of the AND, OR, NOT, and XOR gates or registers. As for the interconnections, they are programmable multiplexes or switches. These switches and multiplexes can connect the inputs and outputs of the logic elements in multiple ways.

A hardware description language (HDL), such as VHDL, or a graphical user interface (GUI) software tool can be used to program a PLD. A special device programmer or a standard interface, such as USB, is used to download the programming code to the PLD. The programming code determines the configuration of logic elements and interconnections to perform the required logic function.

Evolution and Types of Programmable Logic Devices (PLDs)

As technology advanced, programmable logic devices also became more sophisticated. Initially, PLDs could handle only simple tasks. However, the newer types of PLDs, like CPLDs (Complex Programmable Logic Devices) and FPGAs (Field Programmable Gate Arrays), are capable of handling complex tasks. Depending upon the architecture, complexity, and programmability, PLDs have a number of different types. Some of the common types of PLDs are as follows.

Simple Programmable Logic Devices (SPLDs)

These are the most basic and smallest PLDs. Simple programmable logic devices come with only a few logic elements and interconnections. Normally, a fuse or anti-fuse technology is used to program them. This means they can be programmed only once and cannot be changed later. Some of the usual examples of SPLDs are given below.

Programmable Read-Only Memory (PROM)

As the name suggests, PROM is a memory-storing device. It can store binary in a fixed pattern, representing a logic function. Fuses, or anti-fuses, are burned in the memory cells to program data into PROMs.

Programmable Logic Array (PLA)

A programmable logic array (PLA) device consists of two programmable arrays of AND and OR gates. Fuses, or anti-fuses, are burned in the rows to program the AND array and in the columns to program the OR array.

Programmable Array Logic (PAL)

PAL uses a programmable array of AND gates and a fixed array of OR gates. Fuses or anti-fuses are burned in the rows to program the AND array, which is fixed and has a predefined number of outputs.

Generic Array Logic (GAL)

Just like in PAL, generic array logic consists of a programmable AND array and a fixed OR array. EEPROM, or electrically erasable programmable read-only memory cells, are used in the rows to program the AND array. The OR array in GAL is fixed with a predefined number of outputs, just like in PAL.

Complex Programmable Logic Devices (CPLDs)

As the name suggests, CPLDs are more complex than SPLDs. The logic elements and interconnections in complex programmable logic devices number in the thousands. Flash memory or EEPROM technology is usually used to program CPLDs, meaning that they can be reprogrammed electrically. Some of the CPLDs are as follows.

Erasable Programmable Logic Device (EPLD)

EPLDs use an array of macrocells, each containing a register and a programmable logic block. A programmable switch matrix interconnects the macrocells and routes signals between them.

Electrically Erasable Programmable Logic Device (EEPLD)

An EEPLD is the same as an EPLD. The only difference between the two is that an EPLD uses the EPROM cells to implement any combinational logic function, whereas an EEPLD uses flash memory cells for that purpose.

Field-Programmable Logic Devices (CPLDs)

The most complex and largest of all programmable logic devices (PLDs) are FPGAs or field programmable gate arrays. FPGAs contain millions of logic elements and interconnections. SRAM technology is used to program them, meaning their configuration data is stored in external memory devices. Some of the FPGAs are discussed below.

Static Random-Access Memory (SRAM) Programmed FPGA

An array of configurable logic blocks, or CLBs, is used in this device. Each of the CLBs contains flip-flops and one or more look-up tables (LUTs). With SRAM cells, the LUTs can execute any combinational logic function.

Antifuse Programmed FPGA

The making of an anti-fuse-programmed FPGA is the same as that of an SRAM FPGA. However, instead of SRAM cells, this device uses anti-fuse cells to implement the combinational logic functions.

Flash Programmed FPGA

A flash-programmed FPGA is also made of CLBs that contain LUTs and flip-flops. However, in this device, combinational logic functions are implemented using flash memory cells.

Applications of Programmable Logic Devices (PLDs)

PLDs have a number of different applications. Some of these are mentioned below.

  • Digital Systems—Various digital logic functions, such as binary addition, subtraction, and other complex mathematical operations, are performed via PLDs in digital systems.
  • Embedded Systems – PLDs can also be used to control hardware and perform data processing tasks in embedded systems.
  • Signal Processing – Because of their ability to perform complex tasks, FPGAs are used in signal processing for real-time operations.


Electronic circuits are incomplete without programmable logic devices (PLDs) because of the key functions they can perform. PLDs have seen great advancement over the years, from SPLDs to CPLDs and now FPGAs. Only one question remains: Where can you buy this electronic component? Partstack is the only reliable online marketplace for selling and purchasing electronic parts.


Leave a Comment

Welcome to PCSite – your hub for cutting-edge insights in computer technology, gaming and more. Dive into expert analyses and the latest updates to stay ahead in the dynamic world of PCs and gaming.

Edtior's Picks

Latest Articles

© PC Site 2024. All Rights Reserved.

Update Required Flash plugin