akshitsrijan/verilog-builder-pluggin/iverilog-waveform
- community
Checking that the SKILL.md file is still in the repository.
Simulate an Icarus Verilog module and open its waveform in GTKWave, writing the testbench if there isn't one.
Install
npx vskill@latest install akshitsrijan/verilog-builder-pluggin/iverilog-waveformSKILL.md
Iverilog Waveform
Show the user what their design actually does over time: simulate a module and open a populated GTKWave window. The user does not need to have written a testbench - if the project doesn't have one for the module, the tooling writes it.
Arguments: the user's supplied request (project path/name, optionally which module to look at and/or a description of the stimulus they want)
- Resolve the project the same way
theiverilog-buildskilldoes: a directory
containing .ivproj.json (or the manifest itself) is used directly; a bare name is matched via list_projects; if it's empty or ambiguous, call list_projects and ask.
- Decide which module. If
the user's supplied requestnames one, use it. Otherwise use the
project's top and say which one you picked. Read that module's source so you can describe its ports, and note whether it has a clk/clock port - that's what makes it sequential rather than combinational, and it changes what the stimulus looks like.
- Handle stimulus. The default is auto-generated, and for a beginner that is usually
the right answer - say so rather than making them invent vectors.
- If they described the stimulus they want (e.g. "reset for 4 cycles then count to 15",
"cycle through all 4 select values"), write that testbench yourself with the Write tool under <project>/tb/tb_<module>.v, show it to them, and pass its path as testbench.
- Otherwise let
generate_waveform_for_modulewrite it. It parses the module's ports
and produces: a 100 MHz clock if there's a clock port, a reset pulse held for four cycles if there's a reset, an exhaustive sweep of every input combination for a small combinational design, or a counted clocked run for a sequential one - plus the $dumpfile/$dumpvars/$finish a VCD needs.
- Call `generate_waveform_for_module` with
project_pathandmodule. It does the
whole chain in one call: testbench -> compile -> vvp -> VCD -> GTKWave save file -> viewer. Use cycles to run a sequential design longer than the default 32 clocks. Pass open_viewer=false on a machine with no display.
To write the testbench without simulating - so the user can read or edit it first - call ensure_waveform_testbench on its own, show them the file, then run generate_waveform_for_module with that testbench.
- Report the result.
- On failure with
diagnostics, show them asfile:line: severity: messageand
explain what iverilog is objecting to. Don't blindly regenerate the testbench; if the design is what's broken, point at the iverilog-fix skill.
- On success, say whether the testbench was generated or already existed
(generated_testbench), give the vcd and gtkw paths, and relay any sim_stdout (that's the design's own $display output).
- Describe the waveform in words too - don't rely on the user seeing the window.
Use signals (or list_waveform_signals on the VCD) to name what is being shown, and tie it back to what the design should do: "count runs 0->15 and wraps, one step per rising clock edge while en is high".
- If
viewer.launchedis false, the waveform is still saved. Give them the exact
command to open it later: gtkwave <vcd> <gtkw>.
- To look again later without re-simulating, call
open_waveform_viewerwith the
VCD (and the .gtkw, so the signals come back pre-added). To try different stimulus, edit the testbench under <project>/tb/ and re-run step 4 - the project itself never needs touching.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingicarus/hermes/skills/iverilog-waveform/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/akshitsrijan/verilog-builder-pluggin/iverilog-waveform)