Field Guide · hardware

Also known as: FPGA

A field-programmable gate array (FPGA) is an integrated circuit whose internal digital logic can be reconfigured after manufacture — letting an engineer describe a custom hardware circuit in software and load it onto the chip.1

Overview

An FPGA is a fabric of programmable logic blocks — lookup tables (LUTs) and flip-flops — wired together by a configurable interconnect, plus dedicated blocks for arithmetic (DSP slices) and memory. A designer writes the circuit in a hardware description language (VHDL or Verilog); a toolchain synthesizes and places-and-routes it into a bitstream that configures the chip. Unlike a CPU running instructions, an FPGA becomes the circuit, executing many operations truly in parallel and on every clock cycle.

Where it fits

FPGAs sit between general-purpose processors and fixed-function ASICs: more flexible than an ASIC (you can re-flash the logic) but lower performance-per-watt and higher unit cost, making them ideal for prototyping, low-to-medium volume products, and latency-critical hardware acceleration. They are a natural fit for software-defined radio: an FPGA in the radio front end can do the high-rate DSP — digital filtering, decimation, channelization, and FFTs — at sample rates a CPU could never keep up with, handing GopherTrunk a stream that is already down-converted to manageable channels.

Sources

  1. Field-programmable gate array — Wikipedia, on reconfigurable logic chips and their uses. 

See also