Computing Library › Digital Logic & Circuits
Digital Logic & Circuits

FPGA

A field-programmable gate array is a chip of configurable logic blocks and interconnect that can be programmed to implement arbitrary digital circuits.

What it is

An FPGA is a reprogrammable digital chip. Instead of fixed gates, it contains a grid of configurable logic blocks joined by a programmable interconnect. Loading a configuration bitstream wires these resources into whatever circuit the designer specifies, and the same chip can be reprogrammed for a different circuit.

Lookup tables

Kronos motion — plug field

The core of a logic block is a lookup table, a small memory that stores the truth table of a Boolean function. An n-input LUT can implement any function of n variables by holding its 2^n output values. Paired with a flip-flop, each block provides both combinational and sequential logic.

Interconnect and blocks

A programmable routing fabric connects the logic blocks, and configurable switches steer signals between them. Modern FPGAs also embed dedicated blocks: memory arrays, arithmetic units for multiplication, and clock management, since these are more efficient than building them from LUTs.

Design flow

Designers describe the circuit in a hardware description language, which is synthesized into a netlist, then placed and routed onto the FPGA's resources, producing a bitstream. State machines on FPGAs often use one-hot encoding because flip-flops are plentiful.

Where FPGAs fit

FPGAs suit prototyping, low-to-medium volume products, and applications needing hardware that can change in the field. They trade some speed and density against a fixed-function chip in exchange for flexibility and fast turnaround.