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 planning implementation steps, deciding commit format, or structuring development approach. Provides brainstorm-plan-implement flow with conventional commits. Triggers on 'how should I approach this', 'commit format'.
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
Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
development
React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.