A programmable logic device or PLD is an electronic component used to build reconfigurable digital circuits. Before the PLD can be used in a circuit it must be programmed.
PLD is a combination of a logic device and a memory device. The memory is used to store the pattern that was given to the chip during programming. Most of the methods for storing data in an integrated circuit have been adapted for use in PLDs.
It include:
§ Silicon antifuses
§ SRAM
§ EPROM or EEPROM cells
§ FLASH MEMORY
Types of PLD( Programmable Logic Device):
PROM - Programmable Read Only Memory
PROM is the first PLD and was introduced in 1970. PROM was used as computer memories to store program instructions and constant data values. PROM have fixed AND plane and programmable OR plane and it can be uses to program any combinational logics with limited numbers of inputs and outputs.
PLA - Programmable logic arrays
PLA was introduce in the 1975 due to limitations imposed by the PROM where both planes of AND and OR arrays are programmable. PLA allows implementing Boolean function in sum-of-product form. This layout allows for a large number of logic functions to be synthesized in the sum of products (and sometimes product of sums) canonical forms.
PAL -Programming Array Logic
PLA was introduced in the 1978 to address speed problem shown by PLA devices. A PAL is opposite to PROM, where AND array is programmable but the OR array is fixed. Due to this, PAL is faster than PLA devices. PAL contain flip-flops connected to the OR-gate outputs to implement sequential circuits. Registered or combinational output functions are model in a sum of product form. Each output is a sum of a fixed number of products of the input signals.
FPGA - Field Programmable Gate Array
Field-programmable gate array (FPGA) is a semiconductor device that can be programmed after manufacturing. Instead of being restricted to the predetermined hardware function, an FPGA allows 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". An FPGA can be used to implement any logical function that an application-specific integrated circuit (ASIC) could perform, but the ability to update the functionality after shipping offers advantages for many applications. Each logic block can be programmed individually to perform simple logic functions and then, switches can be programmed to implement desire logic function. The key element in programmable logics are 3-input Look up Table (LUT), multiplexer and flip-flop. The 3-input LUT is similar to PAL, used to implement combinational or Boolean equations.
A simple FPGA contain on each Logic Block: