Field programmable gate arrays (FPGA) are standard chips that can be reprogrammed to take on any logic function and are programmed in a similar manner to software. The hardware function is described in a software-like language and a compiler reads that description and turns it into a bit-stream that is downloaded into the FPGA. The FPGA then functions as that description but not in the same way as a program running on a processor. Instead, the hardware emulates the function of the program and can do so much faster than a program running on a processor.
The downside is that it takes considerable time to compile and download the program. The devices are also expensive compared to most other solutions and often consume more power. Several companies have recently started to offer embedded FPGA cores.