C. Field-Programmable Gate Arrays (FPGA’s) and Programmable Logic Devices (PLD’s)
Field-programmable gate arrays (FPGA’s) are a special class of ASIC’s which differ from mask-programmed gate arrays in that their programming is done by end-users at their site with no IC masking steps.
An FPGA consists of an array of logic blocks that can be programmably connected to realize different designs. Current commercial FPGA’s utilize logic blocks that are based on one of the following: transistor pairs, basic small gates (two-input NAND’s and exclusive-OR’s), multiplexers, look-up tables, and wide fan-in AND-OR structures.
The programming of FPGA’s is via electrically programmable switches that are implemented by one of three main technologies: static RAM (SRAM), antifuse, and floating gate.
- Static RAM technology: the switch is a pass transistor that is controlled by the state of a static RAM bit. A SRAM-based FPGA is programmed by writing data in the static RAM.
- Antifuse technology: an antifuse is a two-terminal device that irreversibly changes from a high-resistance to a low-resistance link when electrically programmed by a high voltage.
- Floating-gate technology: the switch is a floating-gate transistor that can be turned off by injecting a charge on the floating gate. The charge can be removed by exposing the floating gate to ultraviolet (UV) light (EPROM technology) or by using an electric voltage (EEPROM technology).
The design process of an FPGA consists of three main stages: a) logic design and simulation, b) placement, routing
and connectivity check, and c) programming. This process is the same as that used for a semicustom ASIC gate array, except for the last stage, and uses mostly the same software tools.
Current FPGA’s offer complexity equivalent to a 20000 gate conventional gate array and typical system clock speeds of 40-60 MHz. This size is much smaller than mask-programmed gate arrays but large enough to implement relatively complex functions on a single chip.
The main advantage of FPGA’s over mask-programmed ASIC’s is the fast tumaround that can significantly reduce
design risk because a design error can be corrected quickly and inexpensively by reprogramming the FPGA.
Programmable logic devices (PLD’s) are uncornmitted arrays of AND and OR logic gates that can be organized
to perform dedicated functions by selectively making the interconnections between the gates. Recent PLD’s have
additional elements (output logic macro cell, clock, security fuse, tri-state output buffers, and programmable output feedback) that make them more adaptable for digital implementations. The most popular PLD’s are PAL’s (programmable logic array) and GAL’S (generic array logic). Programming of PLD’s can be done by blowing fuses (in PAL’s) or by EEPROM or SRAM technologies which provide re-programmability.