A complex programmable logic device (CPLD) is a
programmable logic device with complexity between that of
PALs and
FPGAs, and architectural features of both. The main building block of the CPLD is a
macrocell
A macrocell or macrosite is a cell in a mobile phone network that provides radio coverage served by a high power cell site (tower, antenna or mast). Generally, macrocells provide coverage larger than microcell. The antennas for macrocells are m ...
, which contains logic implementing
disjunctive normal form expressions and more specialized logic operations.
Features
Some of the CPLD features are in common with
PALs:
* Non-volatile configuration memory. Unlike many FPGAs, an external configuration
ROM is not required, and the CPLD can function immediately on system start-up.
* For many legacy CPLD devices, routing constrains most logic blocks to have input and output signals connected to external pins, reducing opportunities for internal state storage and deeply layered logic. This is usually not a factor for larger CPLDs and newer CPLD product families.
Other features are in common with
FPGAs:
* Large number of gates available. CPLDs typically have the equivalent of thousands to tens of thousands of
logic gate
A logic gate is a device that performs a Boolean function, a logical operation performed on one or more binary inputs that produces a single binary output. Depending on the context, the term may refer to an ideal logic gate, one that has, for ...
s, allowing implementation of moderately complicated data processing devices. PALs typically have a few hundred gate equivalents at most, while FPGAs typically range from tens of thousands to several million.
* Some provisions for logic more flexible than
sum-of-product expressions, including complicated feedback paths between macro cells, and specialized logic for implementing various commonly used functions, such as
integer
An integer is the number zero (0), a positive natural number (1, 2, 3, ...), or the negation of a positive natural number (−1, −2, −3, ...). The negations or additive inverses of the positive natural numbers are referred to as negative in ...
arithmetic
Arithmetic is an elementary branch of mathematics that deals with numerical operations like addition, subtraction, multiplication, and division. In a wider sense, it also includes exponentiation, extraction of roots, and taking logarithms.
...
.
The most noticeable difference between a large CPLD and a small FPGA is the presence of on-chip non-volatile memory in the CPLD, which allows CPLDs to be used for "
boot loader
A bootloader, also spelled as boot loader or called bootstrap loader, is a computer program that is responsible for booting a computer and booting an operating system. If it also provides an interactive menu with multiple boot choices then it's o ...
" functions, before handing over control to other devices not having their own permanent program storage. A good example is where a CPLD is used to load configuration data for an FPGA from non-volatile memory.
Distinctions
CPLDs were an evolutionary step from even smaller devices that preceded them:
PLAs (first shipped by
Signetics
Signetics Corporation was an American electronics manufacturer specifically established to make integrated circuits. Founded in 1961, they went on to develop a number of early microprocessors and support chips, as well as the widely used 555 time ...
) and
PALs. These in turn were preceded by
standard logic products, which offered no programmability and were used to build logic functions by physically wiring several standard logic chips (or hundreds of them) together (usually with wiring on a printed circuit board or boards, but sometimes, especially for prototyping, using
wire wrap wiring).
The main distinction between FPGA and CPLD device architectures is that CPLDs are internally based on a collection of PLDs accompanied by a programmable interconnection structure, while FPGAs use
logic blocks.
See also
* Language:
**
VHSIC Hardware Description Language (VHDL)
**
Verilog Hardware Description Language
**
Standard Test and Programming Language (JAM/STAPL)
* Manufacturers:
**
Altera (Now Intel)
**
Cypress Semiconductor
**
Lattice Semiconductor
**
Microchip Technology (subsumed
Atmel)
**
Xilinx
Xilinx, Inc. ( ) was an American technology and semiconductor company that primarily supplied programmable logic devices. The company is renowned for inventing the first commercially viable field-programmable gate array (FPGA). It also pioneered ...
(Now AMD)
* Technology:
**
Application-specific integrated circuit
An application-specific integrated circuit (ASIC ) is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-efficienc ...
(ASIC)
**
Erasable programmable logic device (EPLD)
**
Simple programmable logic device (SPLD)
**
Macrocell array
**
Programmable array logic (PAL)
**
Programmable logic array (PLA)
**
Programmable logic device (PLD)
**
Generic array logic (GAL)
**
Programmable electrically erasable logic (PEEL)
**
Field-programmable gate array (FPGA)
References
{{DEFAULTSORT:Complex Programmable Logic Device
Gate arrays
Hardware acceleration
fr:Circuit logique programmable#CPLD