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