There are many types of Programmable Logic Devices (PLDs), beginning with simple
combinations of digital logic that are integrated on one chip. Complex Programmable
Logic Devices (CPLDs) and Field Programmable Gate Arrays (FPGAs) are general-purpose
semiconductor devices that can be programmed after shipping. They are very
design-flexible and user-customizable hardware devices that can implement any logical
function that an application-specific integrated circuit could perform, but the ability
to update the functionality offers advantages for many applications.
PLDs contain programmable logic components called Logic Elements (LEs) and a
hierarchy of reconfigurable interconnects that allow the LEs to be physically
connected. You can configure LEs to perform complex combinational functions, or
merely simple logic gates like AND and XOR. The logic blocks may also include memory
elements, which may be simple flip-flops or more complete blocks of memory.
CPLDs are large-scale logic devices with up to thousands of programmable logic
elements, non-volatile memory, and I/O block on one chip. Connections between the
logic elements on these semiconductor chips are customized by the user with software
tools. CPLD architecture has a predictable timing performance and speed, offers a
range of logic capabilities, and is often employed in portable, battery-operated
applications. FPGAs are denser and more complex than CPLDs and are used to implement
larger or more complex designs.
A FPGA is not restricted to any predetermined hardware function. An FPGA allows you
to program product features and functions, adapt to new standards, and reconfigure
hardware for specific applications even after the product has been installed in the
field—hence the name "field-programmable". Unlike previous generation FPGAs using
Input and Output (I/O) with programmable logic and interconnects, today's FPGAs
consist of various mixes of configurable embedded SRAM, high-speed transceivers,
high-speed I/O, logic blocks, and routing.
PLDs have many design advantages, including rapid prototyping, shorter time to
market, and the ability to re-program in the field. FPGAs have evolved from their
primary use as a prototyping platform to wide use in mainstream volume production
today.