formal-verification

Formal property verification and model checking skill for FPGA designs

509 stars

Best use case

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

Formal property verification and model checking skill for FPGA designs

Teams using formal-verification 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/formal-verification/SKILL.md --create-dirs "https://raw.githubusercontent.com/a5c-ai/babysitter/main/library/specializations/fpga-programming/skills/formal-verification/SKILL.md"

Manual Installation

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

How formal-verification Compares

Feature / Agentformal-verificationStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Formal property verification and model checking skill for FPGA designs

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

# Formal Verification Skill

## Overview

Expert skill for formal property verification and model checking, enabling exhaustive verification of FPGA design properties without simulation.

## Capabilities

- Write properties for formal verification
- Configure formal tool constraints
- Analyze formal counterexamples
- Apply bounded model checking
- Configure cover and assume directives
- Debug formal failures
- Integrate formal with simulation flows
- Support JasperGold and VC Formal flows

## Target Processes

- sva-development.js
- cdc-design.js
- constrained-random-verification.js

## Usage Guidelines

### Property Types
- **assert property**: Must always hold
- **assume property**: Environment constraints
- **cover property**: Reachability goals
- **restrict property**: Strong constraints

### Formal Approaches
- **Bounded Model Checking**: Check properties up to N cycles
- **Unbounded Proof**: Complete verification when possible
- **Induction**: K-induction for liveness properties
- **Abstraction**: Reduce complexity for scalability

### Writing Effective Properties
```systemverilog
// Safety property
assert property (@(posedge clk) disable iff (rst)
  req |-> ##[1:5] gnt);

// Liveness property (bounded)
assert property (@(posedge clk) disable iff (rst)
  req |-> s_eventually gnt);

// Assumption for formal
assume property (@(posedge clk)
  $onehot0(req_vec));
```

### Constraint Development
- Model input protocol constraints
- Constrain unrealistic scenarios
- Avoid over-constraining
- Use helper logic for complex constraints
- Document constraint rationale

### Counterexample Analysis
- Load counterexample trace
- Identify root cause
- Distinguish bug vs. missing constraint
- Create regression test from counterexample
- Update constraints or fix RTL

### Tool Integration
- Configure engine selection
- Set proof bounds appropriately
- Use proof acceleration techniques
- Integrate with regression flows
- Archive proof results

## Dependencies

- Formal tool awareness (JasperGold, VC Formal)
- SVA expertise
- Model checking theory knowledge

Related Skills

formal-logic-analysis

509
from a5c-ai/babysitter

Apply propositional, predicate, and modal logic systems to formalize arguments, construct proofs, and evaluate validity using symbolic notation and truth tables

formal-logic-reasoner

509
from a5c-ai/babysitter

Skill for formal logical reasoning and argument validation

requirements-verification

509
from a5c-ai/babysitter

Skill for aerospace requirements verification and validation matrix management

verification

509
from a5c-ai/babysitter

Verification-before-completion discipline ensuring all success criteria are met, tests pass, and reviews complete before declaring work done.

Completion Verification

509
from a5c-ai/babysitter

Verify all phases are complete with weighted quality scoring before allowing session exit.

verification-suite

509
from a5c-ai/babysitter

Plan structure validation, phase completeness checks, reference integrity verification, and artifact existence confirmation. Provides the structured verification layer ensuring GSD artifacts are well-formed and complete.

verification-before-completion

509
from a5c-ai/babysitter

Evidence requirement enforcement ensuring all claims are backed by logs, test results, or exit codes. Zero = success, non-zero = failure. No guessing allowed.

process-builder

509
from a5c-ai/babysitter

Scaffold new babysitter process definitions following SDK patterns, proper structure, and best practices. Guides the 3-phase workflow from research to implementation.

Workflow & Productivity

babysitter

509
from a5c-ai/babysitter

Orchestrate via @babysitter. Use this skill when asked to babysit a run, orchestrate a process or whenever it is called explicitly. (babysit, babysitter, orchestrate, orchestrate a run, workflow, etc.)

yolo

509
from a5c-ai/babysitter

Run Babysitter autonomously with minimal manual interruption.

user-install

509
from a5c-ai/babysitter

Install the user-level Babysitter Codex setup.

team-install

509
from a5c-ai/babysitter

Install the team-pinned Babysitter Codex workspace setup.