fpgacapZero logo representing an embedded FPGA debug capture core

fpgacapZero: Open-Source FPGA Debug Stack

Open-source, vendor-neutral FPGA debug cores — embedded logic analyzer, runtime I/O, JTAG-to-AXI4, and JTAG-to-UART — with scriptable host tools over the board's existing JTAG port. Apache 2.0 licensed.

View on GitHub All projects & IP cores

What fcapz does

Vendor debug tools (ILA, SignalTap, Reveal, SmartDebug) are usually the fastest way to look inside a design on the bench, but they tie the debug method to one vendor's flow, license tier, and GUI — a poor fit for automation, remote bring-up, and multi-vendor projects.

fpgacapZero (fcapz) is an open-source debug stack compiled into the design itself: four cores driven over JTAG by a set of host tools, so the same captures used interactively on the bench can also run from scripts in CI or manufacturing tests. It uses the existing JTAG header — no extra board pins and no soft CPU required.

Diagram: inside the FPGA, the user design's signals feed four fcapz cores - embedded logic analyzer, embedded I/O, JTAG-to-AXI4, and JTAG-to-UART - which share the JTAG port; on the host, OpenOCD or Xilinx hw_server connects the fcapz Python API, CLI, web frontend, and JSON-RPC server, exporting captures as VCD, CSV, or JSON
Four debug cores inside the fabric, one JTAG cable out — captures and register access from scripts, not just a GUI.

Host tooling

Alongside the RTL, fcapz ships a Python API for automation, a CLI (fcapz) for quick captures, and a web frontend (fcapz-web) backed by a JSON-RPC server for interactive, remote, and shared bring-up. The JTAG transport is OpenOCD or Xilinx hw_server, depending on the board and flow.

Captures export as VCD, CSV, or JSON, so the output goes into standard waveform viewers and diff tools, and scripted captures can be stored and compared across runs — the basis for using fcapz in CI regressions and manufacturing tests.

Where it fits

Resource cost: an 8-bit, 1024-sample ELA fits in roughly 600 LUTs plus half a BRAM. Wider probes and deeper capture memories scale the cost, mostly in BRAM.

Validation status

The cores have native Verilog and VHDL implementations with shared regression coverage. Xilinx 7-series is hardware-validated on an Arty A7-100T with all four cores; the other vendor wrappers are RTL-complete with more limited host and hardware validation, so qualify them on your own board like any other IP. fcapz also does not cover the areas where vendor tools are stronger — post-synthesis debug insertion, timing-aware probe routing, transceiver tools such as IBERT, or debug around proprietary hard IP.

Frequently asked questions

What license does fpgacapZero use?

Apache 2.0. Use it in commercial designs, modify it, and ship it in engineering or manufacturing builds without copyleft obligations.

Does it replace ILA or SignalTap?

No — it complements them. Vendor tools remain the shortest path for deep, device-specific bring-up. fcapz adds a second, scriptable visibility path that is part of the design source and independent of tool license tiers (relevant since the Vivado 2026.1 licensing changes, where designs with more than five ILA debug probes need a paid tier).

Which FPGAs does it support?

Wrappers ship for Xilinx 7-series, UltraScale/UltraScale+, Lattice ECP5, Intel/Altera, Gowin, and Microchip PolarFire. 7-series is validated in hardware on an Arty A7-100T; qualify the rest on your own board like any other IP block.

Can bard0 help integrate it?

Yes. fpgacapZero is maintained by bard0 design, and we help teams plan debug instrumentation into a design — including alongside our IP cores like the MIPI CSI-2 Aggregator and FPGA ISP.


The cores, host tools, and documentation are on GitHub. If you want help integrating debug instrumentation into a design, get in touch.

View on GitHub Contact us

We use analytics and marketing tools to analyze traffic and improve our services. By clicking "Accept", you agree to our use of these tools.