List of VHDL Linting Rules
The table below lists the VHDL 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 | |
---|---|---|
![]() | Positional associations order | 2 |
![]() | ‘Others’ position in associations | 3 |
![]() | Multiple others in associations | 4 |
![]() | Input port cannot be assigned | 5 |
![]() | Subprogram parameter cannot be assigned | 6 |
![]() | Constant cannot be assigned | 7 |
![]() | ‘others’ has to be the last alternative in a case statement | 9 |
![]() | Only one ‘others’ choice is allowed | 10 |
![]() | Case statement does not cover all cases | 11 |
![]() | Case alternative contains duplicate choices | 14 |
![]() | C style equality operator | 15 |
![]() | C style inequality operator | 16 |
![]() | Incomplete associations | 17 |
![]() | Duplicate associations | 18 |
![]() | Invalid character literal | 19 |
![]() | Function declarations in a package cannot have a function body | 21 |
![]() | Missing function body | 22 |
![]() | Invalid bit string literal | 23 |
![]() | Duplicate named associations | 27 |
![]() | Duplicate ‘all’ -style binding for component declaration | 28 |
![]() | Duplicate component instantiation binding | 29 |
![]() | Duplicate component instantiation binding | 30 |
![]() | Incorrect number of associations found in mapping | 32 |
![]() | A positional association cannot follow after a named association | 33 |
![]() | A signal cannot be the target of a variable assignment | 34 |
![]() | A port cannot be the target of a variable assignment | 35 |
![]() | A variable cannot be the target of a signal assignment | 36 |
![]() | A process with a sensitivity list cannot contain any wait statements | 39 |
![]() | Procedure declarations in a package cannot have a procedure body | 40 |
![]() | Procedure declarations in a package body must have a procedure body | 41 |
![]() | Generate statements must have a label | 42 |
![]() | Instantiation statements must have a label | 43 |
![]() | Block statements must have a label | 44 |
![]() | Matching case statement | 51 |
![]() | External name alias | 52 |
![]() | VHDL version check | 53 |
![]() | Duplicate declaration | 54 |
![]() | A unary condition operator parentheses | 58 |
![]() | duplicate enum literal | 69 |
![]() | Invalid identifier | 70 |
![]() | Function pureness validation | 76 |
![]() | Missing implementation | 80 |
![]() | Incorrect attribute class | 81 |
![]() | Invalid variable assignment | 82 |
![]() | Invalid signal assignment | 83 |
![]() | A subprogram call cannot have an empty parameter lis | 86 |
![]() | Unexpected tokens | 91 |
![]() | Protected type bodies are not allowed in a package | 168 |
![]() | Invalid use of ‘bus’ keyword | 171 |
![]() | Invalid function parameter mode | 172 |
![]() | Invalid variable parameter in function | 173 |
![]() | Invalid function return type | 174 |
![]() | Invalid deferred constant declaration | 175 |
![]() | This declaration is not allowed in the current declarative region | 176 |
![]() | VHDL 87 file declarations | 191 |
![]() | Concatenation of unconstrained aggregate | 194 |
![]() | Empty sensitivity list | 197 |
![]() | Instantiation mismatch | 198 |
![]() | Range wrapped inside parentheses | 199 |
![]() | Incomplete record aggregate | 200 |
![]() | No elements in a list | 201 |
![]() | Trailing separator in a list | 202 |
![]() | VHDL version check | 212 |
![]() | Invalid use of return type identifiers | 213 |
![]() | Conditional return statements | 214 |
![]() | String literal is not properly closed | 215 |
![]() | An exponent for an integer literal shall not be negative | 218 |
![]() | Declaring the library ‘work’ is not allowed inside a context declaration | 219 |
![]() | Referencing the library ‘work’ is not allowed inside a context declaration | 220, 221 |
![]() | Loop variables cannot be assigned | 227 |
![]() | Declaration not found | 229 |
![]() | Missing full constant declaration | 233 |
![]() | Incorrect full constant subtype | 234 |
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 |
---|---|---|
Invalid generic list | Superseded by 202 | 24 |
Invalid generic map | Superseded by 202 | 25 |
Duplicate architecture for entity | Superseded by 64 | 31 |
Port map lists cannot be terminated with a , | Superseded by 202 | 45 |
Port lists cannot be terminated with a , | Superseded by 202 | 46 |
Signal declarations are not allowed in a process statement | Superseded by 176 | 56 |
End clause validation | Superseded by 51 | 59 |
Duplicate entity for library | Superseded by 64 | 60 |
Duplicate package for library | Superseded by 64 | 61 |
Duplicate configuration for library | Superseded by 64 | 62 |
Invalid use clause | Removed as it was invalid | 63 |
Duplicate design unit in IEEE | Removed as it was invalid | 65 |
Find unregistered output ports | Removed as it was invalid | 75 |
Undefined identifier | Superseded by the linker | 87 |