Field-Programmable Gate Arrays (FPGA) are integrated circuits that can be programmed after the hardware is manufactured. This allows the manufacture or customer to customize the device for a specific application. FPGAs are used for many different applications, including:
- Digital Signal Processing (DSP)
- Software Defined Radio (SDR)
- Medical imaging
- Speech Recognition
- These are just a few applications that FPGAs are used in
FPGAs are designed using hardware description language (HDL). From this a Netlist is generated using an Electronic Design Automation tool. Then through the companies proprietary software it is fitted to the FPGA where the user tests it through simulations, etc. Once the NetFile is validated, a binary file is generated which is then used to configure the FPGA.
There are web sites, like OpenCores.org that provide developers with IP cores / libraries that make development for particular solutions a lot easier. These IP cores have already been pre-tested and optimized.FPGA related sites: