skills/council/foundry/verilator-simulation/SKILL.md
Use when planning or reviewing Verilator-based simulation workflows for SystemVerilog designs. Covers lint analysis, simulation setup, trace/waveform debugging, coverage-driven verification, and C++ co-simulation. Do not use for commercial EDA tools (use verification-methodology) or RTL design flow (use chip-design-flow).
npx skillsauth add dtsong/my-claude-setup verilator-simulationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Guide Verilator-specific simulation workflows for SystemVerilog designs, from static lint analysis through simulation execution, waveform debugging, coverage closure, and C++ co-simulation integration.
Reviews RTL source, testbenches, and Makefile/build infrastructure. Does not execute Verilator or modify design files. Does not cover commercial simulators (VCS, Questa) or UVM testbench architecture — hand off to verification-methodology for those.
No user-provided values are used in commands or file paths. All inputs are treated as read-only analysis targets.
--lint-only -Wall --timing -sv flags./* verilator lint_off WARNING */ pragmas.-Wall) from testbench lint (relaxed, -Wno-STMTDLY -Wno-INITIALDLY).--binary --timing -sv --assert as baseline flags.--assert is present — without it, all SVA assertions are silently ignored.--x-assign unique --x-initial unique for uninitialized register randomization.--top-module.-j 0 for parallel C++ compilation and --Mdir for separate build directories when running multiple configurations.--trace-fst --trace-structs over --trace (VCD) — FST is ~10x smaller and preserves struct field names.$dumpfile/$dumpvars or $test$plusargs("DUMP_VCD") conditional dump./* verilator tracing_off */ pragmas for large designs.brew install --cask gtkwave) as the standard FST/VCD viewer.--coverage flag (line + toggle coverage).verilator_coverage --annotate <dir> coverage.dat for annotated source.--cc mode, bind C functions via import "DPI-C" in SystemVerilog.verilated.h, instantiate Vtop, step with eval().Verilated::traceEverOn(true) before model construction.VL_PRINTF and Verilated::debug(level).assert property basic forms work, complex sequences may not.--x-assign unique to catch X-propagation bugs that 2-state hides.--timing required for #delay and timescale — without it, clock generation fails.--bbox-unsup blackboxes unsupported constructs instead of erroring (use cautiously).Compaction resilience: If context was lost, re-read the Inputs section for the design under review, check the Progress Checklist, then resume from the earliest incomplete step.
| Check Area | Status | Findings | Actions | |-----------|--------|----------|---------| | Lint (design) | ... | ... | ... | | Lint (testbench) | ... | ... | ... | | Simulation flags | ... | ... | ... | | Assertions enabled | ... | ... | ... | | Trace configuration | ... | ... | ... | | Coverage setup | ... | ... | ... | | X-safety | ... | ... | ... |
-Wall (no unsuppressed warnings)--assert flag present in all simulation targets--x-assign unique used for X-safetydevelopment
Use when the council needs to surface organizational knowledge buried across multiple internal sources (wikis, design docs, ADRs, past tickets, postmortems, chat archives, code repos). Plans where to look, what to cross-reference, and how to synthesize findings into evidence the council can act on. Do not use for external market research (use competitive-analysis), library evaluation (use library-evaluation), or technology trend assessment (use technology-radar).
testing
Use to convert a Word .docx file to PDF and/or verify its page count. Triggers on: converting docx to pdf, rendering a document, checking how many pages a docx produces, or asserting a page-count constraint (e.g. a resume must stay 2 pages). Wraps LibreOffice headless conversion.
development
Security audit checklist for web applications. Use when reviewing, auditing, or hardening a web app's security posture. Covers rate limiting, auth headers, IP blocking, CORS, security middleware, input validation, file upload limits, ORM usage, and password hashing. Triggers on requests like "review security", "harden this app", "security audit", "check for vulnerabilities", or when building/reviewing API endpoints.
development
Interactive wizard to craft effective prompts using Claude Code best practices