List of Verilog and SystemVerilog Linting Rules
The table below lists the Verilog and SystemVerilog linting rules that can be checked automatically by Sigasi. The availability of linting rules depends on the license requirements.
ST Linting Rules
ST linting rules are available for all licenses including Sigasi Studio Starter .
Description | ID | |
---|---|---|
![]() | Named and positional port connections cannot be mixed | 5 |
![]() | The packed keyword is required in packed structs and unions | 6 |
![]() | The for loop statement misses mandatory part (Verilog) | 9 |
![]() | Parameter port list cannot be empty | 11 |
![]() | No semicolon expected at this point (Verilog) | 12 |
![]() | Verilog disallows empty assignments of ordered parameters (Verilog) | 13 |
![]() | Named and positional parameter overrides cannot be mixed | 25 |
![]() | Only one default member expression is allowed per assignment pattern | 29 |
![]() | Only variable output ports can have a default value in non-ANSI notation | 33 |
![]() | Only input or variable output ports can have a default value in ANSI notation | 34 |
![]() | Duplicate formal item within the instantiated unit | 37 |
![]() | Excessive number of actuals in ordered notation | 39 |
![]() | Timing controls are not allowed in functions | 46 |
![]() | Net data types must be 4-state | 50 |
![]() | Net data types integral | 51 |
![]() | Empty parameters | 53, 54 |
![]() | Invalid package item | 55 |
![]() | Unexpected preprocessor directive inside design elements | 57 |
![]() | Non-packed member in packed structure | 59 |
![]() | Illegal type in untagged union | 60 |
![]() | Illegal class member access | 61 |
![]() | Declaration not found | 71 |
![]() | Attempted implicit declaration with default nettype none | 73 |
![]() | Invalid enumeration element range format | 74 |
![]() | Range of enumeration element is too large | 75 |
![]() | Invalid construct | 76 |
![]() | Invalid randomize argument | 77 |
![]() | Not a value expression | 78 |
![]() | Type not assignment compatible | 79 |
![]() | Constraint class scope missing | 80 |
![]() | Constraint class with packed dimensions | 81 |
![]() | Ambiguous reference | 93 |
![]() | Duplicate declaration | 95 |
![]() | Invalid UDP initial value | 96 |
![]() | Different file encoding for including file and included file | 102 |
![]() | Missing macro identifier | 103 |
![]() | Undefined macro | 104 |
![]() | Forbidden macro identifier | 105 |
![]() | Missing `endif | 106 |
![]() | Missing identifier following expansion | 107 |
![]() | Failed include | 108 |
![]() | Macro expansion depth limit reached | 109 |
![]() | Inclusion loop | 110 |
![]() | Issues found while expanding macro | 111 |
![]() | Missing macro argument list | 112 |
![]() | Mismatched number of arguments | 113 |
![]() | Unexpected directive operand | 114 |
![]() | Identifier expansion with an invalid sequence of tokens | 115 |
![]() | Unexpected conditional compiler directive | 116 |
![]() | Unknown time literal | 118 |
![]() | Unexpected operand | 119 |
![]() | Missing operand | 120 |
![]() | Unsupported include path | 122 |
![]() | Syntax error | 123, 124 |
![]() | Invalid macro argument list | 125 |
![]() | Unbalanced expression | 126 |
![]() | Unbalanced directive invocation | 127 |
![]() | Incorect port declaration | 135-139 |
![]() | Empty port in ANSI port list | 141 |
XL Linting Rules
XL linting rules require a Sigasi Studio XL or Sigasi Studio XPRT license.
Deprecated Linting Rules
Deprecated linting rules were used by Sigasi at some point, but they’ve been removed or superseded in the most recent version.
Description | Reason | ID |
---|---|---|
A Verilog net type keyword cannot be followed directly by the reg keyword | Superseded by a syntax error | 4 |
Formal item not found within the instantiated unit | Superseded by a syntax error | 36 |
Unexpected trailing , in parameter list | Superseded by the Empty parameters rule (rule 53) | 52 |
Ambiguous design unit reference | Superseded by the more general Ambiguous reference (rule 93) | 72 |