A Field Programmable Gate Array is an array of transistors and logic gates that are connected together according to the chip's configuration RAM. Manufacturers include Xilinx, Altera, Seiko, and Yamaha. The idea of an FPGA is visibly an outgrowth from earlier PAL, PLA, and the assorted extensions of PROM technologies. The functionality of the circuit within an FPGA unit is limited only by the amount of space within the unit, while earlier technologies were limited to combinational circuits.
FPGAs have applications in evolutionary computing. This idea was first developed by Hugo de Garis. Currently, he is doing research in Belgium and Japan, developing a kitten robot (Robokoneko) by an evolutionary process.
FPGAs are usually configured as digital devices, but a doctoral student at the University of Sussex tried removing that constraint and created an incredibly small voice recognition chip (OK, it can distinguish between "GO" and "STOP") on a 10 cell x 10 cell corner of a Xilinx XC6216. (A cell in an FPGA, by the way, typically contains some flip flops, a tiny ALU, and some logic gates. Even a very simple circuit can take up quite a few cells simply by using a logic gate model with too many inputs.)
There are a few varieties of FPGA. There are FPGAs that are writeable once-only. These are often used for specialized circuits with a target market too small to support actually fabricating chips, so an FPGA is programmed and soldered onto the board.
Rewriteable FPGAs can be volatile or non-volatile. Volatile FPGA's have configuration RAM that is lost when power is no longer supplied to the chip. These are best used when testing designs for functionality. (You do NOT use FPGA's to test for speed. That's just silly!) Non-volatile FPGAs have either a battery to preserve the configuration RAM, or a configuration EEPROM. These are used commonly in the same devices as write-once FPGAs; early versions of a hardware product can be updated by software patches.