The Simple Definition
An FPGA (Field-Programmable Gate Array) is a chip that comes blank from the factory — a sea of programmable logic blocks and wires — that you can configure to implement any digital circuit you design.
Unlike a CPU (which is a fixed chip that executes software instructions) or an ASIC (which is permanently wired for one job), an FPGA can be reprogrammed thousands of times. You describe the circuit you want in code, and the FPGA physically becomes that circuit.
An FPGA is a blank chip made of thousands of tiny reconfigurable logic blocks — you write code to wire them together into any digital circuit you want, and you can change your mind tomorrow.
Think of an FPGA like a whiteboard covered in LEGO connectors. The LEGO bricks (logic blocks) are all there — you just snap them together in the pattern you want. Tomorrow you pull them apart and build something completely different. An ASIC is like a plastic toy moulded in one fixed shape forever. A CPU is like a Swiss Army knife — good at many things, master of none.
FPGA vs ASIC vs Microcontroller
These three options come up whenever an engineer needs to implement custom digital logic. Here is how they compare:
- Fixed hardware, runs software
- Very easy to program (C, Python)
- Low cost, widely available
- Sequential execution — one instruction at a time
- Best for: IoT sensors, motor control, simple products
- Example: Arduino, STM32, ESP32
- Reconfigurable hardware — you define the circuit
- Steeper learning curve (HDL: Verilog/VHDL)
- Moderate cost, no NRE fee
- True parallelism — all logic runs simultaneously
- Best for: prototyping, comms, signal processing, low-volume custom logic
- Example: Xilinx Artix, Intel Cyclone
- Permanent custom silicon — cannot change
- Very complex to design (months to years)
- High NRE cost ($1M–$100M+), cheap per unit at volume
- Fastest and most power-efficient option
- Best for: smartphones, CPUs, GPUs, mass-market products
- Example: Apple M4, NVIDIA H100
The FPGA sits between the flexibility of software and the performance of dedicated silicon. It is slower and less power-efficient than an ASIC, but infinitely more flexible — and it needs no expensive manufacturing process to change.
What's Inside an FPGA?
An FPGA is not empty space — it is packed with specialised hardware blocks. You configure how they connect, not what they are. Here are the key components:
How Is an FPGA Programmed?
Programming an FPGA is fundamentally different from programming a CPU. You are not writing instructions — you are describing a circuit. The flow looks like this:
Most FPGAs store their configuration in volatile SRAM — they lose it when powered off. A small external flash chip holds the bitstream and reprograms the FPGA every time it boots. This also means you can update an FPGA's "firmware" in the field by writing a new bitstream to that flash chip.
What Are FPGAs Used For?
FPGAs thrive wherever you need custom hardware logic, real-time performance, and the ability to update the design after deployment:
FPGA vs ASIC — When to Use Which
Both implement the same digital logic — the choice is about volume, performance requirements, and how much the design might change:
Use FPGA when...
- Volume is low (under ~50,000 units)
- Design may need updates after deployment
- Prototyping before ASIC tape-out
- Time to market is critical (no 6-month fab wait)
- Non-recurring engineering (NRE) budget is limited
- Standards may evolve (5G, networking protocols)
Use ASIC when...
- Volume is very high (millions of units)
- Maximum power efficiency is required (mobile, IoT)
- Absolute maximum performance needed
- Design is frozen and well-validated
- Die size matters (ASIC is 10–30x more dense)
- Example: smartphone SoC, GPU, network switch chip
Below ~50K units/year: FPGA wins on total cost. Above ~500K units/year: ASIC NRE is amortised and cost-per-unit drops dramatically. In between: it depends on your margins, update requirements, and performance needs.
Who Makes FPGAs?
The FPGA market is dominated by two companies that have both been acquired by chip giants:
There is also a growing open-source ecosystem — the IceStorm toolchain (for Lattice iCE40) and nextpnr give hobbyists a fully open-source FPGA design flow with no proprietary vendor tools required.
Frequently Asked Questions
What does FPGA stand for?
Field-Programmable Gate Array. "Field-programmable" means configurable after manufacture — in the field, by the end user. "Gate array" describes the underlying structure: a grid of logic gates and interconnects. The concept was invented by Ross Freeman and Bernard Vonderschmitt at Xilinx in 1984.
What is the difference between an FPGA and an ASIC?
An ASIC is custom silicon fabricated for one specific purpose — its logic is permanently etched in metal layers during manufacturing and cannot be changed. It is fast, power-efficient, and cheap per unit at high volume, but costs millions to design and fabricate.
An FPGA uses programmable SRAM cells to configure its logic and routing after manufacture. It is slower (~3–5x) and less efficient (~10x) than an ASIC for the same function, but can be reprogrammed infinitely, requires no fab NRE cost, and ships immediately. Most ASICs are validated on FPGAs before tape-out.
What language do you use to program an FPGA?
The standard languages are Verilog and VHDL — Hardware Description Languages (HDLs). You describe circuit behaviour, not a sequence of instructions. SystemVerilog (a superset of Verilog) is the modern industry standard.
High-Level Synthesis (HLS) tools like Xilinx Vitis HLS and Intel HLS Compiler allow you to write in C/C++ and automatically generate RTL, though with less precise control over the resulting hardware.
What is a LUT and why does it matter?
A LUT (Look-Up Table) is the basic logic cell of an FPGA. A 6-input LUT stores 64 bits (2⁶) — one output value for every possible combination of 6 inputs. By programming those 64 bits, you can implement any Boolean function of up to 6 inputs: AND, OR, XOR, a full adder, a multiplexer, anything.
When vendor datasheets say "1.2 million logic cells," they are essentially counting LUT-FF pairs. More LUTs = more complex designs you can fit on the chip.
Is an FPGA faster than a CPU?
For specific parallel tasks, yes — dramatically faster. An FPGA implements logic as physical gates running all simultaneously. There is no fetch-decode-execute cycle, no OS scheduling, no cache misses, and no branch mispredictions.
For example, a custom network packet parser on an FPGA can process frames at wire speed (100 Gb/s) with sub-microsecond latency — a task a CPU server farm would struggle with. For general sequential tasks (browsing the web, running a database), a CPU wins comfortably.
Can an FPGA run an operating system?
Not the FPGA fabric itself — but SoC FPGAs (like Xilinx Zynq or Intel Cyclone V SoC) embed hardened ARM Cortex-A cores alongside the FPGA fabric on the same chip. The ARM cores run Linux or any RTOS normally, while the FPGA fabric handles the real-time hardware acceleration. This combination is extremely common in industrial, communications, and defence systems.
How long does it take to learn FPGA design?
With a digital electronics background, you can write simple Verilog and synthesise to an FPGA board in a few days. Building a competent understanding of timing closure, pipelining, and resource optimisation takes 3–6 months of hands-on practice. Mastering advanced topics (CDC, complex protocols, high-speed interfaces) takes years — it is a deep field.
Good starting points: Xilinx Artix-7 Basys 3 board (~$150), open-source iCE40 boards (~$40), or EDA Playground online simulator.
What is a bitstream?
A bitstream is the binary configuration file generated at the end of the FPGA design flow (after synthesis, place, and route). It encodes: which LUT truth tables are programmed, which routing switches are open or closed, and how all the I/O and clock resources are configured. Downloading the bitstream to the FPGA "programs" it — the chip becomes your circuit. On most FPGAs the bitstream is stored in volatile SRAM, so an external flash chip re-programs the device on every power-up.