fpga.loveHomeNewsIssuesVideosToolsWiki
Home / Issues / Issue 202609 / Beginner Academy
Beginner Academy

From Simulation to Board: Three Tools for FPGA Debugging

Editorial Board · Issue 202609 · Open-Source Ecosystem and Frontier Directions

Debugging takes more than half of FPGA development time: simulation, logic analyzers, and board-level verification working together locate problems fast instead of guessing.

1. Tool One: Simulation First

testbench is the most cost-effective debugging method. Choose any of iverilog/Verilator/Vivado Simulator; write “stimulus + assertions” tests — don’t just look at waveforms, use assertions to auto-check protocol timing. Coverage thinking: code coverage (every line/branch exercised) + functional coverage (key scenarios tested).

2. Tool Two: On-Chip Logic Analyzer

Simulation’s blind spot is cross-clock and real interfaces (DDR, Ethernet PHY timing). Use on-chip logic analyzers (Vivado ILA / ChipScope / SignalTap) to capture real signals. Key point: reserve debug probe signals in the design in advance, avoiding “board in hand but no probe to tap.”

3. Tool Three: Board-Level Verification Combo

  • Print state machines and key variables over UART/network;
  • LEDs as the simplest status indicators (color-coded boot, handshake, error);
  • Hardware loopback tests: connect TX to RX first to verify the path before bringing in real peripherals.

4. Five-Step Debug Flow

Reproduce → isolate → locate → fix → regress. Worst practice is “patch and pray”: change one thing at a time and regress all cases after each change. High-frequency causes of “simulation passes but board fails” concentrate in asynchronous handling, reset timing, and unconstrained clocks — check these three first.

← Previous article · Yosys + nextpnr: Full Open-Source Synthesis and Place & Route in PracticeNext article · Fudan Micro FPAI: From FPGA to AI Scenario Enabler →
← Back to this issue