FPGA

Overview
A Field-Programmable Gate Array (FPGA) is an Integrated circuit designed to be configured by the customer or designer after manufacturing—hence "field-programmable".

An FPGA will contain several hundred thousand 'gates' which can be programmed to behave similarly to standard logic gates and flip-flops. As such large logic designs can be compacted into a single integrated circuit without the need for manufacturing a new device.

In most cases designs are not implemented gate by gate but are written in a hardware description language which describes the functions of the system. This description is then 'compiled' and the gates of the device are configured to emulate the desired system.

FPGAs are advantageous as they can act as a parallel system, meaning inputs can be processed in parallel which can in some cases produce a faster result than an equivalent serial design. Systems are usually faster than standard microcontrollers operating between 25Mhz and 1GHz. This enhanced speed is useful in creating display drivers and other systems that need to function above the standard speed of 8-bit microcontrollers.

FPGAs come as integrated circuits and can be reprogrammed to emulate digital systems. Many FPGA systems are designed and implemented using the hardware description language VHDL or its derivatives.

One popular Hardware Description Language compiler is the Xilinx ISE Webpack which is a free VHDL 'compiler' designed to be used by students.