Field Programmable Gate Arrays (FPGAs) are a class of programmable logic devices based on an array of thousands of identical, programmable logic cells surrounded by a periphery of input/output cells. FPGAs can be programmed in the field after manufacture in order to implement specific design functions. A typical design involves specifying the simple logic function for each cell and selectively closing the switches in the interconnect matrix. To operate correctly, the FPGA must employ appropriate power-management technology. FPGAs were originally used to prototype systems that ultimately used higher speed ICs or ASICs. However, in recent years FPGA performance has improved considerably, and with continuing cost reductions, the FPGA is now used extensively for production designs.

