SVALint β SystemVerilog Assertion LinterΒΆ
SVALint is an open-source linter for SystemVerilog Assertions (SVA), developed by AsFigo Technologies as part of the BYOL (Build Your Own Linter) framework.
It enforces SVA coding best practices β covering property and sequence naming conventions, assertion labels, operator usage, performance rules, and formal-argument hygiene β helping verification teams write robust, simulation- and formal-ready assertion code from day one.
python bin/svalint.py -t <your_file.sv>
Rule Reference
- Lint Rules
- ASSERT_NAMING
- ASSERT_MISSING_LABEL
- ASSUME_NAMING
- COVER_NAMING
- FUNC_NO_NON_OLAP_COVER
- FUNC_NO_OLAP_COVER
- FUNC_MISSING_FAIL_ABLK
- FUNC_AVOID_$_RANGE_IN_CONSEQ_A
- DBG_MISS_END_LBL_PROP
- DBG_MISS_END_LBL_SEQ
- NO_AA_EXISTS_SVA
- FUNC_AVOID_DOLLAR_TIME
- STYLE_AVOID_FIRST_MATCH_A
- COMPAT_NO_POP_BACK_SVA
- COMPAT_NO_POP_FRONT_SVA
- STYLE_AVOID_RANGE_IN_ANT_A
- REUSE_NO_TIMELITERAL
- STYLE_AVOID_WITHIN_A
- PERF_MISSING_IMPLICATION_OPER
- PERF_NO_LARGE_DELAY
- PERF_PASS_ACT_BLK
- PERF_AVOID_$_RANGE_IN_ANT_A
- PROP_NAMING
- REUSE_NO_ONE_LINER_FAIL_ABLK
- DBG_USE_SIMPLE_EXPR_IN_CONSEQ
- DELAY_BEFORE_ROSE
- FUNC_AVOID_EV_ALW
- FUNC_AVOID_EV_S_ALW
- FUNC_AVOID_S_EV_ALW
- FUNC_AVOID_S_EV_S_ALW
- FUNC_AVOID_WEAK_EVENTUALLY
- FUNC_AVOID_BOUNDED_NEXTTIME
- FUNC_AVOID_NEXTTIME
- FUNC_AVOID_WEAK_UNTIL
- FUNC_AVOID_WEAK_UNTIL_WITH
- NO_IMPLICATION_PROPERTY
- NO_COVER_SEQ
- PROP_UNUSED_FORMAL_ARG
- PROP_UNUSED_LOCAL_VAR
- SEQ_UNUSED_FORMAL_ARG
- DELAY_BEFORE_CHANGED
- DELAY_BEFORE_FELL
- STYLE_NO_CLK_WITHOUT_EDGE
- STYLE_NO_IMM_SVA_IN_ALWAYS_COMB
- STYLE_NO_MIXED_IMPL_OPER
- STYLE_NO_NESTED_IMPL
- PERF_NO_UB_REPEAT_IN_ANT
- PROP_LOCAL_VAR_NOT_USED_IN_CONSEQ
- SEQ_UNUSED_LOCAL_VAR
- STYLE_THROUGHOUT_RHS_BOOL
- PROP_UNUSED_PROPERTY
- SEQ_UNUSED_SEQUENCE