1
0
This repository has been archived on 2024-10-30. You can view files and clone it, but cannot push or open issues or pull requests.
SEm-ExamMidterm2024/Prefs/dc_user/rulesets/v2019_2/Essentials_ruleset
2024-03-22 13:16:48 +01:00

2564 lines
31 KiB
Plaintext

version "19.2"
EngineDLLVersion "19.2"
TopRuleSet (RuleSet
name "Essentials"
build "DesignChecker 2019.2 (Build 5)
Built on Sat Apr 20 2019 at 23:04"
UserDefinedSeverity "Default SeveritySet"
SeverityClassDefinition (SeverityClass
SeverityClassName "Default SeveritySet"
SeverityLevels [
(SeverityLevel
LevelName "Error"
Red 255
Green 0
Blue 0
Score 5
Weight 2
)
(SeverityLevel
LevelName "Warning"
Red 0
Green 0
Blue 255
Score 2
Weight 1
)
(SeverityLevel
LevelName "Note"
Red 0
Green 255
Blue 0
Score 1
Weight 1
)
]
)
RuleSets [
(RuleSet
name "Coding Practices"
UserDefinedSeverity "Default SeveritySet"
SeverityClassDefinition (SeverityClass
SeverityClassName "Default SeveritySet"
SeverityLevels [
(SeverityLevel
LevelName "Error"
Red 255
Green 0
Blue 0
Score 5
Weight 2
)
(SeverityLevel
LevelName "Warning"
Red 0
Green 0
Blue 255
Score 2
Weight 1
)
(SeverityLevel
LevelName "Note"
Red 0
Green 255
Blue 0
Score 1
Weight 1
)
]
)
RuleSets [
]
Rules [
(ConfiguredRule
BaseRuleName "Unused Declarations"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Unused Declarations"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"The object has been declared but not used (read from or assigned to)."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for objects which have been declared, but are never used."
]
)
(Params
ParamName "Keywords"
ParamValues [
"unused"
"declarations"
"unread"
"unwritten"
"uncalled"
"identifiers"
]
)
(Params
ParamName "Detect"
ParamValues [
"Identifiers: Read but not Written"
"Identifiers: Written but not Read"
"Identifiers: Neither Read nor Written"
"Generics: Not Used"
"Functions: Not Called"
"Procedures: Not Called"
]
)
(Params
ParamName "Consider Identifiers Slices"
ParamValues [
"Yes"
]
)
]
)
(ConfiguredRule
BaseRuleName "Unassigned Objects"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Unassigned Objects"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Objects should be assigned values before they are used."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks objects are assigned values before they are used."
]
)
(Params
ParamName "Keywords"
ParamValues [
"unassigned"
"objects"
]
)
]
)
(ConfiguredRule
BaseRuleName "Unconnected Ports"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Unconnected Ports"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"All output ports should be connected. All input ports should be driven by another signal or constant '0 or '1' value."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks that input and/or output ports are connected."
]
)
(Params
ParamName "Keywords"
ParamValues [
"unconnected"
"ports"
"input"
"output"
"bi-directional"
]
)
(Params
ParamName "Applies To"
ParamValues [
"Input Ports"
"Output Ports"
"Bidirectional Ports"
]
)
(Params
ParamName "Detect Floating Connection"
ParamValues [
"No"
]
)
]
)
(ConfiguredRule
BaseRuleName "Gated Clocks"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Gated Clocks"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Avoid gated clocks."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for the use of gated clocks."
]
)
(Params
ParamName "Keywords"
ParamValues [
"clocks"
"gated"
"gating"
"synchronous"
"enable"
"load"
"register"
]
)
(Params
ParamName "Ignore"
ParamValues [
"<don't care>"
]
)
]
)
(ConfiguredRule
BaseRuleName "Internally Generated Clocks"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Internally Generated Clocks"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Internally generated clocks should be isolated at the top-level."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks any internally generated clocks are isolated at the top-level."
]
)
(Params
ParamName "Keywords"
ParamValues [
"clocks"
"generated"
"internally"
"isolation"
"isolated"
]
)
(Params
ParamName "Action"
ParamValues [
"Allow if isolated at Top-Level"
]
)
]
)
(ConfiguredRule
BaseRuleName "Internally Generated Resets"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Internally Generated Resets"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Internally generated resets should be isolated at the top-level."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks any internally generated resets are isolated at the top-level."
]
)
(Params
ParamName "Keywords"
ParamValues [
"asynchronous"
"generated"
"internally"
"isolation"
"isolated"
"resets"
"synchronous"
"style"
]
)
(Params
ParamName "Action"
ParamValues [
"Allow if isolated at Top-Level"
]
)
(Params
ParamName "Reset Style"
ParamValues [
"<don't care>"
]
)
(Params
ParamName "Ignore"
ParamValues [
"<don't care>"
]
)
]
)
(ConfiguredRule
BaseRuleName "Mixed Clocks Resets"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Mixed Clocks Resets"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Do not use the same signal as a clock and reset."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for signals being used as both clock and reset."
]
)
(Params
ParamName "Keywords"
ParamValues [
"clocks"
"mixed"
"resets"
]
)
]
)
(ConfiguredRule
BaseRuleName "Consistent Resets"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Consistent Resets"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Do not use the same reset signal with mixed styles or polarities within the same process/block."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks the reset signal is used consistently."
]
)
(Params
ParamName "Keywords"
ParamValues [
"asynchronous"
"consistent"
"mixed"
"polarity"
"resets"
"synchronous"
"Verilog"
"VHDL"
]
)
(Params
ParamName "Disallow"
ParamValues [
"Mixed Synchronous/Asynchronous Styles"
"Mixed Polarities"
]
)
(Params
ParamName "Hierarchy Level"
ParamValues [
"Process"
]
)
(Params
ParamName "Applies To"
ParamValues [
"FSM State Variable Registers"
"Other Registers"
]
)
(Params
ParamName "Consistency"
ParamValues [
"Single Reset"
]
)
]
)
(ConfiguredRule
BaseRuleName "Multiple Drivers"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Multiple Drivers"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Do not assign to the same signal/variable in more than one sequential block."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for multiple drivers."
]
)
(Params
ParamName "Keywords"
ParamValues [
"drivers"
"multiple"
]
)
]
)
(ConfiguredRule
BaseRuleName "Matching Range"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Matching Range"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Ensure bit widths on both sides of an assignment/comparison match. Ensure Port & Net declarations match."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for compatible bit widths."
]
)
(Params
ParamName "Keywords"
ParamValues [
"assignments"
"associations"
"comparisons"
"declarations"
"explicit"
"port"
"net"
"widths"
"out-of-boud"
"index"
]
)
(Params
ParamName "Match"
ParamValues [
"Explicit Widths in Assignments"
"Operands of comparison operators"
"Explicit Widths in Associations"
"Port & Net Declarations"
]
)
(Params
ParamName "Ignore"
ParamValues [
"<none>"
]
)
]
)
(ConfiguredRule
BaseRuleName "FSM Transitions"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"FSM Transitions"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Ensure unused states transition directly to the initialization state."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks that unused states can transition to a recovery state and that all states transition to a known state."
]
)
(Params
ParamName "Keywords"
ParamValues [
"FSM"
"states"
"transitions"
"Verilog"
"VHDL"
]
)
(Params
ParamName "Detect"
ParamValues [
"Transitions Without Default Handling"
"States Without Incoming Transitions"
"States Without Outgoing Transitions"
]
)
(Params
ParamName "State Variables"
ParamValues [
"<don't care>"
]
)
]
)
(ConfiguredRule
BaseRuleName "Logical and Bitwise Operators"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Logical and Bitwise Operators"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Use logical and bit-wise operators correctly."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for the correct usage of Verilog logical and bit-wise operators."
]
)
(Params
ParamName "Keywords"
ParamValues [
"bitwise"
"logical"
"operators"
]
)
]
)
(ConfiguredRule
BaseRuleName "Sub-Program Body"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Sub-Program Body"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Ensure the sub-program has only one exit point and is not recursive."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks if the sub-program has a single exit point and is not recursive."
]
)
(Params
ParamName "Keywords"
ParamValues [
"subprogram"
"functions"
"procedures"
"local"
"variables"
"non-local"
]
)
(Params
ParamName "Sub-Program"
ParamValues [
"Functions"
"Procedures / Tasks"
]
)
(Params
ParamName "Allow Assign To"
ParamValues [
"<don't care>"
]
)
(Params
ParamName "Disallow"
ParamValues [
"Multiple exit points/return statements"
"Missing exit point/return statement"
"Recursion"
]
)
]
)
(ConfiguredRule
BaseRuleName "Unique Names"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Unique Names"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Use unique FSM states names throughout the design."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks that FSM states names are unique throughout the design."
]
)
(Params
ParamName "Keywords"
ParamValues [
"names"
"unique"
"FSM"
"instance"
]
)
(Params
ParamName "Unique"
ParamValues [
"FSM state names"
]
)
]
)
(ConfiguredRule
BaseRuleName "Undefined Design Units"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Unknown Objects"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Objects must be declared before being used."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for objects which are used, but have not been declared."
]
)
(Params
ParamName "Keywords"
ParamValues [
"unknown"
"objects"
"identifiers"
"dependencies"
]
)
]
)
]
)
(RuleSet
name "Downstream Checks"
UserDefinedSeverity "Default SeveritySet"
SeverityClassDefinition (SeverityClass
SeverityClassName "Default SeveritySet"
SeverityLevels [
(SeverityLevel
LevelName "Error"
Red 255
Green 0
Blue 0
Score 5
Weight 2
)
(SeverityLevel
LevelName "Warning"
Red 0
Green 0
Blue 255
Score 2
Weight 1
)
(SeverityLevel
LevelName "Note"
Red 0
Green 255
Blue 0
Score 1
Weight 1
)
]
)
RuleSets [
]
Rules [
(ConfiguredRule
BaseRuleName "Sensitivity List"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Sensitivity List"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Sensitivity list should contain only the signals needed by the process/block."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks that sensitivity lists are complete and do not include unnecessary signals."
]
)
(Params
ParamName "Keywords"
ParamValues [
"missing"
"sensitivity"
"sliced"
"unneeded"
]
)
(Params
ParamName "Check For"
ParamValues [
"Missing Signals"
"Unneeded Signals"
"Sliced Signals"
]
)
]
)
(ConfiguredRule
BaseRuleName "Clock Used As Data"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Clock Used As Data"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Avoid using clock signals as data."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for clock signals being used as data."
]
)
(Params
ParamName "Keywords"
ParamValues [
"clock"
"condition"
"data"
"race"
"Verilog"
"VHDL"
]
)
(Params
ParamName "Check"
ParamValues [
"Clock used as data internal to design"
"Clock driving top-level output port"
]
)
]
)
(ConfiguredRule
BaseRuleName "Latch Inference"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Latch Inference"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Avoid latch inference."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for the possible inference of latches."
]
)
(Params
ParamName "Keywords"
ParamValues [
"latch"
"inference"
]
)
]
)
(ConfiguredRule
BaseRuleName "Register IO"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Register IO"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"All outputs of each process/block of a hierarchical design should be registered."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks that process/block and FSM output ports are registered."
]
)
(Params
ParamName "Keywords"
ParamValues [
"register"
"input"
"output"
"IO"
]
)
(Params
ParamName "Detect Multiple Registrations"
ParamValues [
"No"
]
)
(Params
ParamName "Applies To"
ParamValues [
"Sub-Blocks"
]
)
(Params
ParamName "Applies To Non-Clocked Blocks"
ParamValues [
"No"
]
)
(Params
ParamName "Check Inputs"
ParamValues [
"<none>"
]
)
(Params
ParamName "Check Outputs"
ParamValues [
"All Outputs"
]
)
(Params
ParamName "Check Asynchronous Controls"
ParamValues [
"No"
]
)
(Params
ParamName "Treat Latches as Registers"
ParamValues [
"Yes"
]
)
]
)
(ConfiguredRule
BaseRuleName "Initialization Assignments"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Initialization Assignments"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Avoid using default initialization."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for the use of initialization assignments rather than explicit resets."
]
)
(Params
ParamName "Keywords"
ParamValues [
"assignments"
"initializations"
]
)
(Params
ParamName "Check"
ParamValues [
"Combinationally driven output ports"
"All signals/variables"
"Initial blocks"
]
)
]
)
(ConfiguredRule
BaseRuleName "Allowed Constructs"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Non Synthesizable Constructs"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Avoid constructs which make the code non-synthesizable."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for the use of non-synthesizable language constructs (except delays)"
]
)
(Params
ParamName "Keywords"
ParamValues [
"allowed"
"constructs"
"non-portable"
"non-synthesizable"
"portable"
"synthesizable"
"Verilog"
"VHDL"
]
)
(Params
ParamName "Disallowed Constructs"
ParamValues [
"Functions Returning Type Real"
"while Loops"
"Multiple Wait Statements on Same Clock"
"Real Types"
"Zero Delayed Assignments"
"Incomplete Types"
"Infinite Loops"
"Global Signals"
"ALIAS"
"BUFFER"
"Enumeration Type as Array Index"
"FILE"
"INERTIAL Delay"
"POSTPONED"
"PURE FUNCTION"
"TRANSPORT Delay"
"VARIABLE"
"WAIT"
"WAIT with Timeout"
"`timescale"
"Array of Integers"
"casex"
"casez"
"deassign"
"defparam"
"event"
"force"
"fork join"
"Hierarchical Names"
"initial Blocks"
"Net Strengths"
"Procedural Continuous assign"
"forever Loops"
"repeat Loops"
"release"
"specify"
"String Literals"
"System Functions"
"System Tasks"
"$finish"
"$stop"
"time"
"User Defined Primitives"
"Synthesizable Wait(wait until)"
]
)
]
)
(ConfiguredRule
BaseRuleName "Untested Edge Trigger"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Untested Edge Trigger"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Synthesis requires a single, untested edge trigger in order to identify the clock."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for a single untested edge trigger in Verilog event control logic."
]
)
(Params
ParamName "Keywords"
ParamValues [
"edge"
"triggers"
]
)
]
)
(ConfiguredRule
BaseRuleName "Constrained Ranges & Bounds"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Constrained Ranges & Bounds"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"VHDL Integer, and Real number types must have ranges. Vector types must have bounds"
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks that all VHDL numbers have specified ranges and all vectors have specified bounds."
]
)
(Params
ParamName "Keywords"
ParamValues [
"bounds"
"constrained"
"ranges"
"vector"
"Verilog"
"VHDL"
]
)
(Params
ParamName "Applies To"
ParamValues [
"<all>"
]
)
(Params
ParamName "Range / Bound"
ParamValues [
"<all>"
]
)
(Params
ParamName "Range Type"
ParamValues [
"<don't care>"
]
)
]
)
(ConfiguredRule
BaseRuleName "Asynchronous Block"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Asynchronous Block"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Asynchronous always block contains more than one sequential statement, this may be not synthesizable"
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks the synthesizability of asynchronous Verilog always blocks."
]
)
(Params
ParamName "Keywords"
ParamValues [
"asynchronous"
"block"
"Verilog"
"VHDL"
]
)
(Params
ParamName "Detect"
ParamValues [
"<all>"
]
)
]
)
(ConfiguredRule
BaseRuleName "Allowed Operators"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Non Synthesizable Operators"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Do not use disallowed operators."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for disallowed operators usage."
]
)
(Params
ParamName "Keywords"
ParamValues [
"Operators"
"Verilog"
"VHDL"
]
)
(Params
ParamName "Scope"
ParamValues [
"<Design Units>"
"<Subprograms>"
"<Blocks>"
]
)
(Params
ParamName "Disallowed Operators"
ParamValues [
"Case Equality ( === )"
"Case Inequality ( !== )"
]
)
(Params
ParamName "Ignore"
ParamValues [
"<don't care>"
]
)
]
)
(ConfiguredRule
BaseRuleName "Event Controls"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Unsynthesizable Event Controls"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Avoid the use of non-synthesizable Event Controls."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for unsynthesizable event controls in sensitivity lists."
]
)
(Params
ParamName "Keywords"
ParamValues [
"synthesizable"
"event"
"controls"
]
)
]
)
(ConfiguredRule
BaseRuleName "Gate Level Instances"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Eliminate Glue Logic_1"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Ensure Verilog built-in primitives are isolated into separate modules."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks any instances of Verilog built-in primitives and UDPs are isolated into separate modules."
]
)
(Params
ParamName "Keywords"
ParamValues [
"glue-logic"
"eliminate"
"UDPs"
"Primitives"
]
)
(Params
ParamName "Logic Type"
ParamValues [
"Primitives"
"UDPs"
]
)
(Params
ParamName "Action"
ParamValues [
"Allow if isolated in separate modules"
]
)
]
)
(ConfiguredRule
BaseRuleName "Structural Core"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Eliminate Glue Logic_2"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Ensure Verilog built-in primitives are isolated into separate modules."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks any instances of Verilog built-in primitives and UDPs are isolated into separate modules."
]
)
(Params
ParamName "Keywords"
ParamValues [
"glue-logic"
"eliminate"
"UDPs"
"Primitives"
]
)
(Params
ParamName "Additional Structural Constructs"
ParamValues [
"<none>"
]
)
]
)
]
)
(RuleSet
name "Code Reuse"
UserDefinedSeverity "Default SeveritySet"
SeverityClassDefinition (SeverityClass
SeverityClassName "Default SeveritySet"
SeverityLevels [
(SeverityLevel
LevelName "Error"
Red 255
Green 0
Blue 0
Score 5
Weight 2
)
(SeverityLevel
LevelName "Warning"
Red 0
Green 0
Blue 255
Score 2
Weight 1
)
(SeverityLevel
LevelName "Note"
Red 0
Green 255
Blue 0
Score 1
Weight 1
)
]
)
RuleSets [
]
Rules [
(ConfiguredRule
BaseRuleName "Allowed Constructs"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Non-Portable Constructs"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Avoid constructs which make the code non-portable."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for the use of non-portable language constructs."
]
)
(Params
ParamName "Keywords"
ParamValues [
"allowed"
"constructs"
"non-portable"
"non-synthesizable"
"portable"
"synthesizable"
"Verilog"
"VHDL"
]
)
(Params
ParamName "Disallowed Constructs"
ParamValues [
"<all non portable constructs>"
]
)
]
)
(ConfiguredRule
BaseRuleName "Allowed Pragmas"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Allowed Pragmas"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Avoid embedded, tool-specific pragmas/commands."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for the use of pragmas other than translate_on/off, synthesis_on/off"
]
)
(Params
ParamName "Keywords"
ParamValues [
"pragmas"
"synthesis"
]
)
(Params
ParamName "Disallowed Pragmas"
ParamValues [
"Other Specific Pragmas"
]
)
]
)
(ConfiguredRule
BaseRuleName "Allowed Constructs"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Reserved Words"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Avoid the use of VHDL reserved words in Verilog designs and vice-versa"
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks for the use of VHDL reserved words in Verilog and vice-versa"
]
)
(Params
ParamName "Keywords"
ParamValues [
"allowed"
"constructs"
"non-portable"
"non-synthesizable"
"portable"
"synthesizable"
"Verilog"
"VHDL"
]
)
(Params
ParamName "Disallowed Constructs"
ParamValues [
"<Verilog reserved words in VHDL designs>"
"<VHDL reserved words in Verilog designs>"
]
)
]
)
(ConfiguredRule
BaseRuleName "Vector Order"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Vector Order"
]
)
(Params
ParamName "Severity"
ParamValues [
"Warning"
]
)
(Params
ParamName "Score"
ParamValues [
"2"
]
)
(Params
ParamName "Weight"
ParamValues [
"1"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
"Verilog Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Ensure all vector dimensions are ordered high to low and the low index bound is 0."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks all vector dimensions are ordered high to low and the low index bound is 0."
]
)
(Params
ParamName "Keywords"
ParamValues [
"order"
"vector"
]
)
(Params
ParamName "Style"
ParamValues [
"Descending"
]
)
(Params
ParamName "Applies To"
ParamValues [
"Vector Bounds"
"Integer Range Constraints"
"Real Range Constraints"
"Array Bounds"
"String Vector Bounds"
]
)
(Params
ParamName "Low Index Bound"
ParamValues [
"0"
]
)
]
)
(ConfiguredRule
BaseRuleName "VITAL Ports"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"VITAL Port Types"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Top level ports must use STD_LOGIC_1164 types only."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks that top-level ports use types from Std_Logic_1164 only."
]
)
(Params
ParamName "Keywords"
ParamValues [
"VITAL"
"port"
"type"
]
)
(Params
ParamName "Check VITAL Port Names"
ParamValues [
"No"
]
)
(Params
ParamName "Disallowed VITAL Port Modes"
ParamValues [
"<don't care>"
]
)
(Params
ParamName "VITAL Scalar Port Types"
ParamValues [
"std_logic"
"std_ulogic"
"Any other subtype of std_ulogic"
]
)
(Params
ParamName "VITAL Array Port Types"
ParamValues [
"std_logic_vector"
"std_ulogic_vector"
]
)
(Params
ParamName "Additional Checks"
ParamValues [
"<don't care>"
]
)
]
)
(ConfiguredRule
BaseRuleName "Allowed Types"
UserDefinedSeverity "Default SeveritySet"
Params [
(Params
ParamName "Name"
ParamValues [
"Use IEEE types only"
]
)
(Params
ParamName "Severity"
ParamValues [
"Error"
]
)
(Params
ParamName "Score"
ParamValues [
"5"
]
)
(Params
ParamName "Weight"
ParamValues [
"2"
]
)
(Params
ParamName "Language"
ParamValues [
"VHDL Any"
]
)
(Params
ParamName "Hint"
ParamValues [
"Use IEEE types only. Subtypes must be based on IEEE standard types."
]
)
(Params
ParamName "Short Description"
ParamValues [
"Checks all types are IEEE types or subtypes based on IEEE standard types."
]
)
(Params
ParamName "Keywords"
ParamValues [
"allowed"
"enumeration"
"IEEE"
"types"
"Verilog"
"VHDL"
]
)
(Params
ParamName "Applies To"
ParamValues [
"<all>"
]
)
(Params
ParamName "Action"
ParamValues [
"Allow"
]
)
(Params
ParamName "Packages"
ParamValues [
"ieee.*"
]
)
(Params
ParamName "Types"
ParamValues [
"<IEEE Types>"
]
)
(Params
ParamName "Excluded Types"
ParamValues [
"FSM State Variables Enum Type"
]
)
]
)
]
)
]
Rules [
]
)