FPGA_ROADMAP · CNN → Virtex-7
Zero hardware knowledge → Virtex-7 deployment

Learn FPGAs the way you'd actually need to, to ship a CNN descriptor onto real silicon.

No HLS, no Vivado, no AXI on day one. Every phase below is a wire you need to understand before the next one makes sense.

A roadmap for going from zero hardware knowledge to Virtex-7 deployment — CNN feature extractor deployment for a real-time image matching pipeline, targeting inference under 10 seconds.

The signal chain — 13 phases, in order
A CPU runs instructions one at a time. An FPGA becomes the circuit you need.
Every CNN weight and pixel value eventually becomes a pattern of on/off signals.
Everything — adders, memory, your whole CNN pipeline — is gates wired together.
Simulation won't warn you. Only real hardware misbehaves when timing is violated.
You're not writing instructions. You're describing wires and boxes that all exist at once.
Learn the pre-built resources inside a real chip so you're not reinventing everything from raw gates.
FPGAs are bad at decimals. You fake them with integers and just remember where the point is.
You can't fit a whole image in the FPGA. You stream pixels and remember just a sliding window.
Line buffer + DSP48 MACs + fixed-point math + a free comparator = one conv layer.
Vivado just takes your Verilog description and turns it into a real, working chip configuration.
Write something that looks like C++, get real Verilog circuitry out the other end.
A standard plug shape so your CNN accelerator can talk to the ARM processor next to it.
Simulation proves your logic is right. Only the real chip can prove your timing and wiring are.
Core concepts you'll lean on constantly
HW-01

LUT

The general-purpose programmable logic block an FPGA is built from.

HW-02

Flip-flop

1-bit memory that updates only on the clock edge — the atom of hardware memory.

HW-03

BRAM

On-chip memory blocks — where CNN weights and feature maps will live.

HW-04

DSP48

Dedicated multiply-accumulate hardware — the physical engine behind every convolution.

NUM-01

Two's complement

How negative CNN weights are actually stored in binary.

NUM-02

Fixed-point (Q-format)

How FPGAs fake decimal points using plain integers.

HDL-01

Combinational vs sequential

always @(*) (instant) vs always @(posedge clk) (clocked) — the #1 beginner trap.

HDL-02

Blocking vs non-blocking

= executes in order; <= updates all together at the clock edge.

ARCH-01

Line buffer

Streams an image row-by-row, storing only the rows needed for the current sliding window.

ARCH-02

Pipelining

Breaking a long computation into stages so one result comes out every clock tick.

TIME-01

Critical path

The slowest chain of logic between two flip-flops — sets your max clock speed.

SYS-01

AXI

The standard interface convention connecting your CNN core to the ARM processor.