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,$stablefor edge detection - •Apply
disable ifffor 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