What Is A Programmable Logic Device (PLD)?
A Programmable Logic Device (PLD) is an electronic component used to build reconfigurable digital circuits. Unlike integrated circuit (IC) which consists of logic gates and have a fixed function, a PLD has an undefined function at the time of manufacture. Before the PLD can be used in a circuit it must be programmed (reconfigured) by using a specialized program.
Programmable Logic Array (PLA)
A programmable logic array (PLA) has a programmable AND gate array, which links to a programmable OR gate array, which can then be conditionally complemented to produce an output, A PLA is similar to a ROM concept, however a PLA does not provide full decoding of a variable and does not generate all the minterms as in a ROM.
Programmable Array Logic (PAL)
PAL devices have arrays of transistor cells arranged in a “fixed-OR, programmable-AND” plane used to implement “sum-of-products” binary logic equations for each of the outputs in terms of the inputs and either synchronous or asynchronous feedback from the outputs.
Generic Array Logic (GAL)
An improvement on the PAL was the generic array logic device, or GAL. This device has the same logical properties as the PAL but can be erased and reprogrammed. The GAL is very useful in the prototyping stage of a design, when any bugs in the logic can be corrected by reprogramming. GALs are programmed and reprogrammed using a PAL programmer, or by using the in-circuit programming technique on supporting chips.
Complex Programmable Logic Devices (CPLDs)
PALs and GALs are available only in small sizes, equivalent to a few hundred logic gates. For bigger logic circuits, complex PLDs or CPLDs can be used. These contain the equivalent of several PALs linked by programmable interconnections, all in one IC. CPLDs can replace thousands, or even hundreds of thousands, of logic gates.
Field Programmable Gate Arrays (FPGAs)
While PALs were being developed into GALs and CPLDs, a separate stream of development was happening. This type of device is based on gate array technology and is called the field-programmable gate array (FPGA). FPGAs use a grid of logic gates, and once stored, the data doesn’t change, similar to that of an ordinary gate array. The term “field-programmable” means the device is programmed by the customer, not the manufacturer.
FPGAs are usually programmed after being soldered down to the circuit board, in a manner similar to that of larger CPLDs. In most larger FPGAs, the configuration is volatile and must be re-loaded into the device whenever power is applied or different functionality is required. Configuration is typically stored in a configuration PROM or EEPROM. EEPROM versions may be in-system programmable (typically via JTAG).
The difference between FPGAs and CPLDs is that FPGAs are internally based on look-up tables (LUTs) whereas CPLDs form the logic functions with sea-of-gates. CPLDs are meant for simpler designs while FPGAs are meant for more complex designs. In general, CPLDs are a good choice for wide combinational logic applications, whereas FPGAs are more suitable for large state machines such as microprocessors.
Erasable Programmable Logic Devices (EPLDs)
Using the same technology as EPROMs, EPLDs have a quartz window in the package that allows it to be erased on exposure to UL light. Using the same technology as EEPROMs, EEPLDs can be erased electrically. An Erasable programmable logic device (EPLD) is an integrated circuit that comprises an array of PLDs that do not come pre-connected; the connections are programmed electrically by the user. Most GAL and FPGA devices are examples of EPLDs.