formal-verification

Solid

Formal property verification and model checking skill for FPGA designs

AI & Automation 814 stars 53 forks Updated today MIT

Install

View on GitHub

Quality Score: 95/100

Stars 20%
97
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# 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 ove...

Details

Author
a5c-ai
Repository
a5c-ai/babysitter
Created
4 months ago
Last Updated
today
Language
JavaScript
License
MIT

Related Skills