FPGAA field-programmable gate array or FPGA is a Gate Array that can be reprogrammed after it is manufactured, rather than during the manufacturing — a programmable logic device. "field" is just an engineering term for the world outside the factory where customers live
Device manufacturers include
FPGAs are generally slower than their ASIC (application-specific integrated circuit) counterparts, and draw more power. However, they have several advantages such as a shorter time-to-market, and lower development costs (for quantities < 10k). An ASIC can be made that is a so-called hard copy of an FPGA - that is, an integrated circuit with the same functionality as the FPGA, but faster and consuming less power.
Many modern FPGAs have the ability to be reprogrammed at 'run time', and this is leading to the idea of reconfigurable computing or reconfigurable systems - CPUs that reconfigure themselves to suit the task at hand. Software-configurable microprocessors such as Stretch's S5000 adopt a hybrid approach by providing a processor core and an FPGA core on the same chip.
Applications of FPGAs include DSP, Software-defined radio, Aerospace and defence systems, ASIC Prototyping, Medical imaging and a growing range of other areas.
To define the behaviour of the FPGA it is required to use a Hardware Description Language (HDL) or a schematic designed using an Electronic design automation tool. Either of these, when compiled, will generate a net list, that can be mapped to the actual fpga architecture. When done the binary file generated is used to (re)configure the FPGA device. Common HDL's are VHDL and Verilog.
Basic process technology types
- SRAM - based on static memory technology. In-system programmable and re-programmable. Requires external boot devices. Usually CMOS.
- Anti-fuse - One-time programmable. CMOS.
- EPROM - Electrically Programmable Read-Only Memory technology. Usually one-time programmable in production because of plastic packaging. Windowed devices can be erased with ultraviolet (UV) light. CMOS.
- EEPROM - Electrically Eraseable Programmable Read-Only Memory technology. Can be erased, even in plastic packages. Some, but not all, EEPROM devices can be in-system programmed. CMOS.
- FLASH - Flash-erase EPROM technology. Can be erased, even in plastic packages. Some, but not all, FLASH devices can be in-system programmed. Usually, a FLASH cell is smaller than an equivalent EEPROM cell and is therefore less expensive to manufacture. CMOS.
- Fuse - One-time programmable. Bipolar
See also FCCM, field-programmable custom computing machine.