What Is an FPGA?
Field Programmable Gate Arrays (FPGAs) are integrated circuits often sold off-the-shelf. They’re referred to as ‘field programmable’ because they provide customers the ability to reconfigure the hardware to meet specific use case requirements after the manufacturing process. This allows for feature upgrades and bug fixes to be performed in situ, which is especially useful for remote deployments.
FPGAs contain configurable logic blocks (CLBs) and a set of programmable interconnects that allow the designer to connect blocks and configure them to perform everything from simple logic gates to complex functions. Full SoC designs containing multiple processes can be put onto a single FPGA device.
Why Do Developers Select FPGA?
FPGAs are extremely versatile. They allow developers to test any number of variables after the board is built. When changes are required, new configuration files are transferred onto the device that make new functionality available. This flexibility allows OEMs to ship systems earlier in the design process.
Developers design prototypes on FPGA to incrementally mature the design before finalizing it at tape-out. FPGAs are often used in commercial applications where there’s a need for parallel computing and the requirements are dynamic, such as for telecoms and avionics.
Lower price points and other key features make FPGAs the best solution for many use cases, including:
- Hardware prototyping, to verify digital hardware designs without the upfront cost of ASIC manufacture.
- Hardware acceleration, where implementing parts of algorithms in custom hardware help to speed designs.
- Space avionics, where radiation hardened FPGAs in satellites can receive new configuration files to execute upgrades, install new features, or fix bugs without physical access.
- Neural networks, where the design topology better fits an FPGA and can accelerate matrix multiplication.