Linty Documentation


CNES Coverage by Linty Rules

ID Title Automatable Coverage (full / high / low / none) Comments Linty Rules
STD‑00100 VHDL object naming convention yes full   VHDL181: Alias names should comply with a naming convention

VHDL171: Package names should comply with a naming convention

VHDL187: “for” generate statement labels should comply with a naming convention

VHDL173: Instance names should comply with a naming convention

VHDL131: Procedure names should comply with a naming convention

VHDL010: Entity names should comply with a naming convention

VHDL130: Function names should comply with a naming convention

VHDL005: Architecture names should comply with a naming convention

VHDL006: Configuration names should comply with a naming convention

VHDL120: Generic parameter names should comply with a naming convention

VHDL122: Type names should comply with a naming convention

VHDL121: Subtype names should comply with a naming convention

VHDL117: Constant names should comply with a naming convention

VHDL116: Variable names should comply with a naming convention

VHDL118: Port names should comply with a naming convention

VHDL119: Signal names should comply with a naming convention

VHDL1026: Reset signal names should comply with a naming convention

VHDL1035: Process labels should comply with a naming convention

VHDL1009: Clock signal names should comply with a naming convention

VHDL309: “if” generate statement labels should comply with a naming convention

VHDL310: “case” generate statement labels should comply with a naming convention

STD‑00200 Name of clock signal yes full   VHDL1009: Clock signal names should comply with a naming convention

STD‑00300 Name of reset signal yes full   VHDL1026: Reset signal names should comply with a naming convention

STD‑00400 Label for process yes full   VHDL213: Processes should be identified by labels

STD‑00500 Name of signal relation with behaviour no none    
STD‑00600 VHDL file extension yes full   VHDL180: File name should comply with a naming convention

STD‑00701 Preservation of signal name inside an entity yes none    
STD‑00800 File name convention yes full   VHDL180: File name should comply with a naming convention

VHDL010: Entity names should comply with a naming convention

STD‑00900 File name of an entity yes full   VHDL180: File name should comply with a naming convention

VHDL010: Entity names should comply with a naming convention

STD‑01000 Number of entities per file yes full   VHDL218: A file should not define more than one entity

STD‑01100 Number of architectures in files yes full   VHDL019: Each file should define only one single architecture

STD‑01200 Number of statements per line yes full   VHDL161: Statements should be on separate lines

VHDL126: Multiple declarations should not be written on the same line

STD‑01300 Number of ports declaration per line yes full   VHDL137: Only one port should be declared or mapped on each line

STD‑01400 Instantiation of components yes full   VHDL189: End block identifier should be repeated at the end

VHDL188: Instantiations should be done by name, not by position

STD‑01500 Entity ports convention no none Generic rule of STD-01600 and STD-01700  
STD‑01600 Entity port sort no none    
STD‑01700 Entity special ports yes none    
STD‑01800 Primitive isolation no none    
STD‑01900 Indentation of source code yes low   VHDL210: Port clauses should be properly formatted

STD‑02000 Indentation style yes full   HDL004: Tabulation characters should not be used

STD‑02100 Compactness of VHDL source code yes full   VHDL033: Files should not have too many lines of code

VHDL149: Extended identifiers should not be used

STD‑02200 Version control in header of file yes full   VHDL239: File header should match a template

STD‑02300 Copyright information in the header of file yes full   VHDL239: File header should match a template

STD‑02400 Creation information in the header of the file yes full   VHDL239: File header should match a template

STD‑02500 Functional information in the header of file yes full   VHDL239: File header should match a template

STD‑02600 IEEE libraries preference yes full   VHDL211: Synopsys “std_logic_arith”, “std_logic_signed” and “std_logic_unsigned” libraries should not be used

STD‑02700 Default language yes full Headers and comments checked. Not possible to check code (such as entity names, signal names, etc.). It would lead to too many false positives. VHDL225: Comments should be written in a specified language / Commented-out code should be removed

STD‑02800 Comment strategy yes full Comment density only as the relevance of comments cannot be automated  
STD‑02900 Comments for entity ports yes full   VHDL163: Entity ports should be commented

STD‑03000 Comments for objects declaration and statements yes high   VHDL160: Declarations should be commented

VHDL207: Processes should be commented

STD‑03100 Dead VHDL code yes high   VHDL135: All declared parameters should be used in the corresponding function/procedure

VHDL134: All declared elements should be used in their corresponding scope

VHDL1052: Unused generate blocks should be removed

VHDL1050: Unused entities should be removed

VHDL1051: Unused architectures should be removed

STD‑03200 Unused output ports components management yes low Does not check unused ports VHDL138: All output ports (and optionally all input ports) of a component should be mapped

STD‑03300 Buffer port type yes full   VHDL025: Only allowed port modes should be used: ‘in’, ‘out’ and, for top-level entities only, ‘inout’

STD‑03400 Top level ports yes full   VHDL026: Only allowed port types should be used

STD‑03500 Record type for top level entity ports yes full   VHDL026: Only allowed port types should be used

STD‑03600 Reset sensitive level yes full   VHDL1027: Active-high resets should be preferred over active-low resets

VHDL1028: Active-low resets should be preferred over active-high resets

STD‑03700 Reset assertion and deassertion yes none    
STD‑03800 Synchronous elements initialization yes none    
STD‑03900 State machine type definition yes full   VHDL1005: FSM states should be encoded using enumerated type

STD‑04000 State machine case enumeration completion yes full   VHDL003: Each case statement should define an “others” clause

STD‑04100 Clock domain crossing yes full   HDL1001: All clock domain crossings (CDC) should be reviewed

HDL1000: All clock domains should be reviewed

STD‑04200 Clock domain crossing handshake based yes none    
STD‑04300 Clock domain crossing FIFOs based yes none    
STD‑04400 Clock management module yes full   HDL1013: All clocks should be generated within a unique clock management module

STD‑04500 Unsuitability of Clock Reassignment yes full   VHDL1012: Clock signals not used as clock of a flip-flop should be reviewed

STD‑04600 Clock domain number in the design yes full   HDL1002: The number of clock domains per design should be as low as possible

STD‑04700 Number of clock domains per modules yes high   VHDL1049: An entity should not use multiple clocks

STD‑04800 Clock edge sensitivity yes full   VHDL1010: Falling should be preferred over rising to detect clock transitions

VHDL1011: Rising should be preferred over falling to detect clock transitions

STD‑04900 Edge detection best practice yes none    
STD‑05000 Sensitivity list for synchronous processes yes full   VHDL1037: The sensitivity list of a process should be minimal

VHDL1072: The sensitivity list of a process should be complete

STD‑05100 Metastability management yes none    
STD‑05200 Output signal registration yes full   HDL1008: All output signals of top-level module should be registered

STD‑05300 Sensitivity list for combinational processes yes full   VHDL1037: The sensitivity list of a process should be minimal

VHDL1072: The sensitivity list of a process should be complete

STD‑05400 Unsuitability of internal tristate yes full   VHDL224: Internal tristates should not be used

STD‑05500 Unsuitability of latches yes full   VHDL140: Concurrent assignments should be complete to avoid undesired latch inference

VHDL1036: “if” statements should always contain an “else” statement in combinational processes to avoid undesired latch inference

VHDL1037: The sensitivity list of a process should be minimal

VHDL1063: Latches should be removed

VHDL1072: The sensitivity list of a process should be complete

STD‑05600 Unsuitability of combinational feedbacks yes full   HDL1003: Combinatorial loops should be removed

STD‑05700 Unsuitability of gated clocks yes none    
STD‑05800 Use of VHDL types in RTL design yes full   VHDL1005: FSM states should be encoded using enumerated type

VHDL303: Only synthesizable types should be used in design

STD‑05900 Range for integers yes full   VHDL029: ‘integer’, ‘natural’ and ‘positive’ declarations should have range constraint

STD‑06000 Range direction for arrays yes full   VHDL164: Range direction in array definitions should always be the same

STD‑06100 Range direction for std_logic_vector yes full   VHDL036: Vector direction in ranges should always be the same

STD‑06200 Management of numeric values yes high   VHDL023: Hardcoded numeric values should be used only in “constant” or “generic”

STD‑06300 Unsuitability of variables in RTL design yes low   VHDL308: Variables should not be used

VHDL190: Variables should only be used in processes, functions and procedures

STD‑06400 Error mitigation strategy no none Generic rule  
STD‑06500 Counters end of counting yes none    
STD‑06600 Dimension of comparison elements yes full   VHDL1066: Objects of different lengths should not be compared

STD‑06700 Unsuitability of wait statement in RTL design yes full   VHDL183: Non-synthesizable statements should not be used in design

STD‑06800 Unsuitability of signal initialization in declaration section yes full   VHDL032: Signals should not be initialized in their declaration

STD‑06900 Unsuitability of procedures and functions in RTL design yes full   VHDL206: Functions and procedures should not be used in design

STD‑07000 Maximum depths of nested objects yes high   VHDL172: Conditional branching statements (“if”, “case”, “while” and “for” loops) should not be too deeply nested

VHDL152: Packages should not be too deeply nested

STD‑07100 Simulation ending yes none    
STD‑07200 Use of procedures and functions in testbenches no none Generic rule  
STD‑07300 Use of wait statement in testbenches yes none