Verilog and SystemVerilog Linting

List of (System)Verilog code rules

The table below lists the (System)Verilog code rules that can be checked automatically by Sigasi Studio. The availability of code rules depends on the license requirements.

ST code rules

ST code rules are available for all licenses including Sigasi Studio Starter .

File encoding differences between including and included files
Named and positional port connections cannot be mixed5
The packed keyword is required in packed structs and unions6
The for loop statement misses mandatory part (Verilog)9
Parameter port list cannot be empty11
No semicolon expected at this point (Verilog)12
Verilog disallows empty assignments of ordered parameters (Verilog)13
Named and positional parameter overrides cannot be mixed25
Only one default member expression is allowed per assignment pattern29
Only variable output ports can have a default value in non-ANSI notation33
Only input or variable output ports can have a default value in ANSI notation34
Duplicate formal item within the instantiated unit37
Excessive number of actuals in ordered notation39
Timing controls are not allowed in functions46

XL code rules

XL code rules require a Sigasi Studio XL or Sigasi Studio XPRT license.

Null loops1
Check Naming Conventions2
Warning with lightbulbDisallow reg datatype3
The module name is a keyword in VHDL and may cause problems in mixed language projects7
Case statement does not cover all cases8
Function prototype has implicit return type10
Info with lightbulbImplicit subprogram port direction14
Default clause has to be the last item in a case statement15
Case statement has multiple default clauses, but only one default clause is allowed16
File name does not match design unit17
File contains multiple design units18
Parameters must have a default value19
Verilog code line too long20
Tabs are not allowed21
File header comment does not match required pattern22
Named port connections have to be used for all instances with many ports24
Named parameter overrides have to be used for all instantiations with many parameters26
No event control at the top of always construct27
Default member must be last in assignment pattern28
Overwritten type key in assignment pattern30
Duplicate member key in structure assignment pattern31
Mixed named and ordered notation in assignment pattern32
Register initialization in declarations35
Formal item not found within the instantiated unit36
Missing actuals for formals that have no default value38
Default clause missing from case statement40
Non-blocking assignments are not allowed in functions41
Consecutive underscores in unit / port identifier42
Underscores at end of unit / port identifier43