1 |
138 |
creep |
|
2 |
|
|
// --------------------------------- //
|
3 |
|
|
// Includes & Category Definitions //
|
4 |
|
|
// --------------------------------- //
|
5 |
|
|
|
6 |
|
|
category ALL "This category consists of all the categories in HAL" default_on
|
7 |
|
|
{
|
8 |
|
|
ALL_BEHAVIORAL // Category of all the Behavioral level checks
|
9 |
|
|
ALL_RTL // Category of all the RTL level checks
|
10 |
|
|
ALL_NETLIST // Category of all the Netlist level checks
|
11 |
|
|
ALL_TOOL // HAL usage errors
|
12 |
|
|
ALL_SYSTEMC // SystemC(r) specific checks
|
13 |
|
|
}
|
14 |
|
|
|
15 |
|
|
category ALL_BEHAVIORAL "Category of all the Behavioral level checks" default_on
|
16 |
|
|
{
|
17 |
|
|
BEH_CODINGSTYLE_VHDL // Behavioral level coding style checks
|
18 |
|
|
}
|
19 |
|
|
|
20 |
|
|
category ALL_RTL "Category of all the RTL level checks" default_on
|
21 |
|
|
{
|
22 |
|
|
RTL_NAMING // Category of all the RTL Naming checks
|
23 |
|
|
RTL_FILEFORMAT // Category of all the RTL File format checks
|
24 |
|
|
RTL_CODECOMMENT // Category of all the RTL Code comment checks
|
25 |
|
|
RTL_CODINGSTYLE // Category of all the RTL coding style checks
|
26 |
|
|
RTL_SIMSYNTH // Category of pre and post-synthesis simulation mismatch checks
|
27 |
|
|
RTL_SYNTH // Category of all the synthesizability checks
|
28 |
|
|
RTL_SIMRACE // Category of all the simulation race condition checks
|
29 |
|
|
DFT // Verilog and VHDL DFT checks
|
30 |
|
|
FSM // Verilog and VHDL, FSM coding style checks
|
31 |
|
|
STRUCTURAL // Verilog/VHDL structural checks
|
32 |
|
|
CLOCKDOMAIN // Verilog/VHDL clock domain checks
|
33 |
|
|
PALLADIUM // Category of all the checks to qualify design to run on Palladium
|
34 |
|
|
RMM // All checks complying to Reuse Methodology Manual
|
35 |
|
|
LOW_POWER // All checks related to low power design
|
36 |
|
|
}
|
37 |
|
|
|
38 |
|
|
category ALL_NETLIST "Category of all the Netlist level checks" default_on
|
39 |
|
|
{
|
40 |
|
|
DFT // Verilog and VHDL DFT checks
|
41 |
|
|
STRUCTURAL // Verilog/VHDL structural checks
|
42 |
|
|
CLOCKDOMAIN // Verilog/VHDL clock domain checks
|
43 |
|
|
SCANCHAIN // Verilog/VHDL Netlist level scan chain checks
|
44 |
|
|
}
|
45 |
|
|
|
46 |
|
|
category RTL_NAMING "Category of all the RTL Naming checks" default_off
|
47 |
|
|
{
|
48 |
|
|
RTL_NAMING_VERILOG // Verilog only Naming checks
|
49 |
|
|
RTL_NAMING_VHDL // VHDL only Naming checks
|
50 |
|
|
RTL_NAMING_MIXED // Naming checks for Verilog and VHDL
|
51 |
|
|
RTL_NAMING_ASSERTIONS // SystemVerilog Assertion only Naming checks
|
52 |
|
|
}
|
53 |
|
|
|
54 |
|
|
category RTL_FILEFORMAT "Category of all the RTL File format checks" default_on
|
55 |
|
|
{
|
56 |
|
|
RTL_FILEFORMAT_VERILOG // Verilog only File format checks
|
57 |
|
|
RTL_FILEFORMAT_VHDL // VHDL only File format checks
|
58 |
|
|
RTL_FILEFORMAT_MIXED // File format checks for Verilog and VHDL
|
59 |
|
|
}
|
60 |
|
|
|
61 |
|
|
category RTL_CODECOMMENT "Category of all the RTL Code comment checks" default_off
|
62 |
|
|
{
|
63 |
|
|
RTL_CODECOMMENT_VERILOG // Verilog only Code comment checks
|
64 |
|
|
RTL_CODECOMMENT_MIXED // Code comment checks for Verilog and VHDL
|
65 |
|
|
}
|
66 |
|
|
|
67 |
|
|
category RTL_CODINGSTYLE "Category of all the RTL coding style checks" default_on
|
68 |
|
|
{
|
69 |
|
|
RTL_CODINGSTYLE_VERILOG // Verilog only coding style checks
|
70 |
|
|
RTL_CODINGSTYLE_VHDL // VHDL only coding style checks
|
71 |
|
|
RTL_CODINGSTYLE_MIXED // coding style checks for Verilog and VHDL
|
72 |
|
|
RTL_CODINGSTYLE_ASSERTIONS // coding style checks for Assertions
|
73 |
|
|
}
|
74 |
|
|
|
75 |
|
|
category RTL_SIMRACE "Category of all the simulation race condition checks" default_on
|
76 |
|
|
{
|
77 |
|
|
RTL_SIMRACE_VERILOG // Verilog only simulation race condition checks
|
78 |
|
|
}
|
79 |
|
|
|
80 |
|
|
category RTL_SIMSYNTH "Category of pre and post-synthesis simulation mismatch checks" default_on
|
81 |
|
|
{
|
82 |
|
|
RTL_SIMSYNTH_VERILOG // Verilog only pre and post-synthesis simulation mismatch checks
|
83 |
|
|
RTL_SIMSYNTH_MIXED // Verilog/VHDL pre and post-synthesis simulation mismatch checks
|
84 |
|
|
}
|
85 |
|
|
|
86 |
|
|
category RTL_SYNTH "Category of all the synthesizability checks" default_on synth_only
|
87 |
|
|
{
|
88 |
|
|
RTL_SYNTH_VERILOG // Verilog only synthesizability checks
|
89 |
|
|
RTL_SYNTH_VHDL // VHDL only synthesizability checks
|
90 |
|
|
RTL_SYNTH_MIXED // Verilog and VHDL synthesizability checks
|
91 |
|
|
}
|
92 |
|
|
|
93 |
|
|
category ALL_SYSTEMC "SystemC(r) specific checks" default_on
|
94 |
|
|
{
|
95 |
|
|
BDSGIT // Null value passed for the name argument of the SystemC %s '%s'
|
96 |
|
|
WTINMT // Wait function called by the SystemC method '%s' of class '%s'
|
97 |
|
|
STINMT // Function 'sc_start' called by the SystemC method '%s' of class '%s'
|
98 |
|
|
STINTD // Function 'sc_start' called by the SystemC thread '%s' of class '%s'
|
99 |
|
|
CYINMT // Function 'sc_cycle' called by the SystemC method '%s' of class '%s'
|
100 |
|
|
CYINTD // Function 'sc_cycle' called by the SystemC thread '%s' of class '%s'
|
101 |
|
|
ITINMT // Function 'sc_initialize' called by the SystemC method '%s' of class '%s'
|
102 |
|
|
ITINTD // Function 'sc_initialize' called by the SystemC thread '%s' of class '%s'
|
103 |
|
|
BDMDCT // Module name argument not declared in constructor '%s' as 'sc_module_name'
|
104 |
|
|
BDOBNM // Bad value '%s' passed for the name argument of SystemC %s, '%s'
|
105 |
|
|
DFOBNM // The value '%s' passed for the name argument of SystemC %s, '%s', is different from the field name
|
106 |
|
|
OBNONM // The SystemC %s '%s' is initialized with no name
|
107 |
|
|
OBNOIT // The SystemC %s '%s' is not explicitly named in the initializaton list of the module constructor
|
108 |
|
|
DFVWNM // The value '%s' passed for the name argument of SystemC viewable object '%s' is different from the name of the field that it references: '%s'
|
109 |
|
|
OBISLV // SystemC object '%s' is declared as a local variable
|
110 |
|
|
OBISGV // SystemC object '%s' is declared as a global variable
|
111 |
|
|
OBISFP // SystemC object '%s' is declared as a formal parameter of a function
|
112 |
|
|
PIINCT // A port interface method called in the constructor of SystemC module '%s'
|
113 |
|
|
WTINCT // Wait function called by the constructor of SystemC module '%s'
|
114 |
|
|
WTINMN // Wait function called by the sc_main function
|
115 |
|
|
WTINUP // Wait function called by the update method of SystemC primitive channel, '%s'
|
116 |
|
|
RUINUP // request_update function called by the update method of SystemC primitive channel, '%s'
|
117 |
|
|
EFINWT // A function call, returning sc_event_finder&, passed as an argument to the wait function
|
118 |
|
|
CYISDP // The function sc_cycle is deprecated in SystemC 2.1. Use sc_start instead
|
119 |
|
|
BDSPRV // Bad argument passed, for the return value of the spawned process, in the sc_spawn function call
|
120 |
|
|
SGPIRW // %s->%s() called instead of %s.%s(). The latter is more efficient
|
121 |
|
|
MDINNM // The SystemC module, '%s', is declared in the namespace '%s'
|
122 |
|
|
IFNOVB // The sc_interface class is not a virtual base class of the SystemC interface '%s'
|
123 |
|
|
BDPORT // The SystemC port, '%s', is passing an invalid template argument to base class, sc_port
|
124 |
|
|
OLCLDL // Old style declaration found for SystemC clock '%s'
|
125 |
|
|
BDCLPR // The SystemC clock, '%s', is initialized with a bad value for clock period. It should be > 0
|
126 |
|
|
BDCLDC // The SystemC clock, '%s', is initialized with a bad value for duty cycle. It should be between 0 and 1
|
127 |
|
|
MDINLS // The SystemC module, '%s', is declared in the inner (local) scope of a class or function
|
128 |
|
|
BDPRNM // Bad value '%s' passed for the name argument of process created using sc_spawn
|
129 |
|
|
PRNONM // The process created using sc_spawn was not initialized with a name
|
130 |
|
|
NOBSCN // The macro SCV_BASE_CONSTRAINT(%s) not called in the constructor of constraint class '%s'
|
131 |
|
|
UCONMF // The method use_constraint called on the member field '%s' of constraint class '%s'
|
132 |
|
|
BDHCAG // The argument to method sc_hdl_task_handle::call_task has an unsupported type: '%s'
|
133 |
|
|
HCINCT // The method sc_hdl_task_handle::%s called in the constructor of SystemC module '%s'
|
134 |
|
|
CBNOVB // The scv_constraint_base class is not a virtual base class of constraint '%s'
|
135 |
|
|
BDRFFP // The formal parameter #%d of function '%s' has an unsupported type: '%s'
|
136 |
|
|
PBINPR // Port binding in SystemC Process '%s' of class '%s' is not allowed
|
137 |
|
|
BWDIFF // Assigning %s to %s: bit widths are different
|
138 |
|
|
BDINAG // Only the base class can be passed as an argument to macro, SCV_INIT
|
139 |
|
|
BDEXCT // Only the base class can be passed as an argument to macro, SCV_EXTENSIONS_BASE_CLASS
|
140 |
|
|
STRSUB // sc_string is typedef'd to std::string. The call to std::string::substr has different semantics than the call to sc_string::substr in previous versions of SystemC
|
141 |
|
|
}
|
142 |
|
|
|
143 |
|
|
category BEH_CODINGSTYLE_VHDL "Behavioral level coding style checks" default_on
|
144 |
|
|
{
|
145 |
|
|
WNBFLK {level="1"} // Port '%s' should not be of mode buffer or linkage
|
146 |
|
|
SYNCSL {level="1"} // The sensitivity list of a sequential process does not contain an asynchronous reset
|
147 |
|
|
BEHINI {level="2"} // A behavioral variable/signal '%s' is not initialized in its declaration
|
148 |
|
|
SUBTNM {level="2"} // Subtype name '%s' does not contain the type name '%s'
|
149 |
|
|
ENTDCL {level="2"} // A VHDL entity should only consist of generic and port interface lists
|
150 |
|
|
UNITNM {level="2"} // VHDL design-unit name '%s' is missing on the end line
|
151 |
|
|
SUBPNM {level="2"} // VHDL %s name '%s' is missing on the end line
|
152 |
|
|
NOLABL {level="2"} // Process label '%s' is missing as a closing label
|
153 |
|
|
ALOWID {level="2"} // Signal/variable name '%s' does not follow the active-low naming convention
|
154 |
|
|
MAXPRT {level="3"} // Entity '%s' must not have more than %d ports
|
155 |
|
|
PDFPKG {level="3"} // The standard/IEEE package '%s' should not be used
|
156 |
|
|
MLITNU {level="3"} // The enumeration type '%s' should not contain more than %d literals
|
157 |
|
|
DESULN {level="3"} // The length of design-unit '%s' should not exceed %d lines
|
158 |
|
|
FENAME {level="2"} // Identifier '%s' updated on negative edge of clock should have '_f' as suffix
|
159 |
|
|
USRATN {level="3"} // User-defined attribute '%s' is being used in architecture '%s'
|
160 |
|
|
}
|
161 |
|
|
|
162 |
|
|
category RTL_NAMING_VERILOG "Verilog only Naming checks" default_off
|
163 |
|
|
{
|
164 |
|
|
MODLNM {level="4"} // Module name '%s' does not follow the naming convention
|
165 |
|
|
SVIFNM {level="4"} // SystemVerilog interface name '%s' does not follow the recommended naming convention
|
166 |
|
|
INSTNM {level="4"} // Instance name '%s' does not follow the naming convention
|
167 |
|
|
BLKLNM {level="4"} // Begin/end block name '%s' does not follow the naming convention
|
168 |
|
|
FUNCNM {level="4"} // Function name '%s' does not follow the naming convention
|
169 |
|
|
TASKNM {level="4"} // Task name '%s' does not follow the naming convention
|
170 |
|
|
PARMNM {level="4"} // Parameter name '%s' does not follow the naming convention
|
171 |
|
|
INTGNM {level="4"} // Integer variable name '%s' does not follow the naming convention
|
172 |
|
|
REALNM {level="4"} // Real variable name '%s' does not follow the naming convention
|
173 |
|
|
MEMRNM {level="4"} // Memory name '%s' does not follow the naming convention
|
174 |
|
|
WIRENM {level="4"} // Wire name '%s' does not follow the naming convention
|
175 |
|
|
REGRNM {level="4"} // Register name '%s' does not follow the naming convention
|
176 |
|
|
VLFLNM {level="4"} // File name '%s' does not follow the recommended naming convention%s
|
177 |
|
|
}
|
178 |
|
|
|
179 |
|
|
category RTL_NAMING_ASSERTIONS "SystemVerilog Assertion only Naming checks" default_off
|
180 |
|
|
{
|
181 |
|
|
LOCVNM {level="4"} // Local variable '%s' in %s does not follow the recommended naming convention
|
182 |
|
|
ASTMNM {level="4"} // Assert statement '%s' does not follow the recommended naming convention
|
183 |
|
|
COVRNM {level="4"} // Cover statement '%s' does not follow the recommended naming convention
|
184 |
|
|
ASUMNM {level="4"} // Assume statement '%s' does not follow the recommended naming convention
|
185 |
|
|
PROPNM {level="4"} // Property '%s' does not follow the recommended naming convention
|
186 |
|
|
SEQNNM {level="4"} // Sequence '%s' does not follow the recommended naming convention
|
187 |
|
|
}
|
188 |
|
|
|
189 |
|
|
category RTL_NAMING_VHDL "VHDL only Naming checks" default_off
|
190 |
|
|
{
|
191 |
|
|
ARCHNM {level="4"} // Architecture name '%s' does not follow the naming convention
|
192 |
|
|
ENTYNM {level="4"} // Entity name '%s' does not follow the naming convention
|
193 |
|
|
PCKGNM {level="4"} // Package name '%s' does not follow the naming convention
|
194 |
|
|
CMPPKG {level="4"} // Package name %s does not follow the recommended naming convention
|
195 |
|
|
SUBRNM {level="4"} // Subprogram name '%s' does not follow the naming convention
|
196 |
|
|
ACCSNM {level="4"} // Access-type name '%s' does not follow the naming convention
|
197 |
|
|
CNSTNM {level="4"} // Constant name '%s' does not follow the naming convention
|
198 |
|
|
FILENM {level="4"} // File name '%s' does not follow the naming convention
|
199 |
|
|
LIBRNM {level="4"} // Library name '%s' does not follow the naming convention
|
200 |
|
|
SIGLNM {level="4"} // Signal name '%s' does not follow the naming convention
|
201 |
|
|
VARLNM {level="4"} // Variable name '%s' does not follow the naming convention
|
202 |
|
|
CONFNM {level="4"} // Configuration name '%s' does not follow the recommended naming convention
|
203 |
|
|
CONFIL {level="4"} // Configuration file name '%s' does not follow the naming convention
|
204 |
|
|
}
|
205 |
|
|
|
206 |
|
|
category RTL_NAMING_MIXED "Naming checks for Verilog and VHDL" default_off
|
207 |
|
|
{
|
208 |
|
|
PORTNM {level="4"} // Port name '%s' does not follow the naming convention
|
209 |
|
|
TBCHNM {level="4"} // File name '%s' does not follow the recommended testbench naming convention%s
|
210 |
|
|
OUTPNM {level="4"} // Output port name '%s' does not follow the naming convention
|
211 |
|
|
INPTNM {level="4"} // Input port name '%s' does not follow the naming convention
|
212 |
|
|
IOPTNM {level="4"} // Inout port name '%s' does not follow the naming convention
|
213 |
|
|
CLKSNM {level="4"} // Clock signal name '%s' does not follow the naming convention
|
214 |
|
|
RSTNAM {level="4"} // Reset signal name '%s' does not follow the recommended naming convention
|
215 |
|
|
DIFCLK {level="2"} // Clock '%s' is being renamed to '%s'
|
216 |
|
|
DIFRST {level="2"} // Set/Reset '%s' is being renamed to '%s'
|
217 |
|
|
RENAME {level="4"} // Signal '%s' renamed as '%s'
|
218 |
|
|
UCOPNM {level="4"} // Unconnected output signal name '%s' does not follow the recommended naming convention
|
219 |
|
|
NTACHR {level="4"} // Identifier '%s' contains characters that are not allowed
|
220 |
|
|
FCNLTR {level="4"} // First character of identifier '%s' is not a letter
|
221 |
|
|
ESCNTA {level="4"} // Identifier '%s' contains escaped names, which should not be used
|
222 |
|
|
RGOPNM {level="4"} // Output register name '%s' does not follow the recommended naming convention
|
223 |
|
|
TESTNM {level="4"} // Test mode signal '%s' does not follow the recommended naming convention
|
224 |
|
|
HIMPNM {level="4"} // High impedance signal name '%s' does not follow the recommended naming convention
|
225 |
|
|
STMCNM {level="4"} // State machine's state '%s' does not follow the recommended naming convention
|
226 |
|
|
LTCHNM {level="4"} // Latch '%s' does not follow the recommended naming convention
|
227 |
|
|
MULSNO {level="4"} // Signal name '%s' does not follow the multiple suffix naming order
|
228 |
|
|
DIFSIG {level="4"} // Actual port name '%s' of instance '%s' does not follow the recommended naming convention
|
229 |
|
|
}
|
230 |
|
|
|
231 |
|
|
category RTL_FILEFORMAT_VERILOG "Verilog only File format checks" default_on
|
232 |
|
|
{
|
233 |
|
|
VERREP {level="3"} // Repeated usage of identifier or label name '%s'
|
234 |
|
|
KEYWOD {level="3"} // VHDL reserved word '%s' used as an identifier or label
|
235 |
|
|
MULTMF {level="3"} // More than one design-unit definition in file '%s'
|
236 |
|
|
PRTODR {level="4"} // Port declaration '%s' does not follow the port layout order or/and does not match the port list
|
237 |
|
|
PRTLYO {level="4"} // Ports declared in module '%s' do not follow the port layout order
|
238 |
|
|
}
|
239 |
|
|
|
240 |
|
|
category RTL_FILEFORMAT_VHDL "VHDL only File format checks" default_on
|
241 |
|
|
{
|
242 |
|
|
CASMIS {level="2"} // VHDL object '%s' has case mismatch between instantiation and declaration
|
243 |
|
|
COMDIF {level="2"} // VHDL object '%s' has mismatch between component and its entity declaration
|
244 |
|
|
VHDREP {level="3"} // Repeated usage of identifier or label name '%s'
|
245 |
|
|
STYSUL {level="3"} // Type std_ulogic used for identifier '%s'. Use std_logic to avoid portability issues
|
246 |
|
|
STYSUV {level="3"} // Type std_ulogic vector used for identifier '%s'. Use std_logic_vector to avoid portability issues
|
247 |
|
|
STYBIT {level="3"} // Type bit used for identifier '%s'. Use std_logic to avoid portability issues
|
248 |
|
|
STYBTV {level="3"} // Type bit_vector used for identifier '%s'. Use std_logic_vector to avoid portability issues
|
249 |
|
|
GENUSD {level="3"} // Generate statement used. This will create portability issues
|
250 |
|
|
STYBLK {level="3"} // Block statement used. This will create portability issues
|
251 |
|
|
MXPROC {level="3"} // The architecture '%s' contains more than %d process statements
|
252 |
|
|
ONELIB {level="2"} // Single library declaration clause used to declare multiple library names
|
253 |
|
|
INPPRT {level="4"} // Input port '%s' does not follow the layout convention
|
254 |
|
|
CLKPRT {level="4"} // Clock port '%s' does not follow the layout convention
|
255 |
|
|
RSTPRT {level="4"} // Reset port '%s' does not follow the layout convention
|
256 |
|
|
INOPRT {level="4"} // Inout/Buffer port '%s' does not follow the layout convention
|
257 |
|
|
ARCHID {level="3"} // Architecture name '%s' does not follow recommended naming convention
|
258 |
|
|
}
|
259 |
|
|
|
260 |
|
|
category RTL_FILEFORMAT_MIXED " File format checks for Verilog and VHDL" default_on
|
261 |
|
|
{
|
262 |
|
|
VERCAS {level="2"} // Identifier, label, instance, or module name '%s' reused with a case difference
|
263 |
|
|
DIRRNG {level="2"} // Inconsistent ordering of bits in range declarations -- should be all %s ranges
|
264 |
|
|
KYEDIF {level="2"} // EDIF reserved word '%s' used as an identifier or label
|
265 |
|
|
NEEDIO {level="2"} // Top-level %s '%s' has no inputs/outputs/inouts
|
266 |
|
|
IDLENG {level="2"} // Identifier name '%s' is not of appropriate length (%d to %d characters)
|
267 |
|
|
ALOWNM {level="2"} // Identifier '%s' does not follow the recommended naming convention
|
268 |
|
|
KVHWOD {level="3"} // Verilog reserved word '%s' used as an identifier or label
|
269 |
|
|
STYVAL {level="3"} // Numeric value '%d' used for identifier '%s'. Use constants to avoid portability issues
|
270 |
|
|
SUBPLN {level="3"} // The length of subprogram '%s' should not exceed %d lines
|
271 |
|
|
SYSVKW {level="3"} // SystemVerilog reserved word '%s' used as an identifier or label
|
272 |
|
|
AMSKWD {level="3"} // AMS reserved word '%s' used as an identifier or label
|
273 |
|
|
CTLCHR {level="4"} // HDL source line contains one or more control characters
|
274 |
|
|
UPCLBL {level="4"} // Label '%s' should be written in uppercase
|
275 |
|
|
DIFFMN {level="4"} // %s name '%s' differs from file name '%s'
|
276 |
|
|
NOBLKN {level="4"} // Each block should be labeled with a meaningful name
|
277 |
|
|
SEPLIN {level="4"} // Use a separate line for each HDL statement
|
278 |
|
|
LCVARN {level="4"} // %s name '%s' uses uppercase characters
|
279 |
|
|
UCCONN {level="4"} // Lowercase characters used for identifier '%s'. Use uppercase characters for names of constants and user-defined types
|
280 |
|
|
NOINSN {level="4"} // Each module/gate/primitive instance should be labeled with a meaningful name
|
281 |
|
|
FILSUF {level="4"} // The file name '%s' is missing a valid HDL file name extension
|
282 |
|
|
DECLIN {level="4"} // Use a separate line for each HDL declaration
|
283 |
|
|
MAXLEN {level="4"} // The HDL source line is %d characters, which exceeds the recommended length of %d characters
|
284 |
|
|
SIGLEN {level="4"} // Signal name '%s' is not of appropriate length (%d to %d characters)
|
285 |
|
|
}
|
286 |
|
|
|
287 |
|
|
category RTL_CODECOMMENT_VERILOG "Verilog only Code comment checks" default_off
|
288 |
|
|
{
|
289 |
|
|
COMSTY {level="4"} // Do not use '%s' comment style in code
|
290 |
|
|
COMINS {level="4"} // Instantiated cells should have a comment on the same or preceding line
|
291 |
|
|
COMDIR {level="4"} // Compiler directive '%s' should have a comment on the same or preceding line
|
292 |
|
|
COMEND {level="4"} // Verilog end/endcase statement should have a comment on the same line
|
293 |
|
|
COMLTH {level="4"} // Latch declarations should have a comment on the same or preceding line
|
294 |
|
|
}
|
295 |
|
|
|
296 |
|
|
category RTL_CODECOMMENT_MIXED "Code comment checks for Verilog and VHDL" default_off
|
297 |
|
|
{
|
298 |
|
|
COMBLK {level="4"} // Always/process block should have a comment on the same or preceding line
|
299 |
|
|
COMIOP {level="4"} // Port declarations should have a comment on the same or preceding line
|
300 |
|
|
COMDEC {level="4"} // Net/signal declarations should have a comment on the same or preceding line
|
301 |
|
|
COMGTD {level="4"} // Gated clocks should have a comment on the same or preceding line
|
302 |
|
|
FHDRFT {level="4"} // File header format does not follow the template
|
303 |
|
|
SHDRFT {level="4"} // Sub-header format for %s does not follow the template
|
304 |
|
|
}
|
305 |
|
|
|
306 |
|
|
category RTL_CODINGSTYLE_VERILOG "Verilog only coding style checks" default_on
|
307 |
|
|
{
|
308 |
|
|
NBCOMB {level="1"} // Non-blocking assignment encountered in a combinational block
|
309 |
|
|
IFDDEF {level="1"} // Macro '%s' is defined using `define statement in the same verilog file
|
310 |
|
|
BLKSQB {level="1"} // Blocking assignment encountered in a sequential block
|
311 |
|
|
CDEFCV {level="1"} // The case items of the case statement cover all the numerical values of the case expression. The default clause is not required
|
312 |
|
|
BLNBLK {level="1"} // Signal '%s' is assigned via both blocking and non-blocking assignments
|
313 |
|
|
EVUNTR {level="1"} // Event variable '%s' is never triggered
|
314 |
|
|
LOGAND {level="1"} // Bit-wise AND in a conditional expression. Logical AND may have been intended
|
315 |
|
|
LOGORP {level="1"} // Bit-wise OR in a conditional expression. Logical OR may have been intended
|
316 |
|
|
LOGNEG {level="1"} // Bit-wise negation in a conditional expression. Logical NOT may have been intended
|
317 |
|
|
MULOPR {level="1"} // Logical %s operator applied to multi-bit operand %s
|
318 |
|
|
CDEFNC {level="1"} // Case statement %s
|
319 |
|
|
INCMPC {level="1"} // Not all cases are covered in the parallel case (%d of possible %d covered)
|
320 |
|
|
CASEZX {level="1"} // Case item expression contains 'x' for a casez statement (useful only in casex statements)
|
321 |
|
|
OBMEMI {level="1"} // Memory word '%s[%s]' has an index of size %d, which may reference a memory word, which is outside the defined range of the memory (%d words)
|
322 |
|
|
DIFRNG {level="1"} // Port '%s' with range (%d to %d) is re-declared with a different range (%d to %d)
|
323 |
|
|
CONSLC {level="1"} // Module '%s' contains a loop with a constant termination conditional expression
|
324 |
|
|
OOMCAL {level="1"} // Use of an out-of-module task call to %s
|
325 |
|
|
INPOUT {level="1"} // Primary input port %s of module %s may be driven inside the module
|
326 |
|
|
SIZMIS {level="1"} // Port '%s' has size mismatch between module instantiation and declaration
|
327 |
|
|
PRTSYN {level="1"} // Port '%s' is declared using a mix of VLOG95 and VLOG2001 declaration styles
|
328 |
|
|
UELASG {level="1"} // Unequal length operand in assignment
|
329 |
|
|
CONDSZ {level="1"} // Expression in condition does not result in a single bit value
|
330 |
|
|
OPLVNC {level="1"} // '%s' operation between loop variable '%s' and non constant value '%s'
|
331 |
|
|
PRMVAL {level="1"} // Bit width not specified for parameter '%s'
|
332 |
|
|
PRMBSE {level="1"} // Base not specified for parameter '%s'
|
333 |
|
|
MULCAS {level="1"} // Overlapping case item %s
|
334 |
|
|
NBFUNC {level="2"} // Non-blocking assignment encountered in function '%s'
|
335 |
|
|
BADSYS {level="2"} // System task %s in %s %s is ignored
|
336 |
|
|
RTLNOG {level="2"} // Gate instances are not expected in an RTL design
|
337 |
|
|
RTLNOP {level="2"} // Primitive instances are not expected in an RTL design
|
338 |
|
|
RTLINI {level="2"} // A variable/signal '%s' in an RTL description is initialized in its declaration
|
339 |
|
|
PLIFTN {level="2"} // PLI 1.0 function %s in module '%s' is ignored
|
340 |
|
|
EMPSTM {level="2"} // %s '%s' contains an empty statement
|
341 |
|
|
EMPBLK {level="2"} // Module %s has an empty block
|
342 |
|
|
IGNSTR {level="2"} // Signal strength values are being ignored
|
343 |
|
|
LIBIMP {level="2"} // '%s' is supported only in library cells
|
344 |
|
|
NOSPEC {level="2"} // Specify block in module %s is ignored
|
345 |
|
|
INIMEM {level="2"} // Initialization of memory %s in module %s is ignored
|
346 |
|
|
NOGATE {level="2"} // Module %s contains unsupported gate type %s
|
347 |
|
|
NOSWTC {level="2"} // Module '%s' contains non-synthesizable switch type '%s'
|
348 |
|
|
NOWIRE {level="2"} // Module %s contains node %s of unsupported trireg type
|
349 |
|
|
FSETGV {level="2"} // Function '%s' in module '%s' assigns a value to global variable '%s'
|
350 |
|
|
FTNNAS {level="2"} // HDL statement after function assignment return statement in function '%s' in module '%s'
|
351 |
|
|
FUSEGV {level="2"} // Function '%s' in module '%s' uses global variable '%s'
|
352 |
|
|
TSETGV {level="2"} // Task '%s' in module '%s' assigns a value to global variable '%s'
|
353 |
|
|
TUSEGV {level="2"} // Task '%s' in module '%s' uses global variable '%s'
|
354 |
|
|
USEPAR {level="2"} // %s '%s' defined in %s '%s' is unused
|
355 |
|
|
USEENM {level="2"} // Enum variable '%s' defined in %s '%s' is unused
|
356 |
|
|
USEWIR {level="2"} // Wire '%s' defined in module '%s' is unused
|
357 |
|
|
USEREG {level="2"} // Local register variable '%s' defined in %s '%s' is unused
|
358 |
|
|
USETSK {level="2"} // %s '%s' defined in %s '%s' is unused
|
359 |
|
|
INTEGD {level="2"} // Delay expression is not an integer
|
360 |
|
|
CONSTD {level="2"} // Delay is not a constant expression
|
361 |
|
|
DLNBLK {level="2"} // Delay in non-blocking assignment; delay will be ignored
|
362 |
|
|
NULPRT {level="2"} // Module '%s' has null formal port(s)
|
363 |
|
|
UASWIR {level="2"} // Wire '%s' defined in %s '%s' is unassigned, but drives at least an object
|
364 |
|
|
UASREG {level="2"} // Local register variable '%s' is unassigned, but is read at least once in %s '%s'
|
365 |
|
|
URDWIR {level="2"} // Wire '%s' defined in %s '%s' does not drive any object, but is assigned at least once
|
366 |
|
|
URDREG {level="2"} // Local register variable '%s' is not read, but is assigned at least once in %s '%s'
|
367 |
|
|
URAWIR {level="2"} // Wire '%s' defined in %s '%s' is unused (neither read nor assigned)
|
368 |
|
|
URAREG {level="2"} // Local register variable '%s' defined in %s '%s' is unused (neither read nor assigned)
|
369 |
|
|
IMPNET {level="2"} // Net '%s' has an implicit declaration of type '%s'
|
370 |
|
|
IMPDTC {level="2"} // Expression '%s' implicitly converted to type 'unsigned' from type 'signed'
|
371 |
|
|
IMPTYP {level="2"} // Expression '%s' implicitly converted to type '%s' from type '%s'
|
372 |
|
|
IPUFSE {level="2"} // Expression '%s' implicitly converted to type 'signed' from type 'unsigned'
|
373 |
|
|
IPSFOU {level="2"} // Signal/Constant '%s' implicitly converted to type 'signed' from type 'unsigned'
|
374 |
|
|
CXZSIG {level="2"} // In module '%s', assignment statements corresponding to '%s' item has a non-constant driver
|
375 |
|
|
RDBFAS {level="2"} // Register '%s', assigned using blocking assignment, is being read before getting assigned
|
376 |
|
|
REVROP {level="2"} // Register '%s' is being read/assigned outside the process in which it was assigned using a blocking assignment
|
377 |
|
|
PRMNAM {level="2"} // Passing of parameters to instance '%s' of module '%s' should be done by name rather than by position
|
378 |
|
|
EXPIPC {level="2"} // Formal port '%s' of instance '%s' is connected to an expression
|
379 |
|
|
FORINT {level="2"} // Variable '%s' is not initialized before being incremented/decremented in the for loop
|
380 |
|
|
FINBLK {level="2"} // The final block of module '%s' does not contain any display statement
|
381 |
|
|
STRREL {level="2"} // String %s is used in the relational operation '%s'
|
382 |
|
|
PRMSZM {level="2"} // Parameter '%s' has a size mismatch between module instantiation and declaration
|
383 |
|
|
POIASG {level="2"} // The result of %s operation may lead to a potential overflow
|
384 |
|
|
FCWDEF {level="2"} // Redundant case expression -- full_case has a default case
|
385 |
|
|
SGNUSG {level="2"} // Negative value '%s' assigned to an unsigned variable '%s'
|
386 |
|
|
OVRDRT {level="2"} // The return statement will override the value assigned to the function name
|
387 |
|
|
CAFDEF {level="2"} // 'default' is not the last item of case statement
|
388 |
|
|
BITUNS {level="2"} // Not all bits of constant '%s' are explicitly specified
|
389 |
|
|
RDNTCX {level="3"} // Casex usage is redundant as none of the case item expression contains 'x', 'z', or '?'
|
390 |
|
|
RDNTCZ {level="3"} // Casez usage is redundant as none of the case item expression contains 'z' or '?'
|
391 |
|
|
NOINCD {level="3"} // Compiler directive `include should not be used
|
392 |
|
|
FNAVPC {level="1"} // Function %s
|
393 |
|
|
MLPSGS {level="2"} // Multiple %s signals used in flip-flop '%s'
|
394 |
|
|
RDOPND {level="3"} // Expression contains redundant %s
|
395 |
|
|
IOPNTA {level="2"} // Port '%s' should not be of mode inout
|
396 |
|
|
NSTIFD {level="2"} // The ifdef directive has exceeded three levels of nesting
|
397 |
|
|
SNOROP {level="2"} // Logical/Bitwise OR operator used in the sensitivity list
|
398 |
|
|
INDXOP {level="2"} // An operator is used in the index of the array '%s'
|
399 |
|
|
LMULOP {level="2"} // The result of the multiplication operation exceeds '%d' bits
|
400 |
|
|
NCASEX {level="3"} // 'casex' statement used in module '%s'
|
401 |
|
|
NFCASE {level="3"} // 'full_case' synthesis directive used in module '%s'
|
402 |
|
|
NOUNDF {level="3"} // Macro defined using `define statement is not undefined using `undef statement in module '%s'
|
403 |
|
|
NODEFD {level="3"} // Compiler directive `define should not be used
|
404 |
|
|
NETDCL {level="3"} // %s '%s' is not declared prior to non-declarative statement(s) or does not follow the recommended declaration sequence
|
405 |
|
|
BUSREV {level="3"} // Formal '%s[%d:%d]' port is connected in opposite order with the actual port(s)
|
406 |
|
|
INCLDR {level="4"} // Absolute or relative path specified with the `include compiler directive
|
407 |
|
|
PIMBIT {level="2"} // Primitive input port (port index : %d ) is connected to signal/expression with multiple bits. Reduction OR logic is being applied
|
408 |
|
|
IFMULT {level="2"} // Conditional expression '%s' completely overlaps one or more branches of the 'if-else' block
|
409 |
|
|
LOOPTM {level="2"} // Logic or Relational operation between a loop variable and a non-constant value is repeated more than %d times
|
410 |
|
|
}
|
411 |
|
|
|
412 |
|
|
category RTL_CODINGSTYLE_VHDL "VHDL only coding style checks" default_on
|
413 |
|
|
{
|
414 |
|
|
NOSHFT {level="1"} // Shift operator %s with signed shift count is not synthesizable
|
415 |
|
|
INTCON {level="1"} // VHDL signal '%s' of type integer is not constrained
|
416 |
|
|
NEGRNG {level="1"} // Index range of integer signal '%s' is '%d'
|
417 |
|
|
ENBFLK {level="1"} // Port '%s' should not be of mode buffer or linkage
|
418 |
|
|
SYNCSL {level="1"} // The sensitivity list of a sequential process does not contain an asynchronous reset
|
419 |
|
|
MLTCLK {level="1"} // The sequential process contains more than one clock signal
|
420 |
|
|
CLKEDG {level="1"} // Both edges of clock signal '%s' are used in a sequential process
|
421 |
|
|
GATCLK {level="1"} // Gated clock signal '%s' is not properly formed/used
|
422 |
|
|
BADCON {level="1"} // Bad VHDL construct '%s' is being used
|
423 |
|
|
FTNRET {level="1"} // Function '%s' declared in architecture '%s' does not return a value
|
424 |
|
|
INVBAS {level="1"} // Invalid base (%d) used in VHDL based literal
|
425 |
|
|
ENTDCL {level="2"} // A VHDL entity should only consist of generic and port interface lists
|
426 |
|
|
RTLINI {level="2"} // A variable/signal '%s' in an RTL description is initialized in its declaration
|
427 |
|
|
GENTYP {level="0"} // The generic '%s' is not of an authorized type
|
428 |
|
|
PRTTYP {level="2"} // Port '%s' is not of an authorized type (std_logic, std_logic_vector, signed, unsigned)
|
429 |
|
|
SEQVAS {level="2"} // VHDL variable '%s' is used to register data
|
430 |
|
|
UNITNM {level="2"} // VHDL design-unit name '%s' is missing on the end line
|
431 |
|
|
SUBPNM {level="2"} // VHDL %s name '%s' is missing on the end line
|
432 |
|
|
NOLABL {level="2"} // Process label '%s' is missing as a closing label
|
433 |
|
|
ALOWID {level="2"} // Signal/variable name '%s' does not follow the active-low naming convention
|
434 |
|
|
NOALIA {level="2"} // Aliases should not be used
|
435 |
|
|
SPSIGA {level="2"} // Subprogram assigns a value to signal '%s'
|
436 |
|
|
SUBTNM {level="2"} // Subtype name '%s' does not contain the type name '%s'
|
437 |
|
|
NRTLWT {level="2"} // Sensitivity lists should be used instead of wait statements
|
438 |
|
|
CECONC {level="2"} // Concatenation operation used in conditional expression
|
439 |
|
|
FENAME {level="2"} // Identifier '%s' updated on negative edge of clock should have '_f' as suffix
|
440 |
|
|
POIASG {level="2"} // The result of %s operation may lead to a potential overflow
|
441 |
|
|
GLBSIG {level="2"} // Global signal '%s' is being used in architecture '%s'
|
442 |
|
|
USRATW {level="2"} // User-defined attribute '%s' is being used in architecture '%s'
|
443 |
|
|
ONELIB {level="2"} // Single library declaration clause used to declare multiple library names
|
444 |
|
|
PROSIG {level="2"} // Signal '%s' defined in architecture '%s' is used inside only one process. Use variable instead
|
445 |
|
|
PRTMOD {level="2"} // Port mode mismatch in '%s' component declaration for port '%s'. Declaration is of mode %s, entity port declaration is of mode %s
|
446 |
|
|
PUSEGV {level="2"} // Procedure '%s' in design-unit '%s' uses global variable '%s'
|
447 |
|
|
WRKLIB {level="2"} // Library '%s' should not be referenced in the design
|
448 |
|
|
CALABL {level="2"} // Concurrent signal assignment used to express behavior requires a label
|
449 |
|
|
FTNPMC {level="2"} // Parameter '%s' of function '%s' has missing/incorrect mode and/or object class
|
450 |
|
|
PROPMC {level="2"} // Parameter '%s' of procedure '%s' has missing/incorrect mode and/or object class
|
451 |
|
|
ENTPMC {level="2"} // No mode specified for port '%s' in entity declaration
|
452 |
|
|
COMPMC {level="2"} // No mode specified for port '%s' in component declaration
|
453 |
|
|
LPEXIT {level="2"} // Loop contains an exit or next statement
|
454 |
|
|
RECTYP {level="2"} // Record type '%s' should not be used
|
455 |
|
|
USELIB {level="2"} // Library '%s' is declared, but no object is used from it
|
456 |
|
|
LINPRT {level="2"} // Port '%s' of mode linkage does not form part of the layout convention
|
457 |
|
|
GLBRES {level="2"} // Global signal '%s' is of resolved type
|
458 |
|
|
IDXMIS {level="2"} // Port '%s' has index bounds mismatch between component instantiation '%s' and entity declaration '%s'
|
459 |
|
|
UASVAR {level="2"} // Variable '%s' is unassigned, but is read at least once in %s '%s'
|
460 |
|
|
URAVAR {level="2"} // Variable '%s' defined in %s '%s' is unused (neither read nor assigned)
|
461 |
|
|
URDVAR {level="2"} // Variable '%s' is not read, but assigned at least once in %s '%s'
|
462 |
|
|
UASSIG {level="2"} // Signal '%s' is unassigned, but is read at least once in %s '%s'
|
463 |
|
|
URASIG {level="2"} // Signal '%s' defined in %s '%s' is unused (neither read nor assigned)
|
464 |
|
|
URDSIG {level="2"} // Signal '%s' is not read, but assigned at least once in %s '%s'
|
465 |
|
|
USCNST {level="2"} // Constant '%s' defined in %s is unused
|
466 |
|
|
FILTXT {level="2"} // File specified with file variable '%s' is not of type TEXT
|
467 |
|
|
ABSPAT {level="2"} // Absolute path specified for file variable '%s'
|
468 |
|
|
MAXPRT {level="3"} // Entity '%s' must not have more than %d ports
|
469 |
|
|
MLITNU {level="3"} // The enumeration type '%s' should not contain more than %d literals
|
470 |
|
|
STDPKG {level="3"} // The IEEE package '%s' should not be used
|
471 |
|
|
DESULN {level="3"} // The length of design-unit '%s' should not exceed %d lines
|
472 |
|
|
INSTLB {level="3"} // Component instance label '%s' exceeds %d characters
|
473 |
|
|
MISUSC {level="3"} // Library '%s' is used without a 'use' clause
|
474 |
|
|
PWTHWT {level="2"} // Process block with no sensitivity list is without a wait statement
|
475 |
|
|
CDNWOT {level="1"} // Case statement without 'when others' clause
|
476 |
|
|
}
|
477 |
|
|
|
478 |
|
|
category RTL_CODINGSTYLE_MIXED "coding style checks for Verilog and VHDL" default_on
|
479 |
|
|
{
|
480 |
|
|
TFARGT {level="1"} // %s/function call argument %d is of wrong type (%s vs. %s)
|
481 |
|
|
TFARGN {level="1"} // Task/function call has wrong number of arguments
|
482 |
|
|
UNCONN {level="1"} // %s port '%s' defined in design-unit '%s' is not connected in its instance '%s'
|
483 |
|
|
UNCONI {level="1"} // Input port '%s' of entity/module '%s' is being used inside architecture/module, but not connected (either partially or completely) in its instance '%s'
|
484 |
|
|
UNCONO {level="1"} // Port '%s' (which is being used as an output) of entity/module '%s' is being driven inside the design, but not connected (either partially or completely) in its instance '%s'
|
485 |
|
|
CONSTC {level="1"} // Constant conditional expression encountered
|
486 |
|
|
CNSTCN {level="1"} // Conditional expression is statically evaluated to %s
|
487 |
|
|
SHFTNC {level="1"} // Shift by non-constant
|
488 |
|
|
UELCIT {level="1"} // Unequal length in case item comparison (selector is %d bits, case tag expression is %d bits)
|
489 |
|
|
UELOPR {level="1"} // Unequal length operand in bit/arithmetic operator %s
|
490 |
|
|
INTTOB {level="1"} // Assigning a 0 or 1 (32 bits) to a single-bit variable
|
491 |
|
|
CNSTCI {level="1"} // Case item expression is not a constant
|
492 |
|
|
TRUNCC {level="1"} // Truncation of bits in a constant. The most significant bits are lost
|
493 |
|
|
TRUNCZ {level="1"} // Truncation in constant conversion without a loss of bits
|
494 |
|
|
ULRELE {level="1"} // Unequal length operands in relational operator (padding produces incorrect result) -- LHS operand is %d bits, RHS operand is %d bits
|
495 |
|
|
ULCMPE {level="1"} // Unequal length operands in equality operator encountered (padding produces incorrect result). LHS operand is %d bits, RHS operand is %d bits
|
496 |
|
|
CEXPOR {level="1"} // Case item expression out of range
|
497 |
|
|
CIMULT {level="1"} // Case item expression covered more than once (covers same case item expression as in line %d)
|
498 |
|
|
DNGLEL {level="1"} // Ambiguous else statement in the nested if statement. It is recommended to enclose the inner if statement in a begin/end block
|
499 |
|
|
OOBIDX {level="1"} // %s '%s' (%s) is outside the defined range (%d to %d)
|
500 |
|
|
NULLRG {level="0"} // In design-unit/module %s, %s %s has null range defined
|
501 |
|
|
IDXRNG {level="1"} // Loop index is too small for the values it should take
|
502 |
|
|
CNREAL {level="1"} // Real variable %s is used in %s %s. Real variables are not synthesizable
|
503 |
|
|
CNINTB {level="1"} // Converting integer to a single-bit constant
|
504 |
|
|
INFLOP {level="1"} // %s %s possibly contains an infinite loop
|
505 |
|
|
MISSEL {level="1"} // Signal '%s' missing from sensitivity list of a sequential process/block
|
506 |
|
|
USESEL {level="1"} // Signal '%s' should not be used in the sensitivity list of a sequential process/block
|
507 |
|
|
NOTECH {level="1"} // Instance '%s' is instantiating a technology cell. Avoid using technology cells in the design
|
508 |
|
|
POOBID {level="1"} // Variable index/range selection of '%s' is potentially outside the defined range
|
509 |
|
|
IDXTSM {level="1"} // Variable index/range selection of '%s' is too small to access its defined range completely
|
510 |
|
|
NEQPRM {level="1"} // Size mismatch between formal %s parameters of function '%s'
|
511 |
|
|
ASNRST {level="1"} // %s '%s' has '%s' asynchronous set/reset '%s' as against the recommended '%s' style
|
512 |
|
|
SNCRST {level="1"} // %s '%s' has '%s' synchronous set/reset '%s' as against the recommended '%s' style
|
513 |
|
|
CBYNAM {level="1"} // Port connections for instance '%s' of %s '%s' should be made by name rather than by positional ordered list
|
514 |
|
|
SYNPRT {level="1"} // Output port '%s' is assigned asynchronously
|
515 |
|
|
CDEATF {level="1"} // Conditional expression always evaluates to %s
|
516 |
|
|
PBYNAM {level="2"} // Named association should be used in the parameter list for %s call '%s'
|
517 |
|
|
TIESUP {level="2"} // The output/inout '%s' is tied to supply0/supply1
|
518 |
|
|
TIELOG {level="2"} // The output/inout '%s' is assigned a constant logic value
|
519 |
|
|
TFWARG {level="2"} // Too few arguments passed to switch/gate
|
520 |
|
|
BOUINC {level="2"} // Lower bound of '%s' is not '%d'
|
521 |
|
|
INPASN {level="2"} // Assignment to a %s %s '%s' is not supported
|
522 |
|
|
DCLSCP {level="2"} // Variable '%s' defined in scope '%s' is also defined in parent scope '%s'
|
523 |
|
|
UNDRIV {level="2"} // Primary output/inout '%s' is not driven in the %s '%s'
|
524 |
|
|
PUNDRV {level="2"} // Primary output/inout '%s' is not fully driven in the %s '%s'
|
525 |
|
|
CNSTLT {level="2"} // Literal '%s' should be replaced with a constant
|
526 |
|
|
USEFTN {level="2"} // Function '%s' defined in %s '%s' is unused
|
527 |
|
|
USEPRT {level="2"} // The input/inout port '%s' defined in the %s '%s' is unused (neither read nor assigned)
|
528 |
|
|
UASPRT {level="2"} // The input/inout port '%s' defined in the %s '%s' is unassigned, but read
|
529 |
|
|
URDPRT {level="2"} // The input/inout port '%s' defined in the %s '%s' is unread, but assigned
|
530 |
|
|
SHFTOF {level="2"} // Shift overflow, some bits will be lost
|
531 |
|
|
REALCM {level="2"} // Real operand used in logical comparison
|
532 |
|
|
BSINTT {level="2"} // Bit/part select of integer or time variable '%s' encountered
|
533 |
|
|
EXTEND {level="2"} // Extension of '0' bits in a constant
|
534 |
|
|
PADMSB {level="2"} // Constant '%s' will be left-padded by %d '0' bits
|
535 |
|
|
NULCSE {level="2"} // Null statement should not be used in 'when others' clause in the case statement
|
536 |
|
|
REALCT {level="2"} // Real comparison in case expression
|
537 |
|
|
WIDSEL {level="2"} // Case statement with no default. Case is too wide to check if all cases are covered
|
538 |
|
|
NESTIF {level="2"} // Nested ifs. Consider using a %s statement instead
|
539 |
|
|
MEMSIZ {level="2"} // Memory declaration for '%s' defines a single-bit memory word. Check for error in register declaration
|
540 |
|
|
OUTINP {level="2"} // Primary output port %s of module %s may be driven outside the module
|
541 |
|
|
RDREAL {level="2"} // Real literal is rounded to the nearest integer
|
542 |
|
|
CNTIME {level="2"} // Time variable %s is used in %s %s. Time variables are not synthesizable
|
543 |
|
|
FTNEXT {level="2"} // Function '%s' must have only one return statement, which is the last statement in the function
|
544 |
|
|
UNRCHC {level="2"} // Code written after an unconditional return, break or continue statement is not reachable
|
545 |
|
|
FFASMX {level="2"} // In the specified always/process block, descriptions of flip-flops with and without asynchronous set/reset are mixed. Flip-flops without asynchronous set/reset are: %s
|
546 |
|
|
AVDREC {level="2"} // Function '%s' is called recursively in %s '%s'
|
547 |
|
|
LMTSTS {level="2"} // The number of states %d should be limited to %d
|
548 |
|
|
NUMSUF {level="2"} // Identifier '%s' has a numeric value suffix
|
549 |
|
|
STYVAL {level="3"} // Numeric value '%d' used for identifier '%s'. Use constants to avoid portability issues
|
550 |
|
|
SYNSCU {level="3"} // Embedded synthesis script used in the design
|
551 |
|
|
MPCMPE {level="3"} // Expression uses '%d' operands without parentheses, which exceeds the recommended limit of '%d' operands
|
552 |
|
|
LDFFPI {level="1"} // The logic depth between %s '%s' and %s '%s' is more than %s
|
553 |
|
|
DFLDER {level="0"} // Parameters specified are incorrect, check LDFFPI will be ignored
|
554 |
|
|
TRIWAR {level="2"} // Tristate logic inferred in %s block
|
555 |
|
|
TBNNAM {level="2"} // Testbench module/entity '%s' does not follow the recommended naming convention
|
556 |
|
|
TBNSTP {level="2"} // '$stop' used in testbench module/entity '%s'
|
557 |
|
|
IPRTEX {level="2"} // %s is used in a port expression
|
558 |
|
|
PRMEXP {level="2"} // %s '%s' used in a port expression
|
559 |
|
|
USEPKG {level="2"} // Package '%s' is declared but no object is used from it
|
560 |
|
|
}
|
561 |
|
|
|
562 |
|
|
category RTL_CODINGSTYLE_ASSERTIONS "coding style checks for Assertions" default_off
|
563 |
|
|
{
|
564 |
|
|
OOMRNM {level="4"} // Hierarchical reference '%s' passed as the DUT signal to %s '%s'
|
565 |
|
|
LABMIS {level="4"} // %s identifier '%s' not specified in the corresponding %s statement
|
566 |
|
|
}
|
567 |
|
|
|
568 |
|
|
category RTL_SIMRACE_VERILOG "Verilog only simulation race condition checks" default_on
|
569 |
|
|
{
|
570 |
|
|
RWRACE {level="0"} // A read/write race exists between '%s' and '%s'
|
571 |
|
|
WWRACE {level="0"} // '%s' is written in more than one process
|
572 |
|
|
TRRACE {level="0"} // A trigger-propagation race exists between '%s' and '%s'
|
573 |
|
|
NBCOMB {level="1"} // Non-blocking assignment encountered in a combinational block
|
574 |
|
|
BLKSQB {level="1"} // Blocking assignment encountered in a sequential block
|
575 |
|
|
BLNBLK {level="1"} // Signal '%s' is assigned via both blocking and non-blocking assignments
|
576 |
|
|
}
|
577 |
|
|
|
578 |
|
|
category RTL_SIMSYNTH_VERILOG "Verilog only pre and post-synthesis simulation mismatch checks" default_on
|
579 |
|
|
{
|
580 |
|
|
EVTRIG {level="0"} // Always block with no event trigger at the start of the block in module '%s'
|
581 |
|
|
LPVRMA {level="0"} // The loop variable '%s' is used in multiple always blocks
|
582 |
|
|
METAEQ {level="0"} // In module %s, %s comparison is treated as %s
|
583 |
|
|
METACX {level="1"} // In %s '%s', case/casez item expressions evaluating to 'x' are ignored
|
584 |
|
|
METACZ {level="1"} // In %s '%s', case item expressions evaluating to 'z' are ignored
|
585 |
|
|
CODNCR {level="2"} // Signal '%s' used in conditional expression has don't care value
|
586 |
|
|
EXLTRS {level="2"} // Expression used in the conditional logic of tristate buffer '%s'
|
587 |
|
|
}
|
588 |
|
|
|
589 |
|
|
category RTL_SIMSYNTH_MIXED "Verilog/VHDL pre and post-synthesis simulation mismatch checks" default_on
|
590 |
|
|
{
|
591 |
|
|
SYNTXZ {level="0"} // Synthesizing 'x'/'z' values in %s '%s'
|
592 |
|
|
INCSEL {level="0"} // '%s' missing from sensitivity list
|
593 |
|
|
METACO {level="0"} // In module %s, %s having 'x'/'z' statically evaluated to false
|
594 |
|
|
EXTENX {level="1"} // Extension of 'x' bits in a constant
|
595 |
|
|
EXTENZ {level="1"} // Extension of 'z' bits in a constant
|
596 |
|
|
SLVMOD {level="1"} // Identifier '%s' appearing in the sensitivity list is modified inside the block
|
597 |
|
|
SLRANG {level="1"} // Range '%s' used in the sensitivity list is not complete. This could lead to differences in simulation/synthesis
|
598 |
|
|
SLVUSE {level="1"} // Variable '%s' appearing in the sensitivity list is not used in the %s block
|
599 |
|
|
MXTSBC {level="1"} // Node '%s' has '%d' tri-state buffers connected, which exceeds the recommended limit of '%d'
|
600 |
|
|
TSBNTH {level="1"} // Logic driven by tri-state buffer '%s' is not in a separate module
|
601 |
|
|
XZDVAL {level="2"} // Delay value contains an x/z
|
602 |
|
|
IGNDLY {level="2"} // Lumped delay in %s '%s' is ignored
|
603 |
|
|
BITUSD {level="2"} // The bus variable '%s' appears in the sensitivity list, but all the bits are not used within the block
|
604 |
|
|
HASLEX {level="2"} // The design contains 'synthesis_off/synthesis_on' pragmas
|
605 |
|
|
MDLDCL {level="2"} // Signal '%s' is declared as '%s'. Use of '%s' can lead to simulation/synthesis mismatch
|
606 |
|
|
HASPGM {level="2"} // The design contains pragma directives
|
607 |
|
|
LEXPGM {level="2"} // File contains lexical pragmas, however it is not compiled with pragma/lexpragma command-line option
|
608 |
|
|
PRBULT {level="2"} // Pragma '%s' is being applied to function
|
609 |
|
|
FASNSR {level="1"} // In module/design-unit '%s', flip-flop has both asynchronous set and reset signals
|
610 |
|
|
}
|
611 |
|
|
|
612 |
|
|
category RTL_SYNTH_VERILOG "Verilog only synthesizability checks" default_on synth_only
|
613 |
|
|
{
|
614 |
|
|
EVTINV {level="0"} // The specified event expression cannot be synthesized
|
615 |
|
|
EVTDCL {level="0"} //
|
616 |
|
|
EVTCTL {level="0"} // Module %s contains non-synthesizable named event control %s
|
617 |
|
|
NOFREL {level="0"} // %s %s contains non-synthesizable force/release constructs
|
618 |
|
|
NOWAIT {level="0"} // %s %s contains non-synthesizable wait construct
|
619 |
|
|
NOFORE {level="0"} // Module '%s' contains non-synthesizable forever construct
|
620 |
|
|
NOFKJN {level="0"} // %s %s contains non-synthesizable fork-join constructs
|
621 |
|
|
NFOREV {level="0"} // Module %s contains unsupported forever construct
|
622 |
|
|
USGTSW {level="0"} // "%s" not supported
|
623 |
|
|
PTYPUS {level="0"} // In design-unit %s, ports of type "%s" are not supported
|
624 |
|
|
NONOWF {level="0"} // 'now' function in design-unit %s is not synthesizable
|
625 |
|
|
AMODNS {level="0"} // Aliased modules are not supported by default. Module %s has duplicate input/inout ports which has effect of aliasing (shorting) two nets
|
626 |
|
|
INIEVN {level="0"} // Module %s contains non-synthesizable initial block with event control
|
627 |
|
|
NODSBL {level="0"} // Module %s contains unsupported disable construct
|
628 |
|
|
NSLOOP {level="0"} // %s %s contains non-static loop
|
629 |
|
|
NOEVRP {level="0"} // Module '%s' contains non-synthesizable repeat event specification
|
630 |
|
|
NEVREP {level="0"} // %s %s contains non-synthesizable repeat event specification
|
631 |
|
|
DPRUSP {level="0"} // Module %s has non-synthesizable defparam statement
|
632 |
|
|
MULWIR {level="0"} // Module '%s' has wire '%s%s' multi-driven
|
633 |
|
|
MUDREG {level="0"} // In module '%s', register '%s' is driven in more than one block or process
|
634 |
|
|
PCAUSP {level="0"} // Module %s has non-synthesizable assign/deassign statements
|
635 |
|
|
OOMRUS {level="0"} // %s %s has unsynthesizable OOMRs (Out-Of-Module Reference)
|
636 |
|
|
INAEVT {level="0"} // Module '%s' contains an unsupported intra-assignment event specification
|
637 |
|
|
USINEV {level="0"} // %s %s contains unsupported intra-assignment event specification
|
638 |
|
|
INTEVN {level="0"} // Module %s contains unsupported inter-statement event specification
|
639 |
|
|
CLKMIX {level="0"} // Always block has both level and edge sensitive nodes in its sensitivity list
|
640 |
|
|
HDLBND {level="0"} // Module '%s' specified through the 'bind_top' option has constructs other than bind statements specified in it. Only bind statements present in this module will be recognized and all other constructs will be ignored by the tool
|
641 |
|
|
NOIVAL {level="0"} // The initial value is missing in the declaration of constant '%s'
|
642 |
|
|
UNSINI {level="0"} // Increment/Decrement operators in the port connection of an instance are not supported by the tool. Remodel the design without using these operators
|
643 |
|
|
VLPMWL {level="0"} // Value of loop variable '%s' modified within the loop
|
644 |
|
|
TCLKED {level="0"} // %s of signal '%s' used in task '%s'
|
645 |
|
|
CELVEC {level="1"} // No re-timing will be done for %s cell
|
646 |
|
|
INFREC {level="1"} // %s %s possibly contains unbounded subprogram recursions
|
647 |
|
|
LRGARR {level="1"} // The given assignment has a very large variably indexed node on the left hand side, processing the statement may be very time-consuming
|
648 |
|
|
NOASLD {level="1"} // In module %s, asynchronous load is not inferred for node %s%s
|
649 |
|
|
MULNBA {level="1"} // In module '%s', register '%s' has multiple non-blocking assignments%s
|
650 |
|
|
MULBAS {level="2"} // In module '%s', register '%s' has multiple blocking assignments%s
|
651 |
|
|
UCLPNS {level="1"} // In design-unit '%s', an unconditional loop statement is encountered
|
652 |
|
|
MULIFF {level="1"} // Always block has multiple event controls with associated 'iff' qualifiers
|
653 |
|
|
ASNIFF {level="1"} // Always block has an asynchronous control with associated 'iff' qualifier
|
654 |
|
|
NOCOMB {level="1"} // The node '%s' models a %s in an 'always_comb' block
|
655 |
|
|
NLATCH {level="1"} // The node '%s' models a %s in an 'always_latch' block
|
656 |
|
|
NOFLOP {level="1"} // The node '%s' models a %s in an 'always_ff' block
|
657 |
|
|
MTCOND {level="1"} // The specified case statement with a 'unique' keyword has more than one case item that matches the case expression
|
658 |
|
|
NTCOND {level="1"} // The specified case statement with a 'unique' or 'priority' keyword does not have any case item that matches the case expression
|
659 |
|
|
IGPRAG {level="1"} // The tool does not support unique/priority constructs in edge sensitive sequential blocks. This construct will be ignored by the tool
|
660 |
|
|
NOLOCL {level="2"} // In %s %s, local nodes of task/function %s are initialized
|
661 |
|
|
INIUSP {level="2"} // %s %s has an initial block or a variable declaration assignment, which is ignored by synthesis tools
|
662 |
|
|
FINUSP {level="2"} // Module '%s' has a final block, which is ignored by synthesis tools
|
663 |
|
|
IGNIFF {level="2"} // The 'iff' qualifier, associated with the event expression with no edge specification, is ignored
|
664 |
|
|
FFLRFR {level="1"} // Flip-flop '%s' has reset/set and logic section in the same '%s' loop
|
665 |
|
|
FFALWR {level="1"} // The 'if' statement specifying an asynchronous %s '%s' is not the first statement of the always block
|
666 |
|
|
FFRSTV {level="1"} // The %s signal '%s' is inferred as a vector
|
667 |
|
|
}
|
668 |
|
|
|
669 |
|
|
category RTL_SYNTH_VHDL "VHDL only synthesizability checks" default_on synth_only
|
670 |
|
|
{
|
671 |
|
|
GENTYP {level="0"} // The generic '%s' is not of an authorized type
|
672 |
|
|
SHRVNS {level="0"} // Shared variables are not synthesizable
|
673 |
|
|
SHFTOP {level="0"} // In design-unit %s, non-synthesizable shift operation %s is encountered
|
674 |
|
|
GRDASN {level="0"} // In design-unit %s, non-synthesizable guarded assignments are encountered
|
675 |
|
|
WAITML {level="0"} // In design-unit %s, multiple edges are specified after wait-until statement
|
676 |
|
|
SLDIRW {level="0"} // Inconsistent direction in slice discrete range
|
677 |
|
|
NOEXPN {level="0"} // Exponentiation operator is not synthesizable
|
678 |
|
|
EXPCHR {level="1"} // Expecting character strings for encoding of user-defined enumeration types in VHDL
|
679 |
|
|
STDMBC {level="1"} // Call to STD_MATCH will result in boolean-value comparison
|
680 |
|
|
RECATT {level="1"} // Invalid use of attributes. Incorrect modeling style used
|
681 |
|
|
NONGEN {level="2"} // No default value specified for generic %s in design-unit %s
|
682 |
|
|
TOPGEN {level="2"} // Top-level design-unit '%s' has generic '%s' without a default value
|
683 |
|
|
}
|
684 |
|
|
|
685 |
|
|
category RTL_SYNTH_MIXED "Verilog and VHDL synthesizability checks" default_on synth_only
|
686 |
|
|
{
|
687 |
|
|
RECFLE {level="0"} // No combinational circuit or sequential element could be recognized for %s.%s%s. The sensitivity list will be used as the trigger
|
688 |
|
|
AMSDES {level="0"} // Analog constructs detected in design %s
|
689 |
|
|
ARCONV {level="0"} // Array size/shape mismatch in explicit type conversion
|
690 |
|
|
NULLRG {level="0"} // In design-unit/module %s, %s %s has null range defined
|
691 |
|
|
NLCRNG {level="0"} // Range evaluates to a null range
|
692 |
|
|
LPNTEX {level="0"} // The loop range of the specified "for" loop is a null range
|
693 |
|
|
NSLOOP {level="0"} // %s %s contains non-static loop
|
694 |
|
|
VARRNG {level="0"} // Left and right bounds must be constant valued expressions
|
695 |
|
|
IMPFSM {level="0"} // %s %s contains implicit finite-state machine
|
696 |
|
|
SENCMW {level="0"} // Sensitivity list incomplete for node %s%s in %s. Missing signal(s): %s
|
697 |
|
|
OUTRNG {level="0"} // Bit/part select %s is outside the defined range %s
|
698 |
|
|
AWNDEL {level="0"} // %s block with no event trigger at the start in %s %s
|
699 |
|
|
CLKASY {level="0"} // For node %s in design-unit/module %s, clock signal %s is used in asynchronous control
|
700 |
|
|
CLKATR {level="0"} // For node %s in design-unit %s, non-synthesizable use of attribute event on %s
|
701 |
|
|
CLKBED {level="0"} // In module/design-unit %s, clock signal %s, for node %s, is driving data on both edges. Wrong polarity specified
|
702 |
|
|
CLKEXP {level="0"} // In module/design-unit '%s', for flip-flop '%s', clock is an expression
|
703 |
|
|
CLKMUL {level="0"} // In module %s, node %s has multiple clocks specified
|
704 |
|
|
CLKNED {level="0"} // In module/design-unit %s, clock signal %s for node %s does not drive any data. Wrong polarity specified
|
705 |
|
|
CLKOUT {level="0"} // In module/design-unit '%s', for flip-flop '%s', clock signal '%s' is used as the output
|
706 |
|
|
CLKSRD {level="0"} // In module/design-unit '%s', clock signal '%s', for flip-flop '%s', is used as %s
|
707 |
|
|
OPRUSP {level="0"} // Module %s has unsynthesizable '%s' operation
|
708 |
|
|
RSTEXP {level="0"} // In module/design-unit '%s', for flip-flop '%s', reset is an expression
|
709 |
|
|
OUTORG {level="0"} // Range constraint violation in design-unit %s
|
710 |
|
|
PRTNLL {level="0"} // A port of this instance is considered as undriven due to the presence of unsupported construct(s)
|
711 |
|
|
DRPBLK {level="0"} // The %s is being ignored due to the presence of unsupported construct(s)
|
712 |
|
|
SFNUNS {level="0"} // System function calls are not synthesizable
|
713 |
|
|
LOCOFA {level="0"} // Loop condition is false
|
714 |
|
|
XINASN {level="0"} // In module/design-unit '%s', asynchronous set/reset signals of the flip-flop has value x
|
715 |
|
|
LATBAS {level="0"} // In module/design-unit %s, latch is assigned by blocking assignments
|
716 |
|
|
MISNOD {level="0"} // '.*' could not infer any implicit port connection corresponding to port %s. This port will be left unconnected.
|
717 |
|
|
TXTPNS {level="0"} // In design-unit %s, unsupported procedure call %s from text packages encountered
|
718 |
|
|
UNSCON {level="0"} // Unsupported declaration/construct, will be ignored: %s
|
719 |
|
|
USATYP {level="0"} // In design-unit %s, objects of unsupported access type are encountered
|
720 |
|
|
INTTAG {level="0"} // In module %s, integer tags have been re-sized. This can cause a simulation mismatch
|
721 |
|
|
NOACCD {level="0"} // In design-unit %s, unsupported access type declaration encountered
|
722 |
|
|
NOALLD {level="0"} // In design-unit %s, unsupported allocator/deallocate is encountered
|
723 |
|
|
NOASST {level="0"} // In design-unit %s, unsupported assertion statement is encountered
|
724 |
|
|
PHYSNS {level="0"} // Literal physical data in design-unit %s is not supported
|
725 |
|
|
NOCASS {level="0"} // In design-unit %s, unsupported concurrent assertion statement is encountered
|
726 |
|
|
USFTYP {level="0"} // In design-unit %s, objects of unsupported file type are encountered
|
727 |
|
|
NODSCN {level="0"} // Disconnect specification in design unit %s not supported
|
728 |
|
|
USUPTE {level="0"} // Unsupported Table Entry
|
729 |
|
|
FILENS {level="0"} // File type declarations are not synthesizable and will be ignored
|
730 |
|
|
FILEOP {level="0"} // In design-unit %s, file operation %s is not synthesizable
|
731 |
|
|
BOXERR {level="0"} // Module/Design-unit %s is being blackboxed with option %s and simultaneously being glassboxed with the -GB_LIST option
|
732 |
|
|
TBBERR {level="0"} // Specified top %s is not available in the design hierarchy because instance %s of module %s is blackboxed under option %s
|
733 |
|
|
TBXERR {level="0"} // Specified top %s is also blackboxed under option %s; therefore this tool is unable to process the specified sub-design
|
734 |
|
|
IFINST {level="0"} // SystemVerilog Interface instance '%s' is connected to instance '%s' defined as a user-defined top
|
735 |
|
|
IGNINS {level="0"} // The instance '%s' in module/DU '%s' has been dropped because of errors on the formal ports of the module it is instantiating
|
736 |
|
|
INVCOE {level="0"} // Expression with invalid concatenation repeat count is being ignored
|
737 |
|
|
INVGEN {level="0"} // The specified generic/parameter does not have a valid value
|
738 |
|
|
MNTPMX {level="0"} // The (minimum, typical, maximum) delay expression is ignored, because delays are not considered during functional verification
|
739 |
|
|
LANERR {level="0"} // Design has wrong language construct for %s package
|
740 |
|
|
LRGMOD {level="0"} // The total size of the module %s is greater than that can be processed by the tool
|
741 |
|
|
NCMNOA {level="0"} // Actual argument of type attribute to nc_mirror is not supported. The nc_mirror procedure will be ignored
|
742 |
|
|
NCMNOD {level="0"} // The %s %s you have passed to nc_mirror call does not exist. The nc_mirror procedure will be ignored
|
743 |
|
|
NCMOMR {level="0"} // OOMR is not supported for destination in nc_mirror. The procedure will be ignored
|
744 |
|
|
NCMSLC {level="0"} // Indexed/Slice expressions are not supported as destination or source in nc_mirror
|
745 |
|
|
NULSLC {level="0"} // Null slice range of slice expression encountered
|
746 |
|
|
SLDIRE {level="0"} // Inconsistent direction in slice discrete range
|
747 |
|
|
STMISM {level="0"} // There is a mismatch between the size of connecting variable and the instaniated module port. The instance with the implicit port connection will be ignored. Use explicit named or positional connection syntax
|
748 |
|
|
UNSPTP {level="0"} // Top-level module/entity has ports of unsupported types
|
749 |
|
|
UNSYNT {level="0"} // The statement has an unsynthesizable expression and will be ignored by the tool. Modify the design for proper functioning of the tool
|
750 |
|
|
LHSCON {level="0"} // A constant expression has been encountered on the left hand side of an assignment. The instances of this module will be ignored
|
751 |
|
|
USTYPE {level="0"} // In design-unit %s, "%s" type is not supported
|
752 |
|
|
ARSHMM {level="1"} // Array size/shape mismatch
|
753 |
|
|
COMBLP {level="1"} // In %s %s, combinational loop detected for node %s
|
754 |
|
|
PACSIG {level="1"} // In design-unit %s, read/write operation is performed on signal "%s" which is declared in package "%s"
|
755 |
|
|
FNORET {level="1"} // Function has no return value and function return type is unconstrained
|
756 |
|
|
WNORET {level="1"} // Function has no return value
|
757 |
|
|
ASNCLD {level="1"} // In module %s, asynchronous load is inferred for node %s%s. A synchronous reset may also be generated, if there is an error in the polarity of the reset signal
|
758 |
|
|
CELLOP {level="1"} // Cell %s may have combinational loops. Node %s is one of the nodes contributing to this potential loop
|
759 |
|
|
CLKINP {level="1"} // In %s '%s', clock signal '%s' for flip-flop '%s' is not an input
|
760 |
|
|
CLKLST {level="1"} // For node %s in design-unit/module %s, assignment under the clock single-edge condition expression must be the last assignment at this level and there must not be any assignment when this condition is false after this assignment
|
761 |
|
|
CLKMBT {level="1"} // In %s '%s', multi-bits '%s' used as clock for flip-flop '%s'
|
762 |
|
|
CLKMED {level="1"} // Node %s in design-unit/module %s, is being driven at %s
|
763 |
|
|
RSTINP {level="1"} // In %s '%s', reset signal '%s', for flip-flop '%s', is not an input
|
764 |
|
|
BLKBOX {level="1"} // %s %s automatically blackboxed
|
765 |
|
|
RLRINT {level="1"} // Real literal is rounded to the nearest integer
|
766 |
|
|
IGNENC {level="1"} // Enum encoding of the enum type is being ignored
|
767 |
|
|
EMTFNC {level="2"} // Function definition has an empty body
|
768 |
|
|
PGMENB {level="2"} // Statements from lines %d to %d, in the source file "%s", are under "verification_on/off" pragma. These statements will be processed
|
769 |
|
|
PGMIGR {level="2"} // Statements from lines %d to %d, in the source file "%s", are under "synthesis_off/on" pragma. The semantics of the design may differ from simulation semantics
|
770 |
|
|
PGMTSO {level="2"} // Basetype/subtype of "%s" has declaration under "synthesis_off/on" pragma
|
771 |
|
|
PGMUSO {level="2"} // "%s" has declaration under "synthesis_off/on" pragma
|
772 |
|
|
SKPSUP {level="2"} // Assignment to a supply0/supply1 net %s in %s %s is ignored
|
773 |
|
|
EMPBLK {level="2"} // Module %s has an empty block
|
774 |
|
|
RSTOUT {level="2"} // In module/design-unit %s, for flip-flop %s, reset signal %s is used as the output
|
775 |
|
|
EMPMOD {level="2"} // Module/Design-unit '%s' is empty
|
776 |
|
|
IGNATP {level="2"} // Ignoring attribute parameter on attribute %s
|
777 |
|
|
EXPBBX {level="3"} // Design contains explicitly blackboxed design units
|
778 |
|
|
EXPGBX {level="3"} // Design contains explicitly glassboxed design units
|
779 |
|
|
AUTOBX {level="3"} // Design contains automatically blackboxed design units/memories
|
780 |
|
|
}
|
781 |
|
|
|
782 |
|
|
category FSM "Verilog and VHDL, FSM coding style checks" default_on synth_only
|
783 |
|
|
{
|
784 |
|
|
FSMIDN {level="0"} // In module/design-unit '%s', FSM for state register '%s' has been recognized
|
785 |
|
|
TERMST {level="0"} // In module/design-unit '%s', FSM for state register '%s' has terminal states %s
|
786 |
|
|
UNRCHS {level="0"} // In module/design-unit '%s', FSM for state register '%s' has unreachable states %s
|
787 |
|
|
BADFSM {level="1"} // In module/design-unit '%s', FSM for state register '%s' does not adhere to modeling style guidelines
|
788 |
|
|
PTRMST {level="1"} // In module/design-unit '%s', FSM for state register '%s' has potentially terminal states %s
|
789 |
|
|
PUNRCS {level="1"} // In module/design-unit '%s', FSM for state register '%s' has potentially unreachable states %s
|
790 |
|
|
VARTAG {level="1"} // The specified FSM contains a variable case expression in the combinatorial logic
|
791 |
|
|
VARTRN {level="1"} // The specified FSM contains state transitions expressed as assignments of variables to the state register
|
792 |
|
|
EXTSEQ {level="1"} // Extraneous logic is present in the sequential portion of the FSM
|
793 |
|
|
PRMFSM {level="1"} // Parameter is not used to encode state of the FSM
|
794 |
|
|
EXTFSM {level="2"} // Extraneous logic present in module/design-unit '%s' that encodes an FSM%s
|
795 |
|
|
TRNMBT {level="2"} // For the specified state '%s', the state value changes by more than one bits on transition to state(s): %s
|
796 |
|
|
}
|
797 |
|
|
|
798 |
|
|
category DFT "Verilog and VHDL DFT checks" default_on synth_only
|
799 |
|
|
{
|
800 |
|
|
CMBPAU {level="0"} // Combinational path detected through '%s' in module/design-unit '%s'
|
801 |
|
|
ASNCFL {level="0"} // Asynchronous feedback loop detected through set/reset of flip-flop(s) and '%s' in module/design-unit '%s'
|
802 |
|
|
MULMCK {level="1"} // Multiple master clocks found. Clock '%s' for flip-flop '%s' is derived from master input '%s' while the previously detected clocks were derived from '%s' for flip-flop '%s'
|
803 |
|
|
FFCKNP {level="0"} // Flip-flop '%s' has clock '%s' which is not derived from master input
|
804 |
|
|
GTDCLK {level="0"} // Clock gating detected for clock '%s' of flip-flop '%s'
|
805 |
|
|
FFWASR {level="0"} // Flip-flop '%s' does not have any %s %s
|
806 |
|
|
FFWNSR {level="0"} // Flip-flop '%s' does not have any set or reset
|
807 |
|
|
FFASRT {level="0"} // Flip-flop '%s' has %s %s %s
|
808 |
|
|
ACNCPI {level="0"} // Asynchronous %s '%s' of latch/flip-flop '%s' is not controllable from primary inputs
|
809 |
|
|
LENCPI {level="0"} // Enable of latch '%s' is not controllable from primary inputs
|
810 |
|
|
CLKINF {level="0"} // Clock '%s' has associated DFT violations. It was inferred as clock because it drives the %s pin of %s '%s'
|
811 |
|
|
CLKDAT {level="0"} // Clock signal '%s' drives the data pin of flip-flop '%s'
|
812 |
|
|
CLKLDT {level="0"} // Clock signal '%s' drives the data pin of latch '%s'
|
813 |
|
|
CDFDAT {level="0"} // Clock signal '%s' drives the data pin and clock pin %s of flip-flop '%s'
|
814 |
|
|
CDLDAT {level="0"} // Clock signal '%s' drives the data pin and clock pin %s of latch '%s'
|
815 |
|
|
CAAFSR {level="0"} // Clock signal '%s' drives a set or reset pin of flip-flop '%s'
|
816 |
|
|
CACSRF {level="0"} // Clock signal '%s' drives set/reset and clock pin %s of flip-flop '%s'
|
817 |
|
|
CACSRL {level="0"} // Clock signal '%s' drives set/reset and clock pin %s of latch '%s'
|
818 |
|
|
CAALSR {level="0"} // Clock signal '%s' drives a set or reset pin of latch '%s'
|
819 |
|
|
RSTDAT {level="0"} // Reset signal '%s' drives the data pin of %s '%s'
|
820 |
|
|
LATINF {level="0"} // Process/always block models a latch, or signal '%s' is not assigned a value in all branches
|
821 |
|
|
LCNSTD {level="0"} // Inferred latch '%s' has constant data
|
822 |
|
|
FFCSTD {level="1"} // Inferred flip-flop '%s' has a constant data input
|
823 |
|
|
MRSTDT {level="1"} // Mix of synchronous and asynchronous set/reset found. Synchronous set/reset detected in '%s' and asynchronous set/reset detected in '%s'
|
824 |
|
|
TPOUNR {level="1"} // Output '%s' of top-level module is not a register
|
825 |
|
|
NEFLOP {level="1"} // Flip-flop '%s' is triggered at the negative edge of clock '%s'
|
826 |
|
|
SLNOTP {level="1"} // Enable pin '%s' of the tristate buffer (driving inout pin '%s') is not directly controllable by primary input(s)
|
827 |
|
|
JKFFDT {level="2"} // Flip-flop '%s' models a JK flip-flop
|
828 |
|
|
LATRAN {level="2"} // Latch '%s' is %s enable while its driving flip-flop '%s' is also sensitive at %s edge of the clock
|
829 |
|
|
TCDFDT {level="0"} // In test mode, clock signal '%s' drives the data pin and clock pin %s of flip-flop '%s'
|
830 |
|
|
TCDLDT {level="0"} // In test mode, clock signal '%s' drives the data pin and clock pin %s of latch '%s'
|
831 |
|
|
TCKDAT {level="0"} // In test mode, clock signal '%s' drives the data pin of flip-flop '%s'
|
832 |
|
|
TCKLDT {level="0"} // In test mode, clock signal '%s' drives the data pin of latch '%s'
|
833 |
|
|
TMSCFF {level="0"} // Test mode signal '%s' is directly connected to %s '%s' of %s '%s'
|
834 |
|
|
ASRTSC {level="0"} // In test mode, asynchronous set/reset%s of flip-flop/latch '%s' is not controllable during scan capture
|
835 |
|
|
ASRTCL {level="0"} // In test mode, asynchronous set/reset%s of flip-flop/latch '%s' is active during scan shift
|
836 |
|
|
ASRTCK {level="0"} // Test clock '%s' drives asynchronous set/reset%s of flip-flop/latch '%s'
|
837 |
|
|
SEICLK {level="0"} // Clock '%s', not bypassed in scan shift mode, is connected to clock pin of following flip-flop(s)
|
838 |
|
|
SCICLK {level="0"} // Clock '%s', not bypassed in scan capture mode, is connected to clock pin of following flip-flop(s)
|
839 |
|
|
SMTCLK {level="0"} // Clock '%s', driven by %d test clock(s) in scan mode, is connected to clock pin of following flip-flop(s)
|
840 |
|
|
TXCNOP {level="0"} // Output '%s' of tie-x cell '%s' is connected to '%s' during scan mode
|
841 |
|
|
MEMNOP {level="0"} // Output '%s' of memory cell '%s' is connected to '%s' during scan mode
|
842 |
|
|
OUTMNR {level="0"} // Output '%s', of memory cell '%s', is not registered
|
843 |
|
|
INPMNR {level="0"} // Input '%s', of memory cell '%s', is not registered
|
844 |
|
|
MCKNDB {level="0"} // Write clock '%s' of memory cell '%s' is not disabled during test mode
|
845 |
|
|
WENNDB {level="0"} // Write enable '%s' of memory cell '%s' is not disabled during test mode
|
846 |
|
|
TENNOD {level="0"} // In test mode, tristate buffer '%s' does not drive 'Z' during scan shift operation
|
847 |
|
|
TENNOC {level="0"} // In test mode, enable of tristate buffer '%s' is not controllable during scan shift operation
|
848 |
|
|
RSTEDG {level="0"} // In test mode, signal '%s' is acting as active high set/reset as well as active low set/reset
|
849 |
|
|
NOTCLK {level="0"} // The following flip-flops, in clock domain '%s', are not controlled by any test clock
|
850 |
|
|
MULTCK {level="0"} // In test mode, test domain '%s' drives multiple clock domains
|
851 |
|
|
LTCHNT {level="1"} // Latch '%s' is not transparent in test mode
|
852 |
|
|
NOTSCN {level="0"} // Flip-flop '%s' is not scannable
|
853 |
|
|
}
|
854 |
|
|
|
855 |
|
|
category STRUCTURAL "Verilog/VHDL structural checks" default_on synth_only
|
856 |
|
|
{
|
857 |
|
|
LFLTSE {level="0"} // Latch '%s' is feeding latch '%s' having same enable%s
|
858 |
|
|
LFFTNE {level="0"} // Latch '%s' is feeding flip-flop '%s' which is triggered at the negative edge of latch enable%s
|
859 |
|
|
MLTDRV {level="0"} // Signal/register '%s' has multiple drivers
|
860 |
|
|
SUTHRU {level="0"} // Possible shoot-through due to this assignment
|
861 |
|
|
GLTASR {level="0"} // Combinatorial logic present in the path of asynchronous %s '%s' may lead to a glitch. One such affected flip-flop is '%s'
|
862 |
|
|
FDTHRU {level="1"} // Feedthrough detected from input '%s' to output '%s'
|
863 |
|
|
DFDRVS {level="1"} // Drivers of sub-parts of vector '%s' are not of same type
|
864 |
|
|
INFNOT {level="1"} // Ignoring %s '%s' with no fanout to module/design-unit outputs or child instances
|
865 |
|
|
CBPAHI {level="2"} // Combinatorial path crossing multiple units drives '%s'
|
866 |
|
|
DALIAS {level="2"} // Aliased constructs found. %s '%s' and '%s' have same drivers
|
867 |
|
|
NUMDFF {level="2"} // Number of single-bit D flip-flops present in the hierarchy is %s
|
868 |
|
|
PRTDUP {level="2"} // There are ports with the same name '%s' in module '%s'
|
869 |
|
|
ATLGLC {level="1"} // Glue logic inferred in top-level module/design-unit '%s'
|
870 |
|
|
EDGMIX {level="1"} // Both edges of clock signal '%s' used in %s
|
871 |
|
|
SYNASN {level="2"} // The module/design-unit '%s' contains synchronous as well as asynchronous logic
|
872 |
|
|
MCKDMN {level="2"} // In instance '%s', clocks belong to different clock domains
|
873 |
|
|
CLKGNP {level="2"} // The clock generation logic is placed in module/design-unit '%s', which also contains extraneous logic
|
874 |
|
|
CLKGNH {level="2"} // The clock generation logic for clock '%s' is not at the same or a higher hierarchical level as the module/design-unit to which the clock applies
|
875 |
|
|
}
|
876 |
|
|
|
877 |
|
|
category CLOCKDOMAIN "Verilog/VHDL clock domain checks" default_on synth_only
|
878 |
|
|
{
|
879 |
|
|
CLKDMN {level="0"} // Signal from clock domain '%s' is crossing into domain of clock '%s' at flip-flop '%s' without proper synchronization
|
880 |
|
|
INSYNC {level="1"} // %s based synchronizer detected at '%s' synchronizing from clock domain '%s' to clock domain '%s'
|
881 |
|
|
NSYLAT {level="1"} // Some instances of latch '%s' are not used as synchronizer
|
882 |
|
|
}
|
883 |
|
|
|
884 |
|
|
category SCANCHAIN "Verilog/VHDL Netlist level scan chain checks" default_on
|
885 |
|
|
{
|
886 |
|
|
PCNOTC {level="0"} // Partial scan chain (with formal '%s') in instance '%s', is not part of any of the complete scan chains of its parent scope
|
887 |
|
|
SLENEX {level="0"} // Scan chain (from '%s' to '%s') length is '%d' which exceeds the limit '%d'
|
888 |
|
|
SCNLEN {level="2"} // Scan chain (from '%s' to '%s') has length '%d'
|
889 |
|
|
WRSCNL {level="0"} // 'scanlengthlimit' is incorrectly specified in local.def file, taking its default value
|
890 |
|
|
DSCNCK {level="0"} // A part of scan chain starting from port '%s' is found to have clock '%s' in instance '%s', which is different from scan clock '%s'
|
891 |
|
|
DSCNEN {level="0"} // A part of scan chain starting from port '%s' is found to have scan enable '%s' in instance '%s', which is different from scan enable '%s'
|
892 |
|
|
NONSCN {level="0"} // All the instances of module/design-unit '%s' are not scannable
|
893 |
|
|
}
|
894 |
|
|
|
895 |
|
|
category PD_NONSYNTH "Category of all the checks which are a cause of non-synthesizability of DU on Palladium, hence redirection to NC-Sim (simulator)" default_off synth_only
|
896 |
|
|
{
|
897 |
|
|
ARSHMM {level="1"} // Array size/shape mismatch
|
898 |
|
|
AORAGG // Array of record aggregates are not currently supported for arrays of unconstrained types. Remodel the design
|
899 |
|
|
AORCON // Array of record created using concatenation of arrays of records is not supported. Remodel the design
|
900 |
|
|
DOMRNS // Disable OOMR not supported
|
901 |
|
|
EMTFNC {level="2"} // Function definition has an empty body
|
902 |
|
|
GRDASN {level="0"} // In design-unit %s, non-synthesizable guarded assignments are encountered
|
903 |
|
|
NONOWF {level="0"} // 'now' function in design-unit %s is not synthesizable
|
904 |
|
|
MOMRNS // OOMR assignment to an element of a multi-dimensional array or a verilog memory is not supported. Remodel your design
|
905 |
|
|
MUSOMR // Memory has unsupported OOMR assignments in the design
|
906 |
|
|
NOPATT // Pre-defined attribute %s in design-unit %s is not synthesizable
|
907 |
|
|
NULSTR // Null strings are not supported
|
908 |
|
|
RNGEXP // Type range has unsupported expressions. Only static constant expressions are allowed in the range
|
909 |
|
|
SFNUNE // System function calls are not supported
|
910 |
|
|
SOMRNE // OOMR subprogram (function/task) call is not supported
|
911 |
|
|
UNCMDL // Unbound components exist with same name %s and different number of ports/port size
|
912 |
|
|
UNKGEN // Design-unit/Module %s has Generic/Parameter of unsupported type
|
913 |
|
|
UXUASR // Use of 'X' in assertions is not supported
|
914 |
|
|
UZUASR // Use of 'Z' in assertions is not supported in scenarios other than bus-float checks
|
915 |
|
|
WAVFRM // Multiple waveform elements are not supported. Existing in %s %s, node %s
|
916 |
|
|
INFLOP {level="1"} // %s %s possibly contains an infinite loop
|
917 |
|
|
INFREC {level="1"} // %s %s possibly contains unbounded subprogram recursions
|
918 |
|
|
NLCRNG {level="0"} // Range evaluates to a null range
|
919 |
|
|
RECATT {level="1"} // Invalid use of attributes. Incorrect modeling style used
|
920 |
|
|
UNOMSU // OOMR on function/task %s using nodes outside the subprogram scope is not supported
|
921 |
|
|
VARRNG {level="0"} // Left and right bounds must be constant valued expressions
|
922 |
|
|
IMPFSM {level="0"} // %s %s contains implicit finite-state machine
|
923 |
|
|
CELLOP {level="1"} // Cell %s may have combinational loops. Node %s is one of the nodes contributing to this potential loop
|
924 |
|
|
AMODNS {level="0"} // Aliased modules are not supported by default. Module %s has duplicate input/inout ports which has effect of aliasing (shorting) two nets
|
925 |
|
|
CNREAL {level="1"} // Real variable %s is used in %s %s. Real variables are not synthesizable
|
926 |
|
|
INIEVN {level="0"} // Module %s contains non-synthesizable initial block with event control
|
927 |
|
|
TFWARG {level="2"} // Too few arguments passed to switch/gate
|
928 |
|
|
CLKATR {level="0"} // For node %s in design-unit %s, non-synthesizable use of attribute event on %s
|
929 |
|
|
CLKLST {level="1"} // For node %s in design-unit/module %s, assignment under the clock single-edge condition expression must be the last assignment at this level and there must not be any assignment when this condition is false after this assignment
|
930 |
|
|
CLKMED {level="1"} // Node %s in design-unit/module %s, is being driven at %s
|
931 |
|
|
ARCONV {level="0"} // Array size/shape mismatch in explicit type conversion
|
932 |
|
|
NSLOOP {level="0"} // %s %s contains non-static loop
|
933 |
|
|
EVTCTL {level="0"} // Module %s contains non-synthesizable named event control %s
|
934 |
|
|
USINEV {level="0"} // %s %s contains unsupported intra-assignment event specification
|
935 |
|
|
NEVREP {level="0"} // %s %s contains non-synthesizable repeat event specification
|
936 |
|
|
NFOREV {level="0"} // Module %s contains unsupported forever construct
|
937 |
|
|
NODSBL {level="0"} // Module %s contains unsupported disable construct
|
938 |
|
|
NOWAIT {level="0"} // %s %s contains non-synthesizable wait construct
|
939 |
|
|
UNDSBL // Module %s contains unsupported style of disable construct
|
940 |
|
|
USGTSW {level="0"} // "%s" not supported
|
941 |
|
|
USSTRG // Nodes of composite data types, having std_ulogic type or types derived from std_ulogic in array ranges is currently not supported
|
942 |
|
|
NULRGE // Node of null range is encountered
|
943 |
|
|
NOGATE {level="2"} // Module %s contains unsupported gate type %s
|
944 |
|
|
UUSTYP // In design-unit %s, use of "%s" type is not synthesizable
|
945 |
|
|
NBFUNC {level="2"} // Non-blocking assignment encountered in function '%s'
|
946 |
|
|
SYSVNC // SystemVerilog construct: '%s' is unsupported by HDL-ICE, the RTL compiler of Palladium and the corresponding module would be redirected to NC-Sim
|
947 |
|
|
}
|
948 |
|
|
|
949 |
|
|
category HDLICE_NOSUPP "Category of all the checks which are unsupported by HDL-ICE hence lead to redirection to SA Bin" default_off synth_only
|
950 |
|
|
{
|
951 |
|
|
MUDREG {level="0"} // In module '%s', register '%s' is driven in more than one block or process
|
952 |
|
|
MULWIR {level="0"} // Module '%s' has wire '%s%s' multi-driven
|
953 |
|
|
HISTUS // The System task/function '%s' is not supported by HDL-ICE, the RTL compiler of Palladium
|
954 |
|
|
SPDCLK // Module 'SPDclkgen2' should be directed to SA
|
955 |
|
|
HIINIT // The initial blocks are not supported by HDL-ICE, the RTL compiler of Palladium
|
956 |
|
|
NOFREL {level="0"} // %s %s contains non-synthesizable force/release constructs
|
957 |
|
|
UNDASS // Deassign statements are not supported by HDL-ICE, the RTL compiler of Palladium
|
958 |
|
|
SYSVAP // SystemVerilog construct: '%s' is not supported by HDL-ICE, the RTL compiler of Palladium
|
959 |
|
|
NOFKJN {level="0"} // %s %s contains non-synthesizable fork-join constructs
|
960 |
|
|
}
|
961 |
|
|
|
962 |
|
|
category PALLADIUM "Category of all the checks to qualify design to run on Palladium" default_off synth_only
|
963 |
|
|
{
|
964 |
|
|
MEMHIR // A hierarchical reference to the design memory '%s' found in the testbench
|
965 |
|
|
OOMRDT // OOMR '%s' from synthesizable module '%s' to non-synthesizable module '%s' found
|
966 |
|
|
OOMRTD // OOMR '%s' from non-synthesizable module '%s' to synthesizable module '%s' found
|
967 |
|
|
NOSPEC {level="2"} // Specify block in module %s is ignored
|
968 |
|
|
TIMCHK // Timing checks done in the testbench on the design input/output '%s'
|
969 |
|
|
DLYWIR // Delayed net '%s' which is connected to input port '%s' is being driven through timing check '%s'
|
970 |
|
|
UNSSTR // Unsupported %s strength '%s' passed between testbench and design '%s' through input/inout port '%s'
|
971 |
|
|
TRISTR // For an interface net, all tristate drivers must have both 'strong' values
|
972 |
|
|
INTCLK // An internal clock '%s' is detected in the design
|
973 |
|
|
CKFREQ // The testbench generated a clock '%s' with Time Period '%d.%02d' '%s'
|
974 |
|
|
TBZCON // Net '%s', driven by the output interface net '%s' of the design, is tested for 'Z'
|
975 |
|
|
TBXZDV // The input/inout port '%s' of the design '%s' is driven by 'X' or 'Z' %s '%s'
|
976 |
|
|
TBZOMR // The signal '%s' of design '%s' is driven by 'X' or 'Z' through out of module reference from the testbench
|
977 |
|
|
BADKWD // Usage of the keyword "QTSACELL" in the module/DU name is incorrect
|
978 |
|
|
CNREAL {level="1"} // Real variable %s is used in %s %s. Real variables are not synthesizable
|
979 |
|
|
MEMLOP // Memory '%s' is read or written within a loop in the design
|
980 |
|
|
SHFLAR // The shift register has large shift_by operator '%s' in the design
|
981 |
|
|
HISTIG // A System Task/Function '%s' in module '%s' will be ignored by HDL-ICE, the RTL compiler of Palladium
|
982 |
|
|
NSDTOP // The DUV top '%s' is non-synthesizable
|
983 |
|
|
NSSCDT // The SystemC DUV top '%s' is non-synthesizable
|
984 |
|
|
SYNTNC // While doing partitioning for Co-simulation flow, the synthesizable %s '%s' is directed to NC-Sim because its hierarchical path has behavioral source
|
985 |
|
|
ICEVHD // Module '%s' is directed to HDL-ICE despite the presence of constructs which are unsupported by HDL-ICE, because its hierarchical path contains VHDL entity
|
986 |
|
|
VLOGSA // Module '%s' is directed to sa bin because a module below its hierarchy was redirected to sa bin
|
987 |
|
|
SAFORC // %s '%s' cannot be forced to SA bin because it is in VHDL hierarchy
|
988 |
|
|
HDLFRC // Module '%s' cannot be forced to HDL-ICE because a module under its hierarchy was directed to sa bin
|
989 |
|
|
SPDVHD // Module 'SPDclkgen2' is found beneath VHDL. Redirected to HDL-ICE
|
990 |
|
|
NODLPD // Interface signal '%s' between NC and Palladium has no driver or load in the palladium emulator
|
991 |
|
|
NNSNMD // Non-synthesizable module/DU '%s' encountered in DUV
|
992 |
|
|
FCDTOP // The synthesizable module/DU top '%s' is forced to NC-Sim (simulator) bin
|
993 |
|
|
FRCDUV // The synthesizable %s '%s' under DUV top is forced to NC-Sim (simulator) bin
|
994 |
|
|
PGMIGR {level="2"} // Statements from lines %d to %d, in the source file "%s", are under "synthesis_off/on" pragma. The semantics of the design may differ from simulation semantics
|
995 |
|
|
PGMTSO {level="2"} // Basetype/subtype of "%s" has declaration under "synthesis_off/on" pragma
|
996 |
|
|
PGMUSO {level="2"} // "%s" has declaration under "synthesis_off/on" pragma
|
997 |
|
|
CONSTD {level="2"} // Delay is not a constant expression
|
998 |
|
|
DLNBLK {level="2"} // Delay in non-blocking assignment; delay will be ignored
|
999 |
|
|
IGNDLY {level="2"} // Lumped delay in %s '%s' is ignored
|
1000 |
|
|
SYNTXZ {level="0"} // Synthesizing 'x'/'z' values in %s '%s'
|
1001 |
|
|
XZDVAL {level="2"} // Delay value contains an x/z
|
1002 |
|
|
METACX {level="1"} // In %s '%s', case/casez item expressions evaluating to 'x' are ignored
|
1003 |
|
|
METACZ {level="1"} // In %s '%s', case item expressions evaluating to 'z' are ignored
|
1004 |
|
|
METACO {level="0"} // In module %s, %s having 'x'/'z' statically evaluated to false
|
1005 |
|
|
CASEZX {level="1"} // Case item expression contains 'x' for a casez statement (useful only in casex statements)
|
1006 |
|
|
V2CONF // Configuration file '%s' found for module '%s' is not supported by HDL-ICE, the RTL compiler of Palladium
|
1007 |
|
|
VHDOMR // The OOMR '%s' pass through VHDL instance '%s'
|
1008 |
|
|
TESDLY // %s '%s' contains delay statement in initial block. '%s' might be a part of testbench
|
1009 |
|
|
DIFBIN // The file '%s' comprises of modules/DUs/UDPs which are partitioned in different bins
|
1010 |
|
|
MISTOP // Instance top not specified on the command-line for performing Acceleration Policy checks
|
1011 |
|
|
NOEXMT // %s '%s' specified in the input file '%s' does not exist
|
1012 |
|
|
NONBIN // %s '%s' specified in the input file '%s' is directed to a non-existing bin '%s'
|
1013 |
|
|
MISFLD // The '%s' field is missing for the %s '%s' in the input file '%s'
|
1014 |
|
|
EXTCHR // Extra characters found for %s '%s' at the end of the line in input file '%s'
|
1015 |
|
|
VHDLSA // The VHDL design-unit '%s' has been forced to Palladium simulation acceleration compiler (sa) in input file '%s'
|
1016 |
|
|
MULENT // Multiple entries for redirection are found for %s '%s' in the input file '%s'
|
1017 |
|
|
MULOPT // The option %s has been specified multiple times on the command line. Only the first %d specification(s) will be considered
|
1018 |
|
|
MUINSD // There are multiple instances of the same module/DU '%s' being used as the design top
|
1019 |
|
|
SHRVNS {level="0"} // Shared variables are not synthesizable
|
1020 |
|
|
SHVUNS // In design-unit %s, use of shared variables is not synthesizable
|
1021 |
|
|
PD_NONSYNTH // Category of all the checks which are a cause of non-synthesizability of DU on Palladium, hence redirection to NC-Sim (simulator)
|
1022 |
|
|
HDLICE_NOSUPP // Category of all the checks which are unsupported by HDL-ICE hence lead to redirection to SA Bin
|
1023 |
|
|
RTL_SIMRACE_VERILOG // Verilog only simulation race condition checks
|
1024 |
|
|
}
|
1025 |
|
|
|
1026 |
|
|
category ALL_TOOL "HAL usage errors" default_on
|
1027 |
|
|
{
|
1028 |
|
|
SYSTMC // Design contains SystemC(r) objects. HAL performs only linting checks on SystemC(r) objects
|
1029 |
|
|
CMDNIM // %s is not yet implemented
|
1030 |
|
|
BADDEF // Error reading message definitions file: %s
|
1031 |
|
|
BADINF // %s
|
1032 |
|
|
BADARG // Incorrect argument '%s' specified with command-line option '%s'
|
1033 |
|
|
BADINP // Tool cannot proceed further due to above errors in input files
|
1034 |
|
|
NOCARG // %s
|
1035 |
|
|
ONPARM // %s
|
1036 |
|
|
LDFAIL // Unable to load dynamic library %s:%s
|
1037 |
|
|
LDLOOK // Unable to locate startup routines in %s: %s
|
1038 |
|
|
BBFAIL // Unable to write to %s
|
1039 |
|
|
FILOPE // Unable to open "%s" for %s
|
1040 |
|
|
BADTOP // Unable to locate instance '%s' (specified by %s) in the design. This option will be ignored
|
1041 |
|
|
NOTCMP // Scope specified by -TOP '%s' is not a %s instance
|
1042 |
|
|
TOOMNC // More than one cell specified
|
1043 |
|
|
BDARGF // Command-line argument file '%s' could not be opened for reading (%s)
|
1044 |
|
|
MISSCL // Missing cell name for the build process
|
1045 |
|
|
NOSNAP // Snapshot '%s' does not exist in the libraries
|
1046 |
|
|
NOWORK // %s work library not found/defined
|
1047 |
|
|
PRTSNP // Design is partially elaborated. Connectivity information may not be complete
|
1048 |
|
|
NOLICI //
|
1049 |
|
|
NOLICN //
|
1050 |
|
|
REARGF // Command-line argument file '%s' included more than once
|
1051 |
|
|
DUPARG // Snapshot name provided by both ncverilog and the command-line. The snapshot name provided by command-line will be ignored
|
1052 |
|
|
NOARGX // Missing command-line argument file after -FILE option
|
1053 |
|
|
BADCAT // Category name '%s' is not recognized
|
1054 |
|
|
REGEXB // The naming convention pattern %s is not a legal regular expression
|
1055 |
|
|
NOREGX // The pattern parameter for message %s is null. Any name will match
|
1056 |
|
|
BADRNG // markSensListVarBits: ERROR -- range could not be determined for variable %s[%d:%d]
|
1057 |
|
|
BADNAM // %s: ERROR -- unsupported type '%s'
|
1058 |
|
|
BDDUSP // Badly formed design-unit specification %s
|
1059 |
|
|
NLVSUF // The hdl.var variable VERILOG_SUFFIX is defined, but is not a list
|
1060 |
|
|
NOTEMP // Cannot open/create temporary file '%s' for writing
|
1061 |
|
|
CSTUDS // Stack size has been limited
|
1062 |
|
|
NOROOT // Unable to locate Cadence installation root directory
|
1063 |
|
|
NOHDLF // No valid HDL source files provided
|
1064 |
|
|
CNOTPR // %s in file '%s' has multi-line comment, which does not end anywhere
|
1065 |
|
|
COFILE // Cannot open source file '%s'
|
1066 |
|
|
MISAGO // A '%s' option was found without an argument and will be ignored
|
1067 |
|
|
NOSUPP // HAL does not work in combination with 64-bit NC binaries
|
1068 |
|
|
OBSOPT //
|
1069 |
|
|
UODIFW // Unable to open design info file '%s' for writing
|
1070 |
|
|
BLKERR // Blackbox unit '%s' is not present in the design
|
1071 |
|
|
LNTERR //
|
1072 |
|
|
NORUCY // The argument '%s' in lint pragma does not map to any rule or category
|
1073 |
|
|
PROTEC // Protected design-unit '%s' encountered in the hierarchy and will not be processed by the tool
|
1074 |
|
|
PLSNAP // Snapshot '%s' does not exist (platform mismatch), rebuild
|
1075 |
|
|
RVSNAP // Snapshot '%s' does not exist (version mismatch), rebuild
|
1076 |
|
|
SSNFND // Snapshot '%s' does not exist in the libraries
|
1077 |
|
|
SSNTRD // %s not read
|
1078 |
|
|
MULTOP // The snapshot contains multiple top-level modules. Use the -TOP option to specify the hierarchy to be processed
|
1079 |
|
|
AORAGG // Array of record aggregates are not currently supported for arrays of unconstrained types. Remodel the design
|
1080 |
|
|
AORCON // Array of record created using concatenation of arrays of records is not supported. Remodel the design
|
1081 |
|
|
BLKPAT // Unsupported regular expression %s specified in blackbox file %s
|
1082 |
|
|
DOMRNS // Disable OOMR not supported
|
1083 |
|
|
GBXERR // Glassbox unit %s is not present in the design
|
1084 |
|
|
IGNASR // Expression creation error. The assertion/sequence/group in the module/design-unit %s will be ignored
|
1085 |
|
|
IMPFNS // Impure functions are not supported. The keyword impure will be ignored and the function will be treated as a pure function
|
1086 |
|
|
INVASP // Ignoring invalid enum encoding specification
|
1087 |
|
|
INVCON // Expression with invalid concatenation repeat count is being ignored
|
1088 |
|
|
MOMRNS // OOMR assignment to an element of a multi-dimensional array or a verilog memory is not supported. Remodel your design
|
1089 |
|
|
NCDRNG // In design-unit %s, unsupported non-constant discrete range is encountered
|
1090 |
|
|
NMDINS // Unable to find module for instance %s
|
1091 |
|
|
NOBBFL // Unable to open explicitly specified blackbox file for reading: %s
|
1092 |
|
|
NOGBFL // Unable to open explicitly specified glassbox file for reading: %s
|
1093 |
|
|
NOCACC // Design not compiled with connectivity access information. Pass -access +C flag to ncelab
|
1094 |
|
|
NOFILO // Unable to open file for writing %s
|
1095 |
|
|
NOIDEN // The actual parameter of the subprogram call on the formal part of the component instantiation statement is not an identifier
|
1096 |
|
|
NOPATT // Pre-defined attribute %s in design-unit %s is not synthesizable
|
1097 |
|
|
NULRGW // In design-unit/module %s, node %s has a null range defined. This node is being turned to dummy node because this design-unit/module is explicitly blackboxed
|
1098 |
|
|
NULSTR // Null strings are not supported
|
1099 |
|
|
PERCIN // The tool has encountered error(s) while processing instance %s. This instance will be ignored.
|
1100 |
|
|
RNGEXP // Type range has unsupported expressions. Only static constant expressions are allowed in the range
|
1101 |
|
|
SHVUNS // In design-unit %s, use of shared variables is not synthesizable
|
1102 |
|
|
SOMRNE // OOMR subprogram (function/task) call is not supported
|
1103 |
|
|
SOMRNF // OOMR subprogram (function/task) call is not supported
|
1104 |
|
|
TOPERR // The specified top-level instance: %s, is not present in the design
|
1105 |
|
|
TOUTDE // Design timed out after %s seconds
|
1106 |
|
|
SUDPNS // Modeling style of sequential UDP in module %s is not supported
|
1107 |
|
|
UNHNDL // Unhandled case in module/design-unit %s
|
1108 |
|
|
UNKCIN // Component instance is not fully bound (%s)
|
1109 |
|
|
UNCINW // Component instance is not fully bound (%s)
|
1110 |
|
|
UNKGEN // Design-unit/Module %s has Generic/Parameter of unsupported type
|
1111 |
|
|
UNKLNG // %s : Unknown language
|
1112 |
|
|
UNKPEX // addVerilogPortExpr : Unknown Port Expression %s
|
1113 |
|
|
UNKWND // findFormalType : Unknown node %s
|
1114 |
|
|
UNSOMR // OOMR on unsupported construct
|
1115 |
|
|
UNSOPR // Unsupported operator encountered %s. This expression will be ignored
|
1116 |
|
|
UNSUPF // An internal error occurred (may be due to an unsupported feature/function/operator): %s : %s
|
1117 |
|
|
UNSVLG // Unsupported Verilog 2001 feature: %s
|
1118 |
|
|
USDUNT // Unsupported design-unit %s encountered
|
1119 |
|
|
USFDEC // findFormalDecl: Unsupported call %s
|
1120 |
|
|
USFENA // Unsupported formal expression in named association
|
1121 |
|
|
USRATR // User-defined attribute in design-unit %s is not synthesizable
|
1122 |
|
|
USRECR // Recursive records are not supported
|
1123 |
|
|
USTCOV // In design-unit %s, type conversion %s is not supported
|
1124 |
|
|
UUSCON // Unsupported declaration/construct used. Cannot proceed further: %s
|
1125 |
|
|
UUSTYP // In design-unit %s, use of "%s" type is not synthesizable
|
1126 |
|
|
WAVFRM // Multiple waveform elements are not supported. Existing in %s %s, node %s
|
1127 |
|
|
UNOMSU // OOMR on function/task %s using nodes outside the subprogram scope is not supported
|
1128 |
|
|
IGNCIN // In %s '%s', initialization to node '%s' is ignored
|
1129 |
|
|
CEVTNS // Event on complex expression not supported. Complex expression %s in the event expression is replaced by %s, which is assigned the original complex expression
|
1130 |
|
|
IGNCON // Due to the above-mentioned error/warning, the design construct ( %s ) in which this error occurred will be ignored
|
1131 |
|
|
FMLPDR // Due to the above-mentioned error the formal port list of the %s is being dropped
|
1132 |
|
|
NOSUBP // Subprogram body not found
|
1133 |
|
|
USENAR // Array types using encoded enumeration type to specify range bounds are unsupported
|
1134 |
|
|
USENRG // Nodes of composite data types, having encoded enumeration type in array ranges is currently not supported
|
1135 |
|
|
VHDRCE // Race condition checks in HAL are supported for Verilog designs only, -RACES option is being ignored
|
1136 |
|
|
BLDSTP // Further processing stopped because of synthesizability errors
|
1137 |
|
|
UNOPNF // Unable to open %s file '%s'
|
1138 |
|
|
PGMSSO // The subprogram body of "%s" is under "synthesis_off/on" pragma
|
1139 |
|
|
PGMCIG // The design construct is under "synthesis_off/on" pragma. The semantics of the design may differ from simulation semantics
|
1140 |
|
|
MULOPT // The option %s has been specified multiple times on the command line. Only the first %d specification(s) will be considered
|
1141 |
|
|
IPROTC // Design contains protected HDL code. This tool does not analyze designs having protected HDL
|
1142 |
|
|
PROTCT // Ignoring instance '%s' as its module/design-unit is protected
|
1143 |
|
|
TOPROE // Design will not be analyzed because top-level module/design-unit is completely protected
|
1144 |
|
|
NOSTAN // The specified FSM cannot be analyzed for terminal and unreachable states
|
1145 |
|
|
MIXGEN // HAL does not support VHDL instantiation in a Verilog for-generate loop
|
1146 |
|
|
UNSV2K // The verilog-2001 construct : "%s" is not supported by the tool
|
1147 |
|
|
SYSMOR // Processing stopped because virtual memory limit exceeded
|
1148 |
|
|
HALSIG // Unable to proceed further due to a critical error. Contact Cadence Design Systems for resolution to this problem
|
1149 |
|
|
CFESIG // Unable to proceed further due to a critical error while processing %s '%s'. Contact Cadence Design Systems for resolution to this problem
|
1150 |
|
|
SCPNFD // Scope '%s' not found
|
1151 |
|
|
PINNFD // Pin '%s' not found in scope '%s'
|
1152 |
|
|
MISVAL // %s value not specified or is incorrect for pin '%s' in '%s'
|
1153 |
|
|
NCDOMN // Pin '%s' has '%s' specified as clock domain, but it is not specified as a clock or test clock
|
1154 |
|
|
NOTSMD // In scope '%s', pin '%s' set as 'logic_dbist', but not as test_mode pin
|
1155 |
|
|
LOOPSZ // Loop has more than %d iterations. Processing of loop may take some time, kindly wait
|
1156 |
|
|
VLGMEM // Module %s has Verilog memories. For large memories, processing may take some time
|
1157 |
|
|
DISCAT // The category '%s' in lint pragma attached to the above line, is disabled, which was earlier enabled
|
1158 |
|
|
DISRUL // The rule '%s' in lint pragma attached to the above line, is disabled, which was earlier enabled
|
1159 |
|
|
ENARUL // The rule '%s' in lint pragma attached to the above line, is enabled, which was earlier disabled
|
1160 |
|
|
ENACAT // The category '%s' in lint pragma attached to the above line, is enabled, which was earlier disabled
|
1161 |
|
|
NOCELL // Cell corresponding to module '%s' is not found in synthesis library
|
1162 |
|
|
UNLLIB // Unable to load synthesis library '%s'
|
1163 |
|
|
NOPORT // No port is found in the design for pin '%s' in cell '%s' in synthesis library '%s'
|
1164 |
|
|
NOPINL // No pin is found in synthesis library '%s' for port '%s' of module/design-unit '%s'
|
1165 |
|
|
NOCONW // %s condition is not found for flip-flop/latch in the cell '%s' in synthesis library '%s'
|
1166 |
|
|
NOCONF // %s condition is not found for flip-flop/latch in the cell '%s' in synthesis library '%s'
|
1167 |
|
|
UNSUOP // Unable to determine the operator type in expression '%s' in cell '%s' in synthesis library '%s'
|
1168 |
|
|
MAPLIB // %s '%s' is mapped from library '%s'
|
1169 |
|
|
FORGEN // The instances in the given for-generate block will be unrolled %d times. Such processing takes time, kindly wait
|
1170 |
|
|
GLSBOX // %s %s automatically glassboxed
|
1171 |
|
|
RULREP // %s %s
|
1172 |
|
|
SENNOT // Test mode checks will not be performed as scan enable pin is not present in the design info file
|
1173 |
|
|
UNKNRL // Rule/message tag '%s' is not known to hal
|
1174 |
|
|
STPUNK // Definition file contains unknown rules. Either remove these rules or set parameter 'allow_only_hal_and_custom_rules' to 'no'
|
1175 |
|
|
SYSIGN // SystemVerilog '%s' construct is not supported by the tool. This will be ignored
|
1176 |
|
|
SYSVIG // SystemVerilog '%s' construct is not supported by the tool. This will be ignored
|
1177 |
|
|
SYSVPS // SystemVerilog construct: '%s' is not fully supported by HAL
|
1178 |
|
|
BGOLAP // Design-unit/Module '%s' specified for blackboxing overlaps with design-unit/module '%s' specified for glassboxing
|
1179 |
|
|
LPNOFL // -lps_verbose option will be ignored because -lps_cpf option is not specified
|
1180 |
|
|
}
|
1181 |
|
|
|
1182 |
|
|
category RMM "All checks complying to Reuse Methodology Manual" default_on
|
1183 |
|
|
{
|
1184 |
|
|
CMBPAU {level="0"} // Combinational path detected through '%s' in module/design-unit '%s'
|
1185 |
|
|
ASNCFL {level="0"} // Asynchronous feedback loop detected through set/reset of flip-flop(s) and '%s' in module/design-unit '%s'
|
1186 |
|
|
GTDCLK {level="0"} // Clock gating detected for clock '%s' of flip-flop '%s'
|
1187 |
|
|
LATINF {level="0"} // Process/always block models a latch, or signal '%s' is not assigned a value in all branches
|
1188 |
|
|
MULMCK {level="1"} // Multiple master clocks found. Clock '%s' for flip-flop '%s' is derived from master input '%s' while the previously detected clocks were derived from '%s' for flip-flop '%s'
|
1189 |
|
|
MRSTDT {level="1"} // Mix of synchronous and asynchronous set/reset found. Synchronous set/reset detected in '%s' and asynchronous set/reset detected in '%s'
|
1190 |
|
|
TPOUNR {level="1"} // Output '%s' of top-level module is not a register
|
1191 |
|
|
MISSEL {level="1"} // Signal '%s' missing from sensitivity list of a sequential process/block
|
1192 |
|
|
USESEL {level="1"} // Signal '%s' should not be used in the sensitivity list of a sequential process/block
|
1193 |
|
|
CBYNAM {level="1"} // Port connections for instance '%s' of %s '%s' should be made by name rather than by positional ordered list
|
1194 |
|
|
NOTECH {level="1"} // Instance '%s' is instantiating a technology cell. Avoid using technology cells in the design
|
1195 |
|
|
DIFCLK {level="2"} // Clock '%s' is being renamed to '%s'
|
1196 |
|
|
DIFRST {level="2"} // Set/Reset '%s' is being renamed to '%s'
|
1197 |
|
|
VERCAS {level="2"} // Identifier, label, instance, or module name '%s' reused with a case difference
|
1198 |
|
|
DIRRNG {level="2"} // Inconsistent ordering of bits in range declarations -- should be all %s ranges
|
1199 |
|
|
KYEDIF {level="2"} // EDIF reserved word '%s' used as an identifier or label
|
1200 |
|
|
STYVAL {level="3"} // Numeric value '%d' used for identifier '%s'. Use constants to avoid portability issues
|
1201 |
|
|
STYBLK {level="3"} // Block statement used. This will create portability issues
|
1202 |
|
|
VHDREP {level="3"} // Repeated usage of identifier or label name '%s'
|
1203 |
|
|
VERREP {level="3"} // Repeated usage of identifier or label name '%s'
|
1204 |
|
|
MULTMF {level="3"} // More than one design-unit definition in file '%s'
|
1205 |
|
|
KEYWOD {level="3"} // VHDL reserved word '%s' used as an identifier or label
|
1206 |
|
|
KVHWOD {level="3"} // Verilog reserved word '%s' used as an identifier or label
|
1207 |
|
|
STYSUL {level="3"} // Type std_ulogic used for identifier '%s'. Use std_logic to avoid portability issues
|
1208 |
|
|
STYSUV {level="3"} // Type std_ulogic vector used for identifier '%s'. Use std_logic_vector to avoid portability issues
|
1209 |
|
|
STYBIT {level="3"} // Type bit used for identifier '%s'. Use std_logic to avoid portability issues
|
1210 |
|
|
STYBTV {level="3"} // Type bit_vector used for identifier '%s'. Use std_logic_vector to avoid portability issues
|
1211 |
|
|
CKEYWD {level="3"} // C/C++ reserved word '%s' used as an identifier or label
|
1212 |
|
|
UPCLBL {level="4"} // Label '%s' should be written in uppercase
|
1213 |
|
|
DIFFMN {level="4"} // %s name '%s' differs from file name '%s'
|
1214 |
|
|
NOBLKN {level="4"} // Each block should be labeled with a meaningful name
|
1215 |
|
|
SEPLIN {level="4"} // Use a separate line for each HDL statement
|
1216 |
|
|
NOINSN {level="4"} // Each module/gate/primitive instance should be labeled with a meaningful name
|
1217 |
|
|
LCVARN {level="4"} // %s name '%s' uses uppercase characters
|
1218 |
|
|
UCCONN {level="4"} // Lowercase characters used for identifier '%s'. Use uppercase characters for names of constants and user-defined types
|
1219 |
|
|
ACNCPI {level="0"} // Asynchronous %s '%s' of latch/flip-flop '%s' is not controllable from primary inputs
|
1220 |
|
|
ATLGLC {level="1"} // Glue logic inferred in top-level module/design-unit '%s'
|
1221 |
|
|
SYNSCU {level="3"} // Embedded synthesis script used in the design
|
1222 |
|
|
}
|
1223 |
|
|
|
1224 |
|
|
category LOW_POWER "All checks related to low power design" default_on
|
1225 |
|
|
{
|
1226 |
|
|
SRENSL {level="0"} // State retention element/cell '%s' is not inferred as a flip-flop. It is %s
|
1227 |
|
|
SRPDDC {level="1"} // Retention flip-flops in the power domain '%s' are controlled by different %s
|
1228 |
|
|
ISPDDC {level="1"} // Isolation rules from power domain '%s' are controlled by different control pins
|
1229 |
|
|
LPISCS {level="1"} // The isolation controlling signal '%s' is not an output of a module or primary input
|
1230 |
|
|
LPSRCS {level="1"} // The %s edge signal '%s' is not an output of a module or primary input
|
1231 |
|
|
LOW_POWER_SYNTH // All checks related to low power due to synthesizability errors
|
1232 |
|
|
}
|
1233 |
|
|
|
1234 |
|
|
category LOW_POWER_SYNTH "All checks related to low power due to synthesizability errors" default_on
|
1235 |
|
|
{
|
1236 |
|
|
CNREAL {level="1"} // Real variable %s is used in %s %s. Real variables are not synthesizable
|
1237 |
|
|
GRDASN {level="0"} // In design-unit %s, non-synthesizable guarded assignments are encountered
|
1238 |
|
|
INIMEM {level="2"} // Initialization of memory %s in module %s is ignored
|
1239 |
|
|
INITBI // Initial block in primitive is ignored
|
1240 |
|
|
FINUSP {level="2"} // Module '%s' has a final block, which is ignored by synthesis tools
|
1241 |
|
|
INIUSP {level="2"} // %s %s has an initial block or a variable declaration assignment, which is ignored by synthesis tools
|
1242 |
|
|
LATINF {level="0"} // Process/always block models a latch, or signal '%s' is not assigned a value in all branches
|
1243 |
|
|
FNAVPC {level="1"} // Function %s
|
1244 |
|
|
COMBLP {level="1"} // In %s %s, combinational loop detected for node %s
|
1245 |
|
|
CMBPAU {level="0"} // Combinational path detected through '%s' in module/design-unit '%s'
|
1246 |
|
|
CBPAHI {level="2"} // Combinatorial path crossing multiple units drives '%s'
|
1247 |
|
|
IGNDLY {level="2"} // Lumped delay in %s '%s' is ignored
|
1248 |
|
|
}
|
1249 |
|
|
|
1250 |
|
|
|
1251 |
|
|
// ---------------- //
|
1252 |
|
|
// HAL Parameters //
|
1253 |
|
|
// ---------------- //
|
1254 |
|
|
|
1255 |
|
|
|
1256 |
|
|
params HAL {allow_error_suppression="yes"}
|
1257 |
|
|
// params HAL {allow_error_suppression="no"}
|
1258 |
|
|
// params HAL {allow_error_suppression="yes"}
|
1259 |
|
|
|
1260 |
|
|
params HAL {allow_intern_gen_sync_reset="no"}
|
1261 |
|
|
params HAL {allow_only_hal_and_custom_rules="no"}
|
1262 |
|
|
params HAL {check_verilog_reg_as_vhdl_var="no"}
|
1263 |
|
|
params HAL {clock_list="APPEND"}
|
1264 |
|
|
// params HAL {clock_list="append"}
|
1265 |
|
|
// params HAL {clock_list="overwrite"}
|
1266 |
|
|
|
1267 |
|
|
params HAL {code_comment_style_verilog="single-line"}
|
1268 |
|
|
params HAL {controllability_observability_threshold="15"}
|
1269 |
|
|
params HAL {convention_for_control_type="mixed"}
|
1270 |
|
|
params HAL {convention_for_set_reset_style="asynchronous"}
|
1271 |
|
|
params HAL {disable_unclassified_rules="yes"}
|
1272 |
|
|
// params HAL {disable_unclassified_rules="no"}
|
1273 |
|
|
// params HAL {disable_unclassified_rules="yes"}
|
1274 |
|
|
|
1275 |
|
|
params HAL {display_rule_control="no"}
|
1276 |
|
|
// params HAL {display_rule_control="no"}
|
1277 |
|
|
// params HAL {display_rule_control="yes"}
|
1278 |
|
|
|
1279 |
|
|
params HAL {divided_clock_domain_same_as_master="yes"}
|
1280 |
|
|
params HAL {gated_clock_domain_same_as_master="no"}
|
1281 |
|
|
params HAL {header_case_sensitive="no"}
|
1282 |
|
|
params HAL {header_field_separator=":"}
|
1283 |
|
|
params HAL {header_section_separator="-"}
|
1284 |
|
|
params HAL {ignore_empty_line_for_comment="no"}
|
1285 |
|
|
params HAL {internally_generated_clock_as_clock="no"}
|
1286 |
|
|
params HAL {issue_noblkn="both"}
|
1287 |
|
|
params HAL {pragma_control="strict"}
|
1288 |
|
|
params HAL {preserve_unused_elements="no"}
|
1289 |
|
|
params HAL {regex_style="csh"}
|
1290 |
|
|
// params HAL {regex_style="csh"}
|
1291 |
|
|
// params HAL {regex_style="full"}
|
1292 |
|
|
|
1293 |
|
|
params HAL {severity_downgradable="no"}
|
1294 |
|
|
// params HAL {severity_downgradable="no"}
|
1295 |
|
|
// params HAL {severity_downgradable="yes"}
|
1296 |
|
|
|
1297 |
|
|
params HAL {suppress_synthesizability_errors="no"}
|
1298 |
|
|
params HAL {unsized_literal="size_as_per_type"}
|
1299 |
|
|
|
1300 |
|
|
|
1301 |
|
|
// ----------------------- //
|
1302 |
|
|
// Rule Severity Changes //
|
1303 |
|
|
// ----------------------- //
|
1304 |
|
|
|
1305 |
|
|
params UNRCHS {ERROR}
|
1306 |
|
|
params WAITML {ERROR}
|
1307 |
|
|
params AWNDEL {ERROR}
|
1308 |
|
|
params TERMST {ERROR}
|
1309 |
|
|
params OUTRNG {ERROR}
|
1310 |
|
|
params TOPGEN {ERROR}
|
1311 |
|
|
|
1312 |
|
|
// ----------------- //
|
1313 |
|
|
// Rule Parameters //
|
1314 |
|
|
// ----------------- //
|
1315 |
|
|
|
1316 |
|
|
params TSBNTH {mask_cell_hierarchical="yes"}
|
1317 |
|
|
params TSBNTH {mask_cells="and:nand:mux"}
|
1318 |
|
|
params PBYNAM {num_params="5"}
|
1319 |
|
|
params LDFFPI {logic_depth_adder="1"}
|
1320 |
|
|
params LDFFPI {logic_depth_and="1"}
|
1321 |
|
|
params LDFFPI {logic_depth_divide="1"}
|
1322 |
|
|
params LDFFPI {logic_depth_inverter="1"}
|
1323 |
|
|
params LDFFPI {logic_depth_multiply="1"}
|
1324 |
|
|
params LDFFPI {logic_depth_mux="1"}
|
1325 |
|
|
params LDFFPI {logic_depth_nand="1"}
|
1326 |
|
|
params LDFFPI {logic_depth_nor="1"}
|
1327 |
|
|
params LDFFPI {logic_depth_or="1"}
|
1328 |
|
|
params LDFFPI {logic_depth_reference="1"}
|
1329 |
|
|
params LDFFPI {logic_depth_subtract="1"}
|
1330 |
|
|
params LDFFPI {logic_depth_threshold="10"}
|
1331 |
|
|
params LDFFPI {logic_depth_xnor="1"}
|
1332 |
|
|
params LDFFPI {logic_depth_xor="1"}
|
1333 |
|
|
params IDLENG {exception_list=""}
|
1334 |
|
|
params IDLENG {max_length="16"}
|
1335 |
|
|
params IDLENG {min_length="4"}
|
1336 |
|
|
params SVIFNM {pattern="*_bus"}
|
1337 |
|
|
params SVIFNM {text=": should end with '_bus'"}
|
1338 |
|
|
params NULCSE {allow_vhdl_two_state_logic="no"}
|
1339 |
|
|
params MPCMPE {expression_complexity="5"}
|
1340 |
|
|
params COMEND {min_line_count="0"}
|
1341 |
|
|
params SIGLNM {pattern="*"}
|
1342 |
|
|
params SIGLNM {text=""}
|
1343 |
|
|
params RECTYP {allow_record_declaration="yes"}
|
1344 |
|
|
params TIELOG {output_testing_mode="relax"}
|
1345 |
|
|
params LOOPTM {max_operation="10"}
|
1346 |
|
|
params RENAME {check_part_select_rename="disallow"}
|
1347 |
|
|
params DFDRVS {ff_latch_set_reset_check="yes"}
|
1348 |
|
|
params RSTNAM {local_regex_style="full"}
|
1349 |
|
|
// params RSTNAM {local_regex_style="csh"}
|
1350 |
|
|
// params RSTNAM {local_regex_style="full"}
|
1351 |
|
|
|
1352 |
|
|
params RSTNAM {pattern="_rst$|^rst_|^rst$"}
|
1353 |
|
|
params RSTNAM {text=": should end with '_rst' or start with 'rst_' or just be 'rst'"}
|
1354 |
|
|
params MEMRNM {pattern="*_mem"}
|
1355 |
|
|
params MEMRNM {text=": should end with '_mem'"}
|
1356 |
|
|
params REGRNM {pattern="*"}
|
1357 |
|
|
params REGRNM {text=""}
|
1358 |
|
|
params WIRENM {pattern="*"}
|
1359 |
|
|
params WIRENM {text=""}
|
1360 |
|
|
params SNCRST {sync_reset_style="either"}
|
1361 |
|
|
params CTLCHR {off}
|
1362 |
|
|
// params CTLCHR {off}
|
1363 |
|
|
// params CTLCHR {on}
|
1364 |
|
|
|
1365 |
|
|
params DESULN {max_lines="400"}
|
1366 |
|
|
params PCKGNM {pattern="*_pkg"}
|
1367 |
|
|
params PCKGNM {text=": should end with '_pkg'"}
|
1368 |
|
|
params LOCVNM {pattern="^l_.*$"}
|
1369 |
|
|
params LOCVNM {text=": should start with 'l_'"}
|
1370 |
|
|
params INSTNM {pattern="*"}
|
1371 |
|
|
params INSTNM {text=""}
|
1372 |
|
|
params ARCHID {local_regex_style="full"}
|
1373 |
|
|
// params ARCHID {local_regex_style="csh"}
|
1374 |
|
|
// params ARCHID {local_regex_style="full"}
|
1375 |
|
|
|
1376 |
|
|
params ARCHID {suffix_list="rtl|^rtl_|_rtl$|beh|^beh_|_beh$|syn|^syn_|_syn$|ppr|^ppr_|_ppr$|logic|^logic_|_logic$|hls|^hls_|_hls$|vit|^vit_|_vit$|tst|^tst_|_tst$"}
|
1377 |
|
|
params KEYWOD {off}
|
1378 |
|
|
// params KEYWOD {off}
|
1379 |
|
|
// params KEYWOD {on}
|
1380 |
|
|
|
1381 |
|
|
params ASUMNM {pattern="^assume_.*$"}
|
1382 |
|
|
params ASUMNM {text=": should start with 'assume_'"}
|
1383 |
|
|
params EXTFSM {allow_fsm_output="yes"}
|
1384 |
|
|
params ARCHNM {pattern="*_arch"}
|
1385 |
|
|
params ARCHNM {text=": should end with '_arch'"}
|
1386 |
|
|
params HIMPNM {pattern="*_z"}
|
1387 |
|
|
params HIMPNM {text=": should end with '_z'"}
|
1388 |
|
|
params RGOPNM {pattern="*_reg"}
|
1389 |
|
|
params RGOPNM {text=": should end with '_reg'"}
|
1390 |
|
|
params BEH_ARCHNM {pattern="^(TB|SIM|BEH)"}
|
1391 |
|
|
params BEH_ARCHNM {text=""}
|
1392 |
|
|
params PRTODR {layout_order=""}
|
1393 |
|
|
params BLKLNM {pattern="*_blk"}
|
1394 |
|
|
params BLKLNM {text=": should end with '_blk'"}
|
1395 |
|
|
params DIFSIG {pattern="*"}
|
1396 |
|
|
params CBYNAM {check_tech_cells="yes"}
|
1397 |
|
|
params NTACHR {local_regex_style="full"}
|
1398 |
|
|
// params NTACHR {local_regex_style="csh"}
|
1399 |
|
|
// params NTACHR {local_regex_style="full"}
|
1400 |
|
|
|
1401 |
|
|
params NTACHR {pattern="^([_]?([a-zA-Z0-9:]+_?[a-zA-Z0-9:]*)*)$"}
|
1402 |
|
|
params NTACHR {reserved_keyword_list=""}
|
1403 |
|
|
params NTACHR {text=""}
|
1404 |
|
|
params FILSUF {local_regex_style="full"}
|
1405 |
|
|
// params FILSUF {local_regex_style="csh"}
|
1406 |
|
|
// params FILSUF {local_regex_style="full"}
|
1407 |
|
|
|
1408 |
|
|
params FILSUF {pattern="(vhd$|vhdl$|v$|cpp$|cxx$|c++$|cc$|c$)"}
|
1409 |
|
|
params POIASG {ignore_poiasg="no"}
|
1410 |
|
|
params CLKSNM {pattern="*_CK"}
|
1411 |
|
|
params CLKSNM {text=": should end with '_CK'"}
|
1412 |
|
|
params NOINCD {mode="relax"}
|
1413 |
|
|
params SUBPLN {max_lines="300"}
|
1414 |
|
|
params NETDCL {Constant_Section_Ordering="no_order"}
|
1415 |
|
|
params NETDCL {IO_Decl_Section_Ordering="no_order"}
|
1416 |
|
|
params NETDCL {Internal_Signal_Section_Ordering="no_order"}
|
1417 |
|
|
params COVRNM {pattern="^cover_.*$"}
|
1418 |
|
|
params COVRNM {text=": should start with 'cover_'"}
|
1419 |
|
|
params OUTPNM {pattern="*_O"}
|
1420 |
|
|
params OUTPNM {text=": should end with '_O'"}
|
1421 |
|
|
params MEMNOP {output_bypass_mode="strict"}
|
1422 |
|
|
params INSTLB {max_length="8"}
|
1423 |
|
|
params CMPPKG {pattern="*_cmp_pkg"}
|
1424 |
|
|
params CMPPKG {text=": should end with '_cmp_pkg'"}
|
1425 |
|
|
params RTL_ARCHNM {pattern="^(RTL|STR)"}
|
1426 |
|
|
params RTL_ARCHNM {text=""}
|
1427 |
|
|
params LENCPI {controllable_thru_comb_logic="no"}
|
1428 |
|
|
params RULREP {report_successfull="yes"}
|
1429 |
|
|
params RULREP {report_unchecked="yes"}
|
1430 |
|
|
params RULREP {report_unclassified="no"}
|
1431 |
|
|
params RULREP {report_violated="yes"}
|
1432 |
|
|
params LOGNEG {mode="strict"}
|
1433 |
|
|
params ASNRST {async_reset_style="active_low"}
|
1434 |
|
|
params SUBRNM {pattern="*_proc"}
|
1435 |
|
|
params SUBRNM {text=": should end with '_proc'"}
|
1436 |
|
|
params EXPIPC {allow_concat_operation="no"}
|
1437 |
|
|
params LIBRNM {pattern="*"}
|
1438 |
|
|
params LIBRNM {text=""}
|
1439 |
|
|
params ASRTSC {controllable_thru_comb_logic="no"}
|
1440 |
|
|
params MULNBA {mulnba_reset_mode="no"}
|
1441 |
|
|
params MODLNM {pattern="*_mod"}
|
1442 |
|
|
params MODLNM {text=": should end with '_mod'"}
|
1443 |
|
|
params MODLNM {top_only="no"}
|
1444 |
|
|
params EDGMIX {hierarchical="no"}
|
1445 |
|
|
params ALOWNM {local_regex_style="full"}
|
1446 |
|
|
// params ALOWNM {local_regex_style="csh"}
|
1447 |
|
|
// params ALOWNM {local_regex_style="full"}
|
1448 |
|
|
|
1449 |
|
|
params ALOWNM {pattern=".*(VSS|VDD|GND|VCC).*|.*(vss|vdd|gnd|vcc).*"}
|
1450 |
|
|
params ALOWNM {text=""}
|
1451 |
|
|
params LMTSTS {max_states="40"}
|
1452 |
|
|
params DIFRST {setreset_type="async_and_sync"}
|
1453 |
|
|
params LTCHNM {issue_for_ports="yes"}
|
1454 |
|
|
params LTCHNM {pattern="*_l"}
|
1455 |
|
|
params LTCHNM {text=": should end with '_l'"}
|
1456 |
|
|
params ALOWID {pattern="*_n"}
|
1457 |
|
|
params ALOWID {text=": should end with '_n'"}
|
1458 |
|
|
params VARLNM {pattern="*"}
|
1459 |
|
|
params VARLNM {text=""}
|
1460 |
|
|
params UNCONO {check_on_std_cells="yes"}
|
1461 |
|
|
params UNCONO {ignore_explicitly_unconnected_port="no"}
|
1462 |
|
|
params UNCONO {ignore_port_with_no_load="no"}
|
1463 |
|
|
params UNCONN {allow_explicitly_unconnected="no"}
|
1464 |
|
|
// params UNCONN {allow_explicitly_unconnected="no"}
|
1465 |
|
|
// params UNCONN {allow_explicitly_unconnected="yes"}
|
1466 |
|
|
|
1467 |
|
|
params UNCONI {ignore_explicitly_unconnected_port="no"}
|
1468 |
|
|
params UNCONI {ignore_port_with_no_load="no"}
|
1469 |
|
|
params FILENM {pattern="*_F"}
|
1470 |
|
|
params FILENM {text=": should end with '_F'"}
|
1471 |
|
|
params PRTLYO {layout_order=""}
|
1472 |
|
|
params INSYNC {ff_sync_combi_logic_ok="yes"}
|
1473 |
|
|
params INSYNC {ff_sync_mixed_clock_edge_ok="no"}
|
1474 |
|
|
params INSYNC {lockup_latch_sync_allowed="yes"}
|
1475 |
|
|
params INTGNM {pattern="*"}
|
1476 |
|
|
params INTGNM {text=""}
|
1477 |
|
|
params MULSNO {order=""}
|
1478 |
|
|
params IGNDLY {allow_delay_in_ff_data="no"}
|
1479 |
|
|
params FSMIDN {fsm_states_in_default_clause="no"}
|
1480 |
|
|
params DIRRNG {direction="descending"}
|
1481 |
|
|
// params DIRRNG {direction="ascending"}
|
1482 |
|
|
// params DIRRNG {direction="descending"}
|
1483 |
|
|
|
1484 |
|
|
params MAXLEN {off}
|
1485 |
|
|
// params MAXLEN {off}
|
1486 |
|
|
// params MAXLEN {on}
|
1487 |
|
|
|
1488 |
|
|
params MAXLEN {max_line_length="80"}
|
1489 |
|
|
params TESTNM {pattern="*_test"}
|
1490 |
|
|
params TESTNM {text=": should end with '_test'"}
|
1491 |
|
|
params SIGLEN {exception_list=""}
|
1492 |
|
|
params SIGLEN {max_length="32"}
|
1493 |
|
|
params SIGLEN {min_length="1"}
|
1494 |
|
|
params TRUNCZ {off}
|
1495 |
|
|
// params TRUNCZ {off}
|
1496 |
|
|
// params TRUNCZ {on}
|
1497 |
|
|
|
1498 |
|
|
params TXCNOP {output_bypass_mode="strict"}
|
1499 |
|
|
params REALNM {pattern="*"}
|
1500 |
|
|
params REALNM {text=""}
|
1501 |
|
|
params TASKNM {pattern="task*"}
|
1502 |
|
|
params TASKNM {text=": should start with 'task'"}
|
1503 |
|
|
params CNSTLT {vhdl_multibit_null_literal="disallow"}
|
1504 |
|
|
params CNSTLT {vlog_multibit_null_literal="allow"}
|
1505 |
|
|
params FUNCNM {pattern="func*"}
|
1506 |
|
|
params FUNCNM {text=": should start with 'func'"}
|
1507 |
|
|
params PROPNM {pattern="^p_.*$"}
|
1508 |
|
|
params PROPNM {text=": should start with 'p_'"}
|
1509 |
|
|
params MXPROC {max_processes="10"}
|
1510 |
|
|
params INPTNM {pattern="*_I"}
|
1511 |
|
|
params INPTNM {text=": should end with '_I'"}
|
1512 |
|
|
params PORTNM {pattern="*"}
|
1513 |
|
|
params PORTNM {text=""}
|
1514 |
|
|
params PORTNM {top_only="no"}
|
1515 |
|
|
params ASTMNM {pattern="^assert_.*$"}
|
1516 |
|
|
params ASTMNM {text=": should start with 'assert_'"}
|
1517 |
|
|
params CBPAHI {report_path_till_top_level="no"}
|
1518 |
|
|
params CBPAHI {report_paths="all"}
|
1519 |
|
|
// params CBPAHI {report_paths="all"}
|
1520 |
|
|
// params CBPAHI {report_paths="nocell"}
|
1521 |
|
|
|
1522 |
|
|
params TBCHNM {pattern="$MODNAME"}
|
1523 |
|
|
params CDEFNC {case_default_specification="relax"}
|
1524 |
|
|
params CDEFNC {combinational_block_only="no"}
|
1525 |
|
|
params CDEFNC {full_case_with_no_default_allowed="yes"}
|
1526 |
|
|
params MAXPRT {max_ports="25"}
|
1527 |
|
|
params UELOPR {ignore_addition="no"}
|
1528 |
|
|
params UELOPR {ignore_subtraction="no"}
|
1529 |
|
|
params STMCNM {pattern="*_state"}
|
1530 |
|
|
params STMCNM {text=": should end with '_state'"}
|
1531 |
|
|
params PARMNM {pattern="*"}
|
1532 |
|
|
params PARMNM {text=""}
|
1533 |
|
|
params SEQNNM {pattern="^s_.*$"}
|
1534 |
|
|
params SEQNNM {text=": should start with 's_'"}
|
1535 |
|
|
params ACCSNM {pattern="*_P"}
|
1536 |
|
|
params ACCSNM {text=": should end with '_P'"}
|
1537 |
|
|
params ENTYNM {pattern="*_ent"}
|
1538 |
|
|
params ENTYNM {text=": should end with '_ent'"}
|
1539 |
|
|
params SLENEX {scanlengthlimit="200"}
|
1540 |
|
|
params NUMSUF {vector_only="yes"}
|
1541 |
|
|
params TBNNAM {pattern="*_tb"}
|
1542 |
|
|
params TBNNAM {text=": should end with '_tb'"}
|
1543 |
|
|
params CNSTNM {pattern="*_C"}
|
1544 |
|
|
params CNSTNM {text=": should end with '_C'"}
|
1545 |
|
|
params SYNASN {asynchronous_reset_is_synchronous="yes"}
|
1546 |
|
|
params CLKDMN {delayed_clock_as_clock="no"}
|
1547 |
|
|
params UCOPNM {pattern="*_nc"}
|
1548 |
|
|
params UCOPNM {text=": should end with '_nc'"}
|
1549 |
|
|
params BOUINC {lower_bound="0"}
|
1550 |
|
|
params LMULOP {multiplication_result_limit="64"}
|
1551 |
|
|
params MXTSBC {max_tri_state_buff_connect_limit="5"}
|
1552 |
|
|
params MLITNU {max_literals="20"}
|
1553 |
|
|
params CONFNM {local_regex_style="full"}
|
1554 |
|
|
// params CONFNM {local_regex_style="csh"}
|
1555 |
|
|
// params CONFNM {local_regex_style="full"}
|
1556 |
|
|
|
1557 |
|
|
params CONFNM {pattern="^$ENTNAME.*$"}
|
1558 |
|
|
params CONFNM {text=": should start with the name of the entity to which configuration is bound"}
|
1559 |
|
|
params NOBLKN {check_nested_blocks="no"}
|
1560 |
|
|
params NOBLKN {off}
|
1561 |
|
|
// params NOBLKN {off}
|
1562 |
|
|
// params NOBLKN {on}
|
1563 |
|
|
|
1564 |
|
|
params FFCSTD {output_of_blackbox="variable"}
|
1565 |
|
|
params FFCSTD {output_of_latch="variable"}
|
1566 |
|
|
params MULTCK {flipflop_reporting_limit="10"}
|
1567 |
|
|
params MULBAS {mulbas_quick_check="yes"}
|
1568 |
|
|
params IOPTNM {pattern="*_IO"}
|
1569 |
|
|
params IOPTNM {text=": should end with '_IO'"}
|
1570 |
|
|
params VLFLNM {pattern="$MODNAME"}
|
1571 |
|
|
|
1572 |
|
|
// --------------- //
|
1573 |
|
|
// Rule Renaming //
|
1574 |
|
|
// --------------- //
|
1575 |
|
|
|
1576 |
|
|
|