๐Ÿ”ฒ Chip Design Institute
Educational Resources

FPGA Design

Field-Programmable Gate Arrays let you build custom digital hardware without a billion-dollar fab. From blinking LEDs to AI accelerators, FPGAs are the fastest path from idea to working silicon.

What is an FPGA?

A Field-Programmable Gate Array is an integrated circuit that can be configured by the user after manufacturing. Unlike an ASIC (Application-Specific Integrated Circuit), which is hardwired at the factory, an FPGA can be reprogrammed to implement any digital circuit that fits within its resources. The first commercial FPGA was the Xilinx XC2064, released in 1985 with just 64 Configurable Logic Blocks.

Why FPGAs Matter

Where FPGAs Are Used

🎨 An FPGA is like a LEGO board for circuits. Instead of building one fixed thing (like a CPU chip), you can rearrange the pieces to build ANYTHING โ€” a video processor today, a robot brain tomorrow! You can reprogram it over and over. It's like having a chip that can shapeshift into whatever hardware you need.

FPGA Architecture

An FPGA consists of an array of configurable logic blocks (CLBs) connected by a programmable routing network, surrounded by I/O blocks (IOBs) and embedded hard IP blocks.

CLBs
LUTs + Flip-flops
Logic fabric
BRAM
18/36 Kbit blocks
On-chip SRAM
DSP Slices
27x18 multiply-accum
Math acceleration
I/O Blocks
Multi-standard
LVDS, LVCMOS
Transceivers
32-58 Gbps
PCIe, Ethernet
Hard IP
ARM cores, DDR ctrl
Fixed silicon

Major Components

LUTs & CLBs

The Lookup Table (LUT) is the fundamental logic element of an FPGA. It can implement any Boolean function of its inputs by storing the truth table in SRAM cells.

HDL Design
Synthesis
Place & Route
Timing Analysis
Bitstream

How a LUT Works

CLB Structure (Xilinx 7-Series Example)

Intel/Altera: ALMs

Intel FPGAs use Adaptive Logic Modules (ALMs) instead of CLBs. An ALM has an 8-input adaptive LUT that can be configured as two independent functions (up to 6 inputs each, or one function up to 7 inputs), plus 4 registers, adder logic, and register packing. Functionally similar to Xilinx CLBs but with different granularity and flexibility trade-offs.

🔢 A LUT (lookup table) is the brain cell of an FPGA. It's basically a tiny cheat sheet: for every possible combination of inputs, it stores the answer. A 6-input LUT stores 64 answers. By loading different cheat sheets into thousands of LUTs, you can make the FPGA do anything โ€” it's like reprogramming the hardware itself!

Routing

The programmable routing network connects CLBs, BRAMs, DSPs, and I/O blocks. Routing typically consumes 50-80% of FPGA area and is often the bottleneck for timing closure.

Routing Architecture

Timing Closure

Meeting timing constraints means every path from one flip-flop to another (through combinational logic and routing) completes within one clock period. When the longest path is too slow, the designer must: reduce logic depth (pipeline more), guide placement (floorplan constraints), use dedicated resources (carry chains, DSPs), or lower the clock frequency. Timing closure is often the hardest part of FPGA design.

Design Flow

The FPGA design flow transforms HDL code into a bitstream that configures the FPGA.

Steps

Tools: Vivado & Quartus

AMD/Xilinx Vivado

Intel Quartus Prime

Open-Source Toolchain

Common FPGA Projects

Beginner

Intermediate

Advanced

FPGA vs ASIC

Comparison

When to Choose FPGA

When to Choose ASIC

Resources

r/FPGA

Active Reddit community. Tool tips, project showcases, career advice, synthesis gotchas. 60K+ members. Great for beginners asking questions.

Community | Free

Nandland

FPGA tutorials and projects for beginners. Verilog and VHDL examples, FPGA board reviews, Go Board starter kit. Clear explanations.

Tutorials | Free + paid

Yosys + nextpnr

Open-source synthesis and place-and-route. Full open toolchain for Lattice iCE40 and ECP5. No vendor lock-in.

GitHub | Open-source

Digilent

FPGA development boards (Basys 3, Nexys A7, Arty, Cmod). Academic pricing. Xilinx-based boards with extensive tutorials and reference designs.

Hardware | $35-$400

ZipCPU Tutorials

Deep, practical FPGA tutorials. Formal verification, AXI bus, DDR controllers, UART, SPI. One of the best engineering blogs on the internet.

Blog | Free

iCEBreaker FPGA

Open-source FPGA development board using Lattice iCE40UP5K. Designed for the open-source toolchain (Yosys + nextpnr). $70, great for beginners.

Hardware | $70