OpenCores
URL https://opencores.org/ocsvn/t6507lp/t6507lp/trunk

Subversion Repositories t6507lp

[/] [t6507lp/] [trunk/] [lint/] [run/] [hal.def] - Blame information for rev 138

Details | Compare with Previous | View Log

Line No. Rev Author Line
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
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.