sva-assertions

Specialized skill for creating and debugging SystemVerilog assertions for FPGA verification

509 stars

Best use case

sva-assertions is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Specialized skill for creating and debugging SystemVerilog assertions for FPGA verification

Teams using sva-assertions should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/sva-assertions/SKILL.md --create-dirs "https://raw.githubusercontent.com/a5c-ai/babysitter/main/library/specializations/fpga-programming/skills/sva-assertions/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/sva-assertions/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How sva-assertions Compares

Feature / Agentsva-assertionsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Specialized skill for creating and debugging SystemVerilog assertions for FPGA verification

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# SVA Assertions Skill

## Overview

Expert skill for SystemVerilog Assertions (SVA) development, enabling formal property specification and verification for FPGA designs.

## Capabilities

- Write concurrent and immediate assertions
- Create property specifications and sequences
- Implement coverage properties (cover property)
- Create assume properties for formal verification
- Debug assertion failures with cause analysis
- Generate assertion bind files
- Optimize assertion performance
- Integrate assertions with formal tools

## Target Processes

- sva-development.js
- constrained-random-verification.js
- uvm-testbench.js
- verilog-systemverilog-design.js

## Usage Guidelines

### Assertion Types
- **Immediate Assertions**: Use for procedural checks within always blocks
- **Concurrent Assertions**: Use for temporal properties across clock cycles
- **Cover Properties**: Use for functional coverage collection
- **Assume Properties**: Use for formal verification constraints

### Best Practices
- Use `$rose`, `$fell`, `$stable` for edge detection
- Apply `disable iff` for reset handling
- Use `|->` for overlapping implication, `|=>` for non-overlapping
- Create reusable sequences for common patterns
- Add meaningful labels to all assertions

### Performance Optimization
- Limit sequence length for simulation efficiency
- Use local variables in sequences sparingly
- Group related assertions in bind files
- Consider assertion synthesis for emulation

## Dependencies

- SVA parser
- Formal verification tool awareness
- IEEE 1800-2017 SystemVerilog standard knowledge