babyworm/rtl-agent-team/rtl-p5s-sva-policy

Claude Code and agent skill by babyworm/rtl-agent-team

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Internal reference: rtl p5s sva policy (agent-loaded; do not invoke).

Install

npx vskill@latest install babyworm/rtl-agent-team/rtl-p5s-sva-policy

SKILL.md

SVA / Formal Verification Policy

SVA Coding Conventions

SVA property files MUST follow the project coding conventions (CLAUDE.md):

  • Signal references: i_ prefix for inputs, o_ prefix for outputs (e.g., i_valid, o_ready)
  • Clock references: clk (single domain) or {domain}_clk (multiple domains, e.g., sys_clk) — NOT clk_i
  • Reset references: rst_n (single domain) or {domain}_rst_n (multiple domains, e.g., sys_rst_n) — NOT rst_ni
  • Use logic in helper code (NOT reg/wire)
  • Assertion labels: descriptive snake_case (e.g., no_fifo_overflow, valid_handshake)

SVA Property Iterative Refinement (minimum 3 rounds)

SVA property extraction must iterate at least 3 times to strengthen assertion quality. Each round builds upon the previous:

  • Round 1 (Draft): Extract initial properties from RTL and uarch spec. Focus on safety (no overflow, no deadlock) and protocol (handshake) properties.
  • Round 2 (Strengthen): Review Round 1 properties for completeness. Add missing edge cases: reset behavior, boundary conditions, back-to-back transactions, error paths. Add cover properties to verify reachability. Check for vacuous assertions.
  • Round 3 (Harden): Cross-check against spec requirements. Add liveness properties (##[1:N] bounded eventually). Verify assume/assert balance (not over-constrained). Add cross-module interface properties if applicable.
  • Additional rounds: Continue if coverage of spec requirements < 100% or if new RTL paths are discovered.

Each round produces a review note at .rat/scratch/phase-5/sva-iteration-r{N}.md.

Escalation & Stop Conditions

  • SymbiYosys not installed → halt and run /rtl-agent-team:rat-setup; use the official OSS CAD Suite or source installation guide (https://yosyshq.readthedocs.io/projects/sby/en/latest/install.html)
  • Property timeout (>200 depth) → mark as "timeout" in formal_verify.json, recommend simulation
  • Counterexample found → report to user with waveform trace before any RTL fix
  • SVA signal names do not match RTL ports → sva-extractor must fix before running formal

Final Checklist

  • [ ] formal/*_props.sv written with meaningful concurrent SVA properties for commercial formal tools
  • [ ] formal/*_formal_harness.sv written with Yosys-compatible procedural immediate checks for OSS SBY
  • [ ] All SVA signal references match RTL port names (i_/o_ prefix, {domain}_clk/{domain}_rst_n)
  • [ ] formal/formal_verify_{module}.json produced with task-level result status
  • [ ] No "failed" status without counterexample attached
  • [ ] Timeouts documented and flagged for simulation fallback

Assume/Assert Principle and Engine Guide

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 {plugin_root}/skills/rtl-p5s-sva-check/examples/handshake-assertions.sv for valid/ready handshake SVA patterns. See {plugin_root}/skills/rtl-p5s-sva-check/examples/fifo-assertions.sv for FIFO overflow/underflow assertion patterns.

SymbiYosys engine guide:

EngineModeBest For
smtbmc boolectorBMC, proveGeneral purpose (default)
smtbmc yicesBMC, proveBitvector-heavy, often fastest
smtbmc z3BMC, proveArithmetic-heavy designs
abc pdrprove onlyUnbounded proof via PDR

See {plugin_root}/skills/rtl-p5s-sva-check/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 DUT RTL .sv files need explicit Verilog conversion before sby. Run sv2v on DUT RTL only:

bash
sv2v --write=formal/{module}_v2v.v rtl/{module}/*.sv
test -s formal/{module}_v2v.v
sby -f formal/{module}.sby bmc
sby -f formal/{module}.sby prove
sby -f formal/{module}.sby cover

Do NOT run sv2v on full concurrent SVA property files (formal/*_props.sv); sv2v can remove assertions/covers. For OSS SBY, generate a dedicated formal/*_formal_harness.sv from yosys-formal-harness-template.sv and use procedural immediate assert(...), assume(...), and cover(...) in that harness. Keep concurrent SVA assets as commercial-formal input.

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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/babyworm/rtl-agent-team/rtl-p5s-sva-policy/badge)](https://verified-skill.com/skills/babyworm/rtl-agent-team/rtl-p5s-sva-policy)

Something wrong with this skill or its page? Tell us.