From rtl-agent-team
Provides SVA coding conventions, SymbiYosys engine guide, 3-round iterative refinement protocol, and formal verification checklists for RTL design.
npx claudepluginhub babyworm/rtl-agent-team --plugin rtl-agent-teamThis skill uses the workspace's default tool permissions.
SVA property files MUST follow the project coding conventions (CLAUDE.md):
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
SVA property files MUST follow the project coding conventions (CLAUDE.md):
i_ prefix for inputs, o_ prefix for outputs (e.g., i_valid, o_ready)clk (single domain) or {domain}_clk (multiple domains, e.g., sys_clk) — NOT clk_irst_n (single domain) or {domain}_rst_n (multiple domains, e.g., sys_rst_n) — NOT rst_nilogic in helper code (NOT reg/wire)no_fifo_overflow, valid_handshake)SVA property extraction must iterate at least 3 times to strengthen assertion quality. Each round builds upon the previous:
cover properties to verify reachability. Check for vacuous assertions.##[1:N] bounded eventually). Verify assume/assert balance (not over-constrained). Add cross-module interface properties if applicable.Each round produces a review note at .rat/scratch/phase-5/sva-iteration-r{N}.md.
pip install sbyosys or from source)i_/o_ prefix, {domain}_clk/{domain}_rst_n)Use assume statements to constrain inputs to legal protocol ranges before proving.
Principle: assume inputs, assert outputs. Inputs are constrained with assume; outputs are verified with assert.
Target properties: no deadlock, no overflow, interface protocol compliance, data integrity.
Assertion clock: @(posedge sys_clk) disable iff (!sys_rst_n) for synchronous properties.
See examples/handshake-assertions.sv for valid/ready handshake SVA patterns.
See examples/fifo-assertions.sv for FIFO overflow/underflow assertion patterns.
SymbiYosys engine guide:
| Engine | Mode | Best For |
|---|---|---|
smtbmc boolector | BMC, prove | General purpose (default) |
smtbmc yices | BMC, prove | Bitvector-heavy, often fastest |
smtbmc z3 | BMC, prove | Arithmetic-heavy designs |
abc pdr | prove only | Unbounded proof via PDR |
See references/sva-patterns.md for complete temporal operator reference and pattern library.
sv2v conversion note:
SymbiYosys relies on Yosys for reading design files. Yosys has limited SystemVerilog support,
so RTL .sv files need Verilog conversion before sby. This is a Layer 2 concern —
formal verification scripts handle sv2v conversion internally. Do NOT run sv2v manually.
SVA property files (formal/*_props.sv) are read with -formal -sv and do NOT need conversion.
# Scripts handle sv2v internally:
sby -f formal/{module}.sby # .sby task script runs sv2v as a pre-step