hardware-debug-waveform

Map VCD/FST waveform evidence to Chisel/Scala logic and RTL ownership.

28|4|Updated Mar 29, 2026
One-click install
npx skills add https://github.com/trace1729/hardware-debug-skill --skill hardware-debug-waveform
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: hardware-debug-waveform
Source: https://github.com/trace1729/hardware-debug-skill/tree/main
Command: npx skills add https://github.com/trace1729/hardware-debug-skill --skill hardware-debug-waveform

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

When hardware behavior is wrong in simulation, it’s hard for an LLM (and humans) to connect waveform observations back to the right Chisel/Scala sources and RTL ownership. This Skill bridges waveform evidence, emitted RTL hierarchy/ownership, and Scala-first root-cause analysis so debugging is faster and more precise.

Core Features & Use Cases

  • Waveform evidence to debug packets: Build time-window “debug packets” from large VCD/FST files, optionally restricted by a focus scope, to surface only relevant signal changes.
  • Exact RTL ownership when emitted RTL is available: Parse emitted SystemVerilog (VCD/FST + build/rtl) to recover exact hierarchical signal owners using rtl_authority.sqlite3.
  • Scala/Chisel-first root-cause support: Use module_type, local_signal_name, and hierarchical matches to locate the best Scala/Chisel candidates and reason about handshake, backpressure, stalls, and state transitions.

Quick Start

Run inspect-inputs by calling: hw debugging waveform inspect-inputs with the required waveform path and the XiangShan-style Scala/Chisel source root.

Frequently Asked Questions about hardware-debug-waveform

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I trace a hardware bug from a VCD waveform back to the Chisel source?

To map VCD waveform evidence to Chisel logic, extract time-window debug packets from the waveform and use hierarchical signal names to locate the corresponding Scala source. This bridges simulation evidence directly to the root cause.

How does waveform analysis find handshake and backpressure issues in RTL?

Waveform analysis finds handshake and backpressure issues by summarizing time-window signal changes and querying point lookups for signal values. It traces state transitions and stalls to locate the exact RTL hierarchy.

Do I need emitted SystemVerilog files to debug FST waveform signal ownership?

You do not need emitted SystemVerilog to debug FST waveforms, but providing `build/rtl` enables the tool to parse it and build an exact RTL ownership database. Without it, you can still perform Scala-first root-cause analysis.

Can I use Python to read VCD files and generate structured debug packets?

Yes, you can use Python to read VCD files and generate structured debug packets using the wellen or pywellen libraries. This processes large waveforms into cached, two-level query results for LLM assisted debugging.

What is the best way to triage performance issues using large VCD or FST files?

The best way to triage performance issues using large VCD or FST files is to build restricted time-window debug packets that surface only relevant signal changes. This filters out noise and highlights the exact handshake or state transition failures.