Conformal Ref
Conformal Ref
Conformal Ref
Conformal
Conformal
Conformal
endmodule
Input:
> read design top.edf -golden -edif
// Warning: (HRC6.1) Mapping empty edif cell to parameterized module is not
supported (occurrence:1)
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 583 Product Version 7.2
HRC7
Message
Modules specified by the add notranslate modules command cannot be found
Default Severity
Warning
Description
A module cannot be found in the design that was specied with the ADD NOTRANSLATE
MODULES command.
Example
In the following example mod1 is the name of module that does not exist in the design.
Input:
> add notranslate modules mod1
// Warning: (HRC7) Modules specified by the add notranslate modules command
cannot be found (occurrence:2)
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 584 Product Version 7.2
Ignored
This category of rules applies to designs that include constructs or statements that are either
redundant or unsupported, and thus ignored by the checker. The following table lists the
Ignored (IGN) rule numbers and messages. The severity level for all IGN rule check
messages is warning.
Rule Number Message
IGN1.1 initial assignment is ignored
IGN1.2 nal construct is ignored
IGN2.1 Delay value(s) are ignored
IGN2.2 Illegal defparam statement(s) are ignored
IGN2.3 Unsupported defparam statement is ignored
IGN3.1 Duplicated pin/port names are detected and ignored
IGN3.2 Duplicate modules/entities are detected. Subsequent modules/
entities are ignored
IGN3.3 Multiple declarations of same packages are detected. Earlier
declarations are ignored
IGN3.4 Duplicate modules/entities are detected. Previous modules/
entities are ignored
IGN3.5 Duplicate modules/entities are detected. Local module/entity is
used
IGN3.6 Blackbox is replaced with the current module/entity
IGN4 Attribute instance(s) are ignored
IGN5.1 Liberty state table is ignored with the -nostatetable option
IGN5.2 Liberty attribute is ignored
IGN5.3 Liberty state table contains lowercase value(s) and is ignored
IGN6.1 timeunit statement is ignored
IGN6.2 timeprecision statement is ignored
IGN7.1 trireg net is treated as regular wire net
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 585 Product Version 7.2
IGN1.1
Message
initial assignment is ignored
Default Severity
Warning
Description
The initial statement is a SystemVerilog construct for simulation that the checker does
not support. Thus, when the checker detects this construct in the syntax, it ignores the entire
initial construct. Similarly, the checker reports rule IGN1.2 for the final statement.
Example
In the following example, the checker ignores the keyword initial. See line 5 (in bold).
module test ( clk, din, dout );
input clk, din;
output dout;
wire dout;
initial dout = !din;
assign dout = din;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 586 Product Version 7.2
IGN1.2
Message
final construct is ignored
Default Severity
Warning
Description
The final statement is a SystemVerilog construct for simulation that the checker does not
support. Thus, when the checker detects this statement in the syntax, it ignores the entire
final statement. Similarly, the checker reports rule IGN1.1 for the initial statement.
Example
In the following example, the checker ignores the entire final statement. See lines 7, 8, and
9 (in bold).
module test(aa, bb, o1, o2);
input aa, bb;
output o1, o2;
assign o1 = aa == bb;
assign o2 = aa != bb;
final begin
$display(done);
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 587 Product Version 7.2
IGN2.1
Message
Delay value(s) are ignored
Default Severity
Warning
Description
The checker has ignored one or more delay values.
Example
In the following example, the checker ignores delay value #(10). See line 5 (in bold).
module test ( clk, din, dout );
input clk, din;
output dout;
wire dout;
not #(10) (dout, din);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 588 Product Version 7.2
IGN2.2
Message
Illegal defparam statement(s) are ignored
Default Severity
Warning
Description
The design uses one or more defparam keywords illegally. The checker ignores illegally
used defparam keywords.
Example
In the following example, P8P is undened. The checker will ignore the statement. See line 4
(in bold).
module test ( clk, din, dout );
input clk, din;
output dout;
defparam P8P.INI=8'h88;
assign dout = din;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 589 Product Version 7.2
IGN2.3
Message
Unsupported defparam statement is ignored
Default Severity
Warning
Description
The defparam directive is unsupported and ignored.
Example
In the following example, defparam is ignored (see line 16):
module sub1(aa, oo);
parameter NN = 1'b0;
input aa;
output oo;
assign oo = aa & NN;
endmodule
module sub2(aa, oo);
input aa;
output oo;
sub1 u0 [2:0] (aa, oo);
endmodule
module sub3(aa, oo);
input aa;
output oo;
sub2 u0(aa, oo);
defparam u0.u0[0].NN = 1'b1;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 590 Product Version 7.2
IGN3.1
Message
Duplicated pin/port names are detected and ignored
Default Severity
Warning
Description
The design includes duplicate pins or ports.
Example
In the following example, the checker ignores the duplicated port dout (see the rst line)
module test ( dout, clk, din, dout );
input clk, din;
output dout;
reg dout;
always @(posedge clk)
dout <= din;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 591 Product Version 7.2
IGN3.2
Message
Duplicate modules/entities are detected. Subsequent modules/entities are ignored
Default Severity
Warning
Description
The design includes duplicate modules or entities. The checker ignores duplications.
Example
In the following example, the design duplicates module test. The checker ignores the
second module test.
Note:
Ellipses ( ) denote characters that are present in the le, but not shown in this
example.
module test ( clk, din, dout );
endmodule
module test ( clk, din, dout );
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 592 Product Version 7.2
IGN3.3
Message
Multiple declarations of same packages are detected. Earlier declarations are
ignored
Default Severity
Warning
Description
There are multiple declarations of the same package. The checker ignores earlier
declarations.
Note:
Ellipses ( ) denote characters that are present in the le, but not shown in this
example.
Example
In the following example, the rst declaration for pkg is ignored.
package pkg is
CONSTANT val1 : bit := 1;
end pkg;
package pkg is
CONSTANT val1 : bit := 0;
end pkg;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 593 Product Version 7.2
IGN3.4
Message
Duplicate modules/entities are detected. Previous modules/entities are ignored
Default Severity
Warning
Description
There are multiple denitions for a module or entity. The checker takes the last denition and
ignores previous ones. This usually occurs when you use the -lastmod option with the READ
DESIGN command.
Example
In the following example, the checker ignores the rst denition for test when you use the
read design -lastmod test.v -replace command.
module test ( clk, din, dout );
input clk, din;
output dout;
reg dout;
always @(posedge clk)
dout <- din;
endmodule
module test (clk, din, dout );
input clk, din;
output dout;
reg dout;
always @(posedge clk)
dout <= din;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 594 Product Version 7.2
IGN3.5
Message
Duplicate modules/entities are detected. Local module/entity is used
Default Severity
Warning
Description
Duplicate modules are found and the Conformal software uses the local module. If you want
to use the local module, you must use the read design -localref command.
Example
In the following example, you can use read design -localref to use local module sub1
(see lines 9 for each of the following les). For each le, the instantiation of sub1 in lines 9
will use the sub1 dened in lines 1 (module sub1(aa, oo)).
File mod1.v
module sub1(aa, oo);
input aa;
output oo;
assign oo = aa;
endmodule
module mod1(aa, oo);
input aa;
output oo;
sub1 u0 (aa, oo);
endmodule
File mod2.v
module sub1(aa, oo);
input aa;
output oo;
assign oo = !aa;
endmodule
module mod2(aa, oo);
input aa;
output oo;
sub1 u0 (aa, oo);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 595 Product Version 7.2
IGN3.6
Message
Blackbox is replaced with the current module/entity
Default Severity
Warning
Description
The blackbox module is replaced by a non-blackbox module.
Example
In the following example, same module, but the rst one is a blackbox, so this will replace the
module sub1 in mod2.v will replace the modue sub1 in mod1.v. Use read design
-bboxsolver to replace sub1 with a non-blackbox model
File mod1.v:
module sub1(aa, oo);
input aa;
output oo;
// this is a bbox
endmodule
File mod2.v:
module sub1(aa, oo);
input aa;
output oo;
assign oo = !aa;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 596 Product Version 7.2
IGN4
Message
Attribute instance(s) are ignored
Default Severity
Warning
Description
The checker has ignored one or more attribute instances.
Example
In the following example, the checker ignores the attribute instance (* a = b *). See line 4.
module test(a, b);
input a;
output b;
(* a = b *) assign b = a;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 597 Product Version 7.2
IGN5.1
Message
Liberty state table is ignored with the -nostatetable option
Default Severity
Note
Description
A Liberty le contains a state table and is ignored due to the -nostatetable option
specied in the READ DESIGN or READ LIBRARY command. The checker does not support
state tables.
Example
In the following example, while reading the Liberty library lsi_10k.lib, the checker
encountered 17 occurrences of the unsupported state table. Refer to the state table example
below.
Input:
SETUP>read lib -lib lsi_10k.lib
// Parsing file lsi_10k.lib
// Warning: (IGN5.1) Liberty State Table is not supported and is ignored
(occurrence:17)
State Table Example:
statetable ( " D CP ", " Q QN") {
table : " - ~R : - - : N N, \
H/L R : - - : H/L L/H";
}
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 598 Product Version 7.2
IGN5.2
Message
Liberty attribute is ignored
Default Severity
Ignore
Description
The Liberty attribute is ignored.
Example
Some unsupported attributes are:
poly_template
hyperbolic_noise_above_high
hyperbolic_noise_low
hyperbolic_noise_high
steady_state_current_high
steady_state_current_low
steady_state_current_tristate
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 599 Product Version 7.2
IGN5.3
Message
Liberty state table contains lowercase value(s) and is ignored
Default Severity
Warning
Description
The parser found lowercase value(s) in the truth table of the statetable. These must be
changed to uppercase.
Example
In the following example, lines 2 and 3 shows that the edge value(s) ~r and r are written
in lowercase, which should be changed to uppercase:
statetable( " D CP" , " Q QN" ) {
table : " - ~r : - - : N N,\
H/L r : - - : H/L L/H" ;
}
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 600 Product Version 7.2
IGN6.1
Message
timeunit statement is ignored
Default Severity
Warning
Description
The timeunit statement is a SystemVerilog construct for simulation that the checker does
not support. When the checker detects this statement in the syntax, it ignores the entire
timeunit statement. Similarly, the checker reports rule IGN6.2 for the timeprecision
statement.
Example
In the following example, the checker ignores the timeunit statement on line 2:
module test(aa, bb, o1, o2);
timeunit 1ps;
input aa, bb;
output o1, o2;
assign o1 = aa == bb;
assign o2 = aa != bb;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 601 Product Version 7.2
IGN6.2
Message
timeprecision statement is ignored
Default Severity
Warning
Description
The timeprecision statement is a SystemVerilog construct for simulation that the checker
does not support. When the checker detects this statement in the syntax, it ignores the entire
timeprecision statement. Similarly, the checker reports rule IGN5.3 for the timeunit
statement.
Example
In the following example, the checker ignores the timeprecision statement on line 2:
module test(aa, bb, o1, o2);
timeprecision 0.1ps;
input aa, bb;
output o1, o2;
assign o1 = aa == bb;
assign o2 = aa != bb;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 602 Product Version 7.2
IGN7.1
Message
trireg net is treated as regular wire net
Default Severity
Warning
Description
A trireg net can model a charge storage node whose charge decays over time. The
Conformal software does not support charge storage and charge decays. As a result, the
software treats a trireg net as regular wire net.
Example
In the following example, the checker ignores the trireg statement on line 3 (in bold).
module test (clk, in1, out1);
input clk;
input trireg in1;
output reg out1;
always @(clk)
out1 = in1;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 603 Product Version 7.2
Register Transfer Level
This category of rules applies to designs that are written in the register transfer level of
abstraction. The following table lists the Register Transfer Level (RTL) rule numbers and
messages.
Rule Number Message
RTL1.1 Variable/signal is assigned by more than one concurrent statement
RTL1.2 Variable/signal is assigned by multiple non-blocking assignments
RTL1.2a Variable/signal on instance INOUT port might have multiple drivers
RTL1.3 Variable/signal is assigned by both blocking and non-blocking
assignments
RTL1.4 Assignment with LHS bit width is greater than RHS bit width
RTL1.5a Assignment with RHS bit width is greater than LHS bit width
RTL1.5b Potential loss of RHS msb or carry-out bit
RTL1.6 Blocking assignment is in sequential always block
RTL1.7 Non-blocking assignment is in combinational always block
RTL1.8 Latch is assigned by blocking assignments
RTL1.9 Parameter bit width does not match RHS bit width
RTL1.11 Variable is assigned by both continuous and procedural statements
RTL1.12 variable(SV:logic/bit) is assigned by multiple continuous statements
RTL1.13 Mismatched enumeration types are in the assignment
RTL1.14 Mismatched enumeration types are in the expression
RTL2.1 Variable is referenced before the assignment
RTL2.1a Variable is referenced before assignment in subprogram. Possible
simulation mismatch
RTL2.2 Variable is referenced but never assigned
RTL2.3 Externally dened signal reference is not supported
RTL2.4 Externally dened signal reference is supported
RTL2.5 Undriven net is detected
RTL2.6 Shared variables are not supported
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 604 Product Version 7.2
RTL2.7 Dynamic slice is not supported
RTL2.8 BUS and REGISTER signal type are not supported for synthesis
RTL2.9 Guarded assignment requires GUARD signal
RTL2.10 GUARD is not declared
RTL2.11 Implicitly declared GUARD signal cannot be updated
RTL2.12 Illegal redeclaration of GUARD signal
RTL2.13 Undriven pin is detected
RTL3.1 Variable/signal is unassigned in asynchronous set/reset
RTL3.2 Assignment of X is in asynchronous set/reset branch
RTL3.3 Non-constant value assignment is in asynchronous set/reset value
RTL3.4 DFF/DLAT is with both asynchronous set and reset connections
RTL3.5 Variable/signal is assigned without using asynchronous set/reset
RTL4.1 Enum encoding is applied to enum type
RTL4.2 Multiple wait statements. FSM encoding might be different
RTL4.3 Enum value size is different than the declared data type
RTL4.4 Encoding format has too many values
RTL5.1 Overlapped case items are in parallel case statement
RTL5.2 Non-binary case items are in case statement
RTL5.3 Case expressions/items are resized
RTL5.4 Partial case items are in full case statement
RTL6.1 X created due to the assignment of value X
RTL6.2 Integer value range constraint is added
RTL6.3 X created when divisor equals to zero
RTL6.4 Enum value constraint is added
RTL6.5 priority if and unique if statements are incomplete
RTL6.6 unique if statements have redundant or overlapping conditions
RTL7.1 Design includes comparison that uses X or Z values
Rule Number Message
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 605 Product Version 7.2
RTL7.2 Gate or transistor primitive is using weak attributes
RTL7.3 Array index in RHS might be out of range
RTL7.4 Array index in LHS might be out of range
RTL7.5 Input signal is assigned by logic values
RTL7.6 Value X or Z is treated as 0 in unary/binary expressions
RTL7.7 Real number rounded to integer value
RTL7.8 Overowed integer is truncated
RTL7.9 Sign overowed integer is truncated
RTL7.10 Comparison with signed and unsigned operands
RTL7.11 Implicit signed expression is converted to unsigned
RTL7.12 Unsized integer number is truncated to 32 bits
RTL7.13 Logical operator is applied to multiple-bit operand
RTL7.14 Loop exceeds maximum iterations
RTL7.15 Null slice is not supported
RTL7.16 Variable index is out of the dened range
RTL7.17 Exponentiation operator is unsupported
RTL7.18 Argument size to integer type conversion is too large
RTL7.19 Added constraint on integer overow for arithmetic operation ADD/SUB
RTL7.20 Size value in size(expr) casting is too large
RTL7.21 Real variables are not supported
RTL8.1 Multiple multipliers/dividers are in module/entity
RTL8.2 Latch(es) are inferred due to an incomplete conditional statement
RTL8.3 Unreachable DFF/DLAT is removed
RTL8.4 Unreachable DFF/DLAT is kept
RTL8.5 Implicit signed multiplier is detected in module/entity
RTL9.1 Instance inout/output port has dynamic indexing. Treated as oating
RTL9.2 Design has irregularly used inout/output expression
Rule Number Message
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 606 Product Version 7.2
RTL9.3 Supply0/supply1 is converted into a wire
RTL9.4 Supply0/supply1 net is not a module port
RTL9.5 Power pin is converted to an input pin
RTL9.7 Cannot read value from OUT port
RTL9.8 Set Liberty pin direction to output because it has an output function
RTL9.9 Extra ; is detected in port list
RTL9.10 Liberty cell does not use any input pin
RTL9.11 Liberty Master-Slave DFF cell clock phase does not match the timing
table
RTL9.12 Liberty cell with internal_node does not have correct statetable
RTL9.13 Set liberty cell to blackbox because some of its output pins have no
function
RTL9.14 Liberty cell has duplicate signal (pin/member)
RTL10 Both posedge and negedge are used in different always/process
RTL11 Incomplete condition is in a function/procedure/task block
RTL12 Referenced variable(s)/signal(s) are not in sensitivity list
RTL12.1 Constant object is in sensitivity list
RTL13 For loop condition is always false
RTL13.1 The FOR-LOOP index should not be assigned within the loop itself
RTL13.2 The evaluation of for-loop condition is not constant
RTL14 Signal with fanin drive and no fanout load is detected
RTL14.1 Fanout load of the signal is removed
RTL15 Clock and asynchronous set/reset expression must be one bit wide
RTL15.1 Else branch of event controlled if statement is not supported
RTL15.2 Sensitivity/clock style is unsupported
RTL16.1 Non-local variable is read in a function body
RTL16.2 Non-local variable is assigned in a function body
RTL17 Variable size exceeds the maximum limit
Rule Number Message
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 607 Product Version 7.2
RTL17.1 Expression size exceeds the maximum limit
RTL18.1 Package is not an IEEE standard
RTL18.2 Function denition has empty body
RTL18.3 Function call does not refer to a function denition
RTL18.4 Ignoring resolution function. This might cause mismatches between
simulation and synthesis
RTL19.1 Identier is a reserved keyword and might conict in designs with mixed
languages
RTL20.1 Pre-dened attribute is not supported
RTL20.2 Function is not supported
RTL20.3 Could not nd conguration
Rule Number Message
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 608 Product Version 7.2
RTL1.1
Message
Variable/signal is assigned by more than one concurrent statement
Default Severity
Warning
Description
The design includes one or more cases where a variable or signal is assigned by two or more
concurrent statements.
Example
In the following example, the design concurrently assigns output out0. See lines 4 and 5 (in
bold).
module SEN (clk,rst,in0,in1,out0);
input clk,rst,in0,in1;
output out0;
assign out0 = in0 & in1;
assign out0 = in1 & in0;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 609 Product Version 7.2
RTL1.2
Message
Variable/signal is assigned by multiple non-blocking assignments
Default Severity
Warning
Description
The design includes one or more cases where a variable or signal is assigned by two or more
non-blocking assignments.
Example
In the following example, variable out0 is assigned by a non-blocking assignment. See lines
7 and 8 (in bold).
module VLGT (clk,rst,in0,in1,out0);
input clk,rst,in0,in1;
output out0;
reg out0;
always @(posedge clk)
begin
out0 <= in0 & in1;
out0 <= in1 & in0;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 610 Product Version 7.2
RTL1.2a
Message
Variable/signal on instance INOUT port might have multiple drivers
Default Severity
Warning
Description
The variable or signal on the INOUT instance port might have multiple drivers.
Example
In the following example, in line 4 , ports VSSA and VSSG are dened as INOUT ports in the
library le:
module mod1_G(Y,A,VDDA,VSSA,VDDG,VSSG);
input A, VDDA, VSSA, VDDG, VSSG;
output Y;
KAQ2 I0(.Y(I0_Y), .A(A), .VDD_A(VDDA), .VSS_A(VSSA), .VDD_G(VDDG), \
.VSS_G(VSSG));
KAQ2 I2(.Y(Y), .A(I0_Y), .VDD_G(VDDG), .VSS_G(VSSG), .VDD_A(VDDA), \
.VSS_A(VSSA));
end
endmodule;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 611 Product Version 7.2
RTL1.3
Message
Variable/signal is assigned by both blocking and non-blocking assignments
Default Severity
Warning
Description
The design includes one or more cases where a variable or signal is assigned by both
blocking and non-blocking assignments.
Example
On line 7 of the following example, variable out0 is assigned by a blocking assignment, and
on line 9, variable out0 is assigned by a non-blocking assignment.
module VGT (rst,in0,in1,out0);
input rst,in0,in1;
output out0;
reg out0;
always @(rst or in1 or in0) begin
if (rst)
out0 = in1 & in0;
else
out0 <= in0 & in1;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 612 Product Version 7.2
RTL1.4
Message
Assignment with LHS bit width is greater than RHS bit width
Default Severity
Warning
Description
The design includes one or more assignments with a left-hand-side (LHS) bit width greater
than the right-hand-side (RHS) bit width.
Example
In the following example, the assignment of in0 to out0 has mismatched bit widths. See line
6 (in bold).
module VT (clk,in0,out0);
input clk,in0;
output [3:0] out0;
reg [3:0] out0;
always @(posedge clk) begin
out0 <= in0;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 613 Product Version 7.2
RTL1.5a
Message
Assignment with RHS bit width is greater than LHS bit width
Default Severity
Warning
Description
The design includes one or more assignments with a right-hand-side (RHS) bit width greater
than the left-hand-side (LHS) bit width.
Example
1.
In the following example, the design assigns a two-bit vector logic 2'b01 to a one-bit
output out0 (see line 3).
module test(out0);
output out0;
assign out0 = 2'b01;
endmodule
2. In the following Verilog example, the self-determined bit width for the RHS expression is
5, while the LHS is only 4.
x[3:0] = a[4:0] + b [4:0];
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 614 Product Version 7.2
RTL1.5b
Message
Potential loss of RHS msb or carry-out bit
Default Severity
Warning
Description
The design includes one or more assignments where there is potential for the right-hand-side
(RHS) to lose its most-signicant-bit (MSB) or carry-out bit.
Example
1. In the following example, the self-determined bit width of the RHS is 4 and the LHS is
also 4; however, x[3:0] does not take the potential carry-out from the RHS.
x[3:0] = a[3:0] + b[3:0];
2. In the following Verilog example, the self-determined bit width for the RHS is 4 and the
LHS is also 4; however, arithmetically, the product is 8 bits and x[3:0] only takes the
lower 4 bits of the total 8 bits.
x[3:0] = a[3:0] * b[3:0];
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 615 Product Version 7.2
RTL1.6
Message
Blocking assignment is in sequential always block
Default Severity
Warning
Description
The design includes one or more blocking assignments in a sequential always block.
Example
On lines 7 and 9 of the following example, the design uses blocking assignments:
module VLGT (clk,rst,in0,in1,out0);
input clk,rst,in0,in1;
output out0;
reg out0;
always @(posedge clk) begin
if (rst)
out0 = in1 & in0;
else
out0 = in0 & in1;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 616 Product Version 7.2
RTL1.7
Message
Non-blocking assignment is in combinational always block
Default Severity
Warning
Description
The design includes one or more non-blocking assignments in a combinational always block.
Example
On lines 7 and 9 of the following example, the design uses non-blocking assignments:
module VT (sel,in0,in1,out0);
input sel,in0,in1;
output out0;
reg out0;
always @(sel or in1 or in0) begin
if (sel)
out0 <= in1 & in0;
else
out0 <= in0 & in1;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 617 Product Version 7.2
RTL1.8
Message
Latch is assigned by blocking assignments
Default Severity
Warning
Description
The design includes one or more latches that are coded using a blocking assignment. We
recommend that sequential elements be coded using a non-blocking assignment rather than
a blocking assignment.
Example
In the following example, latch Q is coded using a blocking assignment (see line 7):
module Dlat(data, en, Q);
input data, en;
output Q;
reg Q;
always @( en or data)
if (en) Q = data;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 618 Product Version 7.2
RTL1.9
Message
Parameter bit width does not match RHS bit width
Default Severity
Warning
Description
The design includes one or more parameter bit widths that do not match with right-hand-side
(RHS) bit widths.
Example
In the following example, parameter my_values is declared as a 3-bit vector, but was
assigned a 4-bit vector (see line 3):
module test (Z);
output [3:0]Z;
parameter signed [2:0] my_values = 4b1010;
assign Z = my_values;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 619 Product Version 7.2
RTL1.11
Message
Variable is assigned by both continuous and procedural statements
Default Severity
Error
Description
A variable is assigned by both continuous and procedural statements.
Example
In the following example, variable t1 is assigned in lines 5 and 8.
module test (a, b,t1);
input a,b ;
output t1 ;
logic t1 ;
assign t1 = a & b;
always @(a or b )
begin
task1 (t1);
end
task task1 (output c);
begin
c = a | b;
end
endtask
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 620 Product Version 7.2
RTL1.12
Message
variable(SV:logic/bit) is assigned by multiple continuous statements
Default Severity
Error
Description
A variable is assigned by multiple continuous statements.
Example
In the following example, variable t1 is assigned in lines 5 and 6.
module test (a, b,t1);
input a,b ;
output t1 ;
logic t1 ;
assign t1 = a & b;
assign t1 = a | b;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 621 Product Version 7.2
RTL1.13
Message
Mismatched enumeration types are in the assignment
Default Severity
Error
Description
There are mismatched enumeration types in the assignment.
Example
In the following example, In line 5, read and din have mismatched enumeration type.
typedef enum {write , add, sub, mult} instr_t;
typedef enum {WAIT, LOAD, STORE} state_t;
module test(output state_t read, input instr_t din);
always_comb
read = din;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 622 Product Version 7.2
RTL1.14
Message
Mismatched enumeration types are in the expression
Default Severity
Error
Description
There are mismatched enumeration types in the expression.
Example
In the following example, In line 6, enumeration types are mismatched.
module test (output integer out1) ;
enum {IDLE=2b00, S1, S2} state;
assign state = S1;
always @*
begin
out1 = (state == 4)? 2b00:state;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 623 Product Version 7.2
RTL2.1
Message
Variable is referenced before the assignment
Default Severity
Warning
Description
The design includes one or more variables that are referenced before they are assigned.
Example
On line 8 of the following example, the design references variable sig1, but does not assign
it until line 9:
module TPS (clk,in1,in2,out0);
input clk,in1,in2;
output out0;
reg out0;
always @ (in1 or in2)
begin
reg sig1;
out0 = sig1;
sig1 = in1 | in2;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 624 Product Version 7.2
RTL2.1a
Message
Variable is referenced before assignment in subprogram. Possible simulation
mismatch
Default Severity
Warning
Description
For initialized variable in subprogram, simulation mismatch might occure when the variable is
referenced before the assignment. For the Conformal Equivalence Checking software and
synthesis tools, the variable will default to 0. However, for simulation, the variable assumes
previously assigned value.
Example
In the following example, in line 16, variable nxt_svl is referenced before assignment. This
can cause a simulation or synthesis mismatch.
function [11:0] foo;
...
reg nxt_svl;
begin
if (reset)
begin
...
nxt_svl = 1b0;
...
end
else
begin
...
case (state)
state0:
if (nxt_svl)
...
state5:
nxt_svl = 1b1;
...
endfunction
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 625 Product Version 7.2
RTL2.2
Message
Variable is referenced but never assigned
Default Severity
Warning
Description
The design includes one or more variables that are referenced but never assigned in the
design.
Example
In the following example, the design references variable da0, but never assigns it:
module SEN (clk,rst,out0);
input clk,rst;
output out0;
reg out0;
reg da0;
always @ ( posedge rst or posedge clk )
begin
if (rst) begin
out0 <= 1'b0;
end
else begin
out0 <= da0;
end
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 626 Product Version 7.2
RTL2.3
Message
Externally defined signal reference is not supported
Default Severity
Warning
Description
The checker did not support one or more externally dened signal references when they were
used in multiple entities. The checker only supports one entity that uses the externally dened
signal.
Example
In the following example, the design references the externally dened signal glob1 in
multiple entities, which causes the checker to error out.
Note:
Ellipses ( ) denote characters that are present in the le, but not shown in this
example.
PACKAGE pack IS
SIGNAL glob1 : boolean;
END PACK;
USE work. pack.all;
ENTITY test IS
END test;
ARCHITECTURE arch OF test IS
END test2;
ARCHITECTURE arch OF test2 IS
default: begin
tmp = mem_write;
next_state = iddle;
end
endcase
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 654 Product Version 7.2
RTL6.5
Message
priority if and unique if statements are incomplete
Default Severity
Warning
Description
There are incomplete priority if and unique if SystemVerilog statements. The
priority if and unique if SystemVerilog statements ensure that all conditions are
complete; they ensure that default else statements exist and
if/else if conditions cover all
conditions.
Example
In the following example, the incomplete priority if statement in line 4 triggers this rule
check, while the complete priority if statement in lines 11-12 do not trigger this rule
check.
module test1(input aa, output oo);
reg oo;
always @* begin
priority if (aa) oo = !aa; // incomplete condition
end
endmodule
module test2(input aa, output oo);
reg oo;
always @* begin
priority if (aa) oo = !aa;
else oo = aa; // complete condition
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 655 Product Version 7.2
RTL6.6
Message
unique if statements have redundant or overlapping conditions
Default Severity
Note
Description
There are possible redundant or overlapping conditions in unique if statements. Structural
checks generate this message; a more detailed analysis is done during compare.
Example
In the following example, there are overlapping conditions in the unique if statement that
will cause a rule check report. See line 5.
module test3(input aa, bb, output oo);
reg oo;
always @* begin
unique if (aa && bb) oo = !aa;
else if (aa || bb) oo = aa;
else oo = 1b0;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 656 Product Version 7.2
RTL7.1
Message
Design includes comparison that uses X or Z values
Default Severity
Warning
Description
The design includes one or more comparisons that use X or Z values as comparators.
Example
In the following example, the design compares reset rst with an X value. See line 7 (in bold).
module test (clk,rst,in0,out0);
input clk,rst,in0;
output out0;
reg out0;
always @ ( posedge clk )
begin
if (rst == 1'bx)
out0 <= 1'b0;
else
out0 <= in0;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 657 Product Version 7.2
RTL7.2
Message
Gate or transistor primitive is using weak attributes
Default Severity
Warning
Description
One or more gates or transistor primitives are using weak attributes.
Note: Not all weak attributes will be used. In the case of a multiple-driven net, the gate with
the strong attribute will drive the output.
Example
In the following example, the design uses a weak attribute for a buffer primitive. See line 5 (in
bold).
module test (clk,rst,in0,out0);
input clk,rst,in0;
output out0;
wire out0;
buf (weak0, weak1) (out0, in0);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 658 Product Version 7.2
RTL7.3
Message
Array index in RHS might be out of range
Default Severity
Warning
Description
The design includes an index where its right hand side might be out of range.
Example
In the following example, it uses an index where its right hand side might be out of range. See
line 10
(in bold)
.
module test (clk, idx, in0, out0);
input clk;
input [3:0] idx;
input [3:0] in0;
output out0;
reg out0;
always @ ( posedge clk)
begin
out0 <= in0[idx];
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 659 Product Version 7.2
RTL7.4
Message
Array index in LHS might be out of range
Default Severity
Warning
Description
The design includes an index where its left hand side might be out of range.
Example
In the following example, it uses an index where its left hand side might be out of range. See
line 10
(in bold)
.
module test (clk, idx, in0, out0);
input clk;
input [3:0] idx;
input in0;
output [3:0] out0;
reg [3:0] out0;
always @ ( posedge clk)
begin
out0[idx] <= in0;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 660 Product Version 7.2
RTL7.5
Message
Input signal is assigned by logic values
Default Severity
Warning
Description
The design includes one or more primary input signals that are assigned by logic values.
Example
In the following example, the design assigns logic value 1 to primary input a. See line 4 (in
bold).
module test(a, b);
input a;
output b;
assign a = 1'b1;
assign b = 1'b1;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 661 Product Version 7.2
RTL7.6
Message
Value X or Z is treated as 0 in unary/binary expressions
Default Severity
Warning
Description
The checker treats the 1bx or 1bz in unary/binary expression as 1b0.
Example
In the following example, on line 7 (in bold), the 1bx value in the conditional expression is
treated as 1b0. Thus, input in2 will be assigned directly to output out.
module test(in1, in2, out);
input in1, in2;
output out;
reg out;
always begin
out = 1bx ? in1 : in2;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 662 Product Version 7.2
RTL7.7
Message
Real number rounded to integer value
Default Severity
Warning
Description
The checker rounds real numbers to integer values.
Example
In the following example, on line 2 (in bold), input din has a real value of 2.2. However, the
checker truncates this value at .2.
module test (din, dout);
input [2.2:0] din;
output [2:0] dout;
assign dout = din;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 663 Product Version 7.2
RTL7.8
Message
Overflowed integer is truncated
Default Severity
Warning
Description
The design contains one or more integers that overow. Thus, the checker truncates them.
Example
In the following example, the checker truncates integer b;. See line 3.
module test (b);
output b;
integer b;
always
b = 5147483648;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 664 Product Version 7.2
RTL7.9
Message
Sign overflowed integer is truncated
Default Severity
Warning
Description
The design contains one or more integers that overow at the sign bit. Thus, the checker
truncates them.
Example
In the following example, the checker truncates integer b;. See line 3 (in bold).
module test (b);
output b;
integer b;
always
b = 2147483648;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 665 Product Version 7.2
RTL7.10
Message
Comparison with signed and unsigned operands
Default Severity
Warning
Description
The design includes both signed and unsigned operands used in a relational expression.
Example
In the following example, the checker compares the signed operand in1 (on line 4) to the
unsigned operand in2 (on line 5). The checker converts in1 to an unsigned operand rst,
and then compares it with in2. An unsigned comparison results.
module test (out0, in1, in2);
output out0;
input signed [31:0] in1;
input unsigned [31:0] in2;
assign out0 = in1 > in2;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 666 Product Version 7.2
RTL7.11
Message
Implicit signed expression is converted to unsigned
Default Severity
Warning
Description
The design includes a signed expression that the checker has converted to an unsigned
expression implicitly.
Example
In the following example, the checker converts the signed operand in1 to unsigned in the
conditional expression. See line 7 (in bold).
module test (out0, cond1, in1);
output unsigned [32:0] out0;
input cond1;
input signed [31:0] in1;
assign out0 = cond1 ? out0 : in1;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 667 Product Version 7.2
RTL7.12
Message
Unsized integer number is truncated to 32 bits
Default Severity
Warning
Description
The checker truncated an unsized integer literal to 32-bit.
Example
In the following example, the checker truncates hf00000000 to h00000000. See line 2.
module test6(input aa, output oo);
assign oo = (hf00000000 > 32h0)?aa:!aa;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 668 Product Version 7.2
RTL7.13
Message
Logical operator is applied to multiple-bit operand
Default Severity
Warning
Description
The logical operator is applied to multiple-bit operand when the operand is not a single-bit
expression.
Example
In the following example, the logical operator && is applied to multiple-bit operand tmp (see
line 5):
module test(in, out);
input in;
output out;
wire [2:0] tmp;
assign out = in && tmp;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 669 Product Version 7.2
RTL7.14
Message
Loop exceeds maximum iterations
Default Severity
Warning
Description
An index variable should be sufciently large enough to hold both the initial and the nal
values that the loop index could take. If the index variable is small, the loop will be executed
fewer number of times. This can lead to unpredictable behavior.
.Example
In the following example, I can only take values from 0 to 3 as its size 2 bits. Line 8 of the
code shows that the index of the for loop ranges from 0 to 5. Since the loop index variable I
is not large enough to hold the nal value of the loop index, the loop may never terminate.
module neg_BITUSD_loop_idx_bitsel(a, b, c);
input [3:0] a, b;
output [3:0] c;
reg [3:0] c;
always @(a or b)
begin: P
reg [1:0] I;
for (I = 2; I <= 5; I = I + 1)
begin: loop2
c[I] = a[I] | b[I];
end
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 670 Product Version 7.2
RTL7.15
Message
Null slice is not supported
Default Severity
Warning
Description
The specied datatype or node is dened with a null range, and it cannot hold any value. In
VHDL, a range is considered to be a null range, if the subset of values specied by the range
is empty (a decreasing range with a to direction, or an increasing range with a downto
direction). Examples of null range are (3 to 0) and (1 downto 8). The synthesis tools do not
support null range.
Example
In the following example, the null slice in line 9 is not supported:
entity TEST1 is
port (
in1: in integer ;
out2: buffer bit;
out3: out bit
) ;
end TEST1 ;
architecture ARCH_TEST1 of TEST1 is
type myvector is array(0 downto 7) of BIT;
begin
process (in1)
variable vec: myvector;
variable index: integer;
variable temp: bit;
begin
vec:= (1, 1, 1, 1, 1, 1, 1, 1) ;
temp:= vec(in1);
end process;
end ARCH_TEST1 ;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 671 Product Version 7.2
RTL7.16
Message
Variable index is out of the defined range
Default Severity
Warning
Description
A bit or part select reference in an expression is found to have an index specication outside
of the dened range of the variable. This can lead to unexpected simulation or synthesis
results. Cadence recommends that you change the reference so that the index or subrange
falls within the valid range.
Example
In the following example, index [4] is out of as range (see line 7):
module test1 (a, b, out1);
input [3:0] a;
input [3:0] b;
output out1;
reg out1;
always @(a or b)
out1 = a[4] & b[3];
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 672 Product Version 7.2
RTL7.17
Message
Exponentiation operator is unsupported
Default Severity
Warning
Description
Some synthesis tools do not support the exponentiation operator. Cadence recommends that
you remodel your HDL source code.
Example
In the following example, a ** 5 (line 14) is not supported:
Library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
entity TEST1 is
port (
a : in INTEGER;
out1 : out INTEGER
) ;
end TEST1 ;
architecture ARCH_TEST1 of TEST1 is
begin
process (a)
begin
out1 <= a ** 5;
end process;
end ARCH_TEST1 ;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 673 Product Version 7.2
RTL7.18
Message
Argument size to integer type conversion is too large
Default Severity
Warning
Description
The argument width is too large for conversion CONV_INTEGER. The maximum argument
width is 32 for a signed argument or 31 for an unsigned argument.
The Logical Equivalency Checker does truncations for the following:
I unsigned (31 bits) conversion to integer
I signed (32 bits) conversion to integer
Example
In the following example, on line 10, the argument for conv_integer is 32 bit width
unsigned, is too large (maximum if 31 for an unsigned argument).
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
entity IntCtrl is
port( IRQ : out integer;
IntCtrlReg_th : in std_logic_vector(31 downto 0));
end IntCtrl;
architecture rtl of IntCtrl is
begin
IRQ <= conv_integer(unsigned(IntCtrlReg_th));
end rtl;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 674 Product Version 7.2
RTL7.19
Message
Added constraint on integer overflow for arithmetic operation ADD/SUB
Default Severity
Warning
Description
A constraint is added on the integer overow for the ADD or SUB arithmetic operation.
Example
In the following example, in line 11, if (CONV_INTEGER(a) + b) > 2**31-1 (overow),
the software can derive a constraint on this overow, and then compare can ignore the
different interpretation synthesis tool made when (CONV_INTEGER(a) + b) > 2**31-1
occurs.
LIBRARY IEEE;
USE IEEE.std_logic_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY test IS
PORT ( a, b : IN natural;
z : OUT integer );
END test;
ARCHITECTURE rtl OF test IS
BEGIN
z <= CONV_INTEGER(a) + b ;
END rtl;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 675 Product Version 7.2
RTL7.20
Message
Size value in size(expr) casting is too large
Default Severity
Error
Description
The size value in size(expr) casting is too large. Use a positive integer value as the size
value.
Example
In the following example, the size hffffffff in line 4 is too large:
module test(in, out);
input in;
output out;
assign out = hffffffff(in);
endmodule;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 676 Product Version 7.2
RTL7.21
Message
Real variables are not supported
Default Severity
Warning
Description
Real variables are not supported in synthesis models. They are converted to 32-bit integers
when encountered in the static verication tool ows.
Example
In the following example, r1 (line 5) is not supported:
module real_in_cmp (b, out1);
input [1:0] b;
output out1;
reg out1;
real r1;
always @(b)
r1 = b;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 677 Product Version 7.2
RTL8.1
Message
Multiple multipliers/dividers are in module/entity
Default Severity
Note
Description
One or more modules or entities have multiple multipliers or dividers.
Example
In the following example, the design uses two multipliers in module test. See line 4 (in
bold).
module test (a, b, c, q);
input [3:0] a, b, c;
output [11:0] q;
assign q = a * b * c;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 678 Product Version 7.2
RTL8.2
Message
Latch(es) are inferred due to an incomplete conditional statement
Default Severity
Note
Description
The checker has inferred one or more latches. The checker infers a latch when it nds an
incomplete conditional statement.
Example
In the following example, the checker infers latch out0 so that output out0 will retain its
previous value when the clk = 1'b0, the missing condition. See line 8 (in bold).
module test (clk,rst,in0,out0);
input clk,rst,in0;
output out0;
reg out0;
always @ ( clk or in0 )
begin
if (clk)
out0 = in0;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 679 Product Version 7.2
RTL8.3
Message
Unreachable DFF/DLAT is removed
Default Severity
Warning
Description
The design includes one or more DFFs or DLATs that are unreachable. Unreachable registers
are those registers that do not propagate to any observable point (for example, spare ops).
By default, the checker removes all unreachable DFFs and DLATs that are local to a module.
If you want to keep the unreachable DFFs and DLATs, use the READ DESIGN commands
-keep_unreach option. For example:
read design test.vhdl -vhdl -keep_unreach
Example
In the following example, the output of register out1[1] does not propagate to any
observable point. See line 9 (in bold).
module TEST (clk,in1,in2,out0);
input clk,in1,in2;
output out0;
reg out0;
reg[1:0] out1;
always @ ( posedge clk )
begin
out0 <= in1;
out1[1] <= in2;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 680 Product Version 7.2
RTL8.4
Message
Unreachable DFF/DLAT is kept
Default Severity
Warning
Description
The design includes one or more DFFs or DLATs that are unreachable. Unreachable registers
are those registers that do not propagate to any observable point (for example, spare ops).
By default, the checker removes all unreachable DFFs and DLATs that are local to a module.
You will receive this message if you use the READ DESIGN commands -keep_unreach
option. For example:
read design test.vhdl -vhdl -keep_unreach
Example
In the following example, on line 9, DFF out1[1] is unreachable:
module TEST (clk,in1,in2,out0);
input clk,in1,in2;
output out0;
reg out0;
reg[1:0] out1;
always @ ( posedge clk )
begin
out0 <= in1;
out1[1] <= in2;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 681 Product Version 7.2
RTL8.5
Message
Implicit signed multiplier is detected in module/entity
Default Severity
Note
Description
The checker detected (and recognized) the Verilog signed multiplier coding style that uses
either sign-extension or subtraction.
Example
In the following example, on lines 5, a signed multiplier is created using sign-extension coding
style:
module test( in1, in2, out);//using sign-extension
input [21:0] in1;
input [13:0] in2;
output [34:0] out;
assign out= {{21{in2[13]}}, in2[13:0]} * {{13{in1[21]}}, in1[21:0]};
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 682 Product Version 7.2
RTL9.1
Message
Instance inout/output port has dynamic indexing. Treated as floating
Default Severity
Warning
Description
The design includes one or more instance inout/output ports with dynamic indexing. Dynamic
indexing is a non-synthesizable coding style. As a result, the checker creates oating signals
for all inout/outputs.
Example
In the following example, only one of the two-bit outputs out0 is dynamically selected by input
in2. See line 12 (in bold).
module SUB (in2, out3);
input in2;
output out3;
assign out3 = in2;
endmodule
module TEST (in0,in1,in2,out0);
input [1:0] in0;
input in1,in2;
output [1:0] out0;
reg [1:0] out0;
SUB inst1 (.in2(in0[in1]),.out3(out0[in2]));
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 683 Product Version 7.2
RTL9.2
Message
Design has irregularly used inout/output expression
Default Severity
Warning
Description
The design includes one or more irregularly used inout/output expressions.
Example
In the following example, inout port inout3 is tied to 0 logic value. See line 13 (in bold).
module SUB (in2, inout3);
input in2;
inout inout3;
wire inout3;
assign inout3 = in2;
endmodule
module TEST (in0,in1,in2,out0);
input [1:0] in0;
input in1,in2;
output [1:0] out0;
reg [1:0] out0;
SUB inst1 (.in2(in0[in1]),.inout3(1'b0));
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 684 Product Version 7.2
RTL9.3
Message
Supply0/supply1 is converted into a wire
Default Severity
Warning
Description
The supply0 or supply1 net is converted into a wire.
Example
In the following example, supply0 net in2 is converted to a wire.
module test (in, out);
input in;
output out;
supply0 in2;
assign out = in & in2;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 685 Product Version 7.2
RTL9.4
Message
Supply0/supply1 net is not a module port
Default Severity
Warning
Description
The supply0 or supply1 net is not a module port.
Example
In the following example, supply0 net in2 is not a module port (see line 4):
module test (in, out);
input in;
output out;
supply0 in2;
assign out = in & in2;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 686 Product Version 7.2
RTL9.5
Message
Power pin is converted to an input pin
Default Severity
Warning
Description
A power pin is converted to an input pin.
Example
In the following example, when running the following Conformal commands:
set power pin -input vss vdd
read des test.v -fix_power_pin
the vss and vdd pins are changed from inout to input pins.
input in;
output out;
inout vss, vdd; // changed to input pins
supply0 vss;
supply1 vdd;
assign out = !in;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 687 Product Version 7.2
RTL9.7
Message
Cannot read value from OUT port
Default Severity
Error
Description
A feedback loop has been detected through the asynchronous set or resets of ip-op(s) and
the listed signals, wires, or expressions.
Example
In the following example, dout (line 5) is the outport. Attempting to read fromdout will cause
an error:
library ieee;
use ieee.std_logic_1164.all;
Entity dff is
port (clk: in std_logic;
reset: in std_logic;
din: in std_logic;
dout: out std_logic);
end dff;
Architecture behave of dff is
signal reset_cond: std_logic;
begin
reset_cond <= dout or reset; <b>
process (clk,din,reset_cond)
begin
if reset_cond = 1 then
dout <= 0;
elsif clkevent and clk = 1 then
dout <= din;
end if
end process;
end behave;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 688 Product Version 7.2
RTL9.8
Message
Set Liberty pin direction to output because it has an output function
Default Severity
Warning
Description
This rule check sets the pin direction from the Liberty library to an output because it has an
output function.
Example
In the following example, in line 9, the direction of pin Y is set to an output because it has an
output function:
library(test) {
cell (AND2X2) {
pin(A) {
direction : input;
}
pin(B) {
direction : input;
}
pin(Y) {
function : "(A B)";
}
}
}
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 689 Product Version 7.2
RTL9.9
Message
Extra ; is detected in port list
Default Severity
Warning
Description
This rule check indicates that there is an extra semi-colon (;) after the last port in the port list.
Example
In the following example, in line 3, there is an extra semi-colon (;) after bit:
entity e is
port(q : out bit;
d : in bit;);
end;
architecture a of e is+
begin
q <= d;
end;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 690 Product Version 7.2
RTL9.10
Message
Liberty cell does not use any input pin
Default Severity
Warning
Description
Indicates that the Liberty cell does not use any input pin.
Example
In the following example, in line 11, no input pin is used in the output function.
library(test) {
cell (AND2X2) {
pin(A) {
direction : input;
}
pin(B) {
direction : input;
}
pin(Y) {
direction : output;
function: "(1)";
}
}
}
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 691 Product Version 7.2
RTL9.11
Message
Liberty Master-Slave DFF cell clock phase does not match the timing table
Default Severity
Warning
Description
Indicates that the liberty cell is a master-slave ip op, but its clock phase does not match with
the timing table.
Example
In the following example, the master-slave ip-op is triggered by clocked_on_also :
!phi, but a timing_type of rising edge is used in pin q. This causes a phase mismatch.
cell (DFFDDRX8) {
...
pin (resetb) {
direction : input;
capacitance : 0.00563;
min_pulse_width_low : 0.33680;
}
pin (q) {
function : "IQ" ;
direction : output;
max_fanout : 7.8535;
timing() {
related_pin : "phi";
timing_type : rising_edge ;
...
}
}
ff (IQ,IQN) {
clocked_on : phi ;
clocked_on_also : !phi ;
clear : !resetb ;
next_state : "(!phi * dp) + (phi * dn)" ;
}
}
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 692 Product Version 7.2
RTL9.12
Message
Liberty cell with internal_node does not have correct statetable
Default Severity
Warning
Description
Indicates that there is an internal_node in the liberty cell, but the corresponding statetable
is missing or a corresponding pin of the internal_node name is not found in the cell.
Example
In the correct liberty le, if the internal_node attribute exists, there should be a
corresponding statetable group as following:
statetable("in1", "ires"){
...
}
but there is no statetable in the cell in the following example:
cell(test){
pin (in1) {
direction: input;
}
pin (ires) {
direction: internal;
internal_node: "ires"
}
pin (out1) {
direction: output;
function: "in1 in2";
}
}
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 693 Product Version 7.2
RTL9.13
Message
Set liberty cell to blackbox because some of its output pins have no function
Default Severity
Warning
Description
Indicates that some of the liberty cells output pin has no function attribute in it, but some
timing table exist in the output pin. Then the liberty cell is set to be a blackbox.
Example
In the following example, if line 3 is removed, the cell would be marked as a blackbox.
pin (out2) {
direction: output;
function: "!in1";
timing(){
...
}
}
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 694 Product Version 7.2
RTL9.14
Message
Liberty cell has duplicate signal (pin/member)
Default Severity
Error
Description
Indicates that there are duplicated signals in a bundle declaration of the Liberty cell.
Example
In the following example, the bundle (z) has duplicated members z01:
cell(zhdp_mpt2) {
bundle(r) {
members(r0, r1);
direction : input;
capacitance : 0.003750;
fanout_load : 0.188;
min_pulse_width_high : 0.056;
}
bundle(z) {
members(z01, z01); /* ERROR: z01 is duplicated *
direction : inout;
capacitance : 0.005625000;
}
} /* cell(zhdp_mpt2) */
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 695 Product Version 7.2
RTL10
Message
Both posedge and negedge are used in different always/process
Default Severity
Warning
Description
Both the posedge and negedge of a clock are used in different always/process blocks.
Example
On line 5 of the following example, the design uses the posedge clock in an always block.
And on line 9, the design uses the negedge clock in another always block.
module SEN (clk,rst,in0,out0,out1);
input clk,rst,in0;
output out0,out1;
reg out0,out1;
always @ ( posedge clk )
begin
out0 <= in0;
end
always @ ( negedge clk )
begin
out1 <= !in0;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 696 Product Version 7.2
RTL11
Message
Incomplete condition is in a function/procedure/task block
Default Severity
Warning
Description
The design includes one or more incomplete conditional statements within functions,
procedures, or task blocks.
Examples
I
In the following example, the if statement is missing its else branch. See line 8 (in
bold).
module TER (clk,rst,in0,out0);
input clk,rst,in0;
output out0;
wire out0;
assign out0 = func1 (in0,rst);
function func1;
input in0, rst;
if (rst)
func1 = in0;
endfunction
endmodule
I
Incomplete conditional statements might lead to false positive result under certain
circumstance and should be carefully examined.
In the following example, the variable parameter type output in the subprogrammight get
an ambiguous value because of the incomplete conditional statements. In this testcase,
nxt_state is associated with a variable parameter of mode OUT in procedure
next_state. Inside the procedure, when x = 3, there is no assignment to z. In this case,
nxt_state does not hold its original value of 3 after calling procedure next_state.
Instead, it gets a value 0 (in bold).
library ieee;
use ieee.std_logic_1164.all;
entity test is
procedure next_state(x: in integer range 0 to 3;
z: out integer range 0 to 3) is
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 697 Product Version 7.2
begin
case x is
when 1 => z := 1;
when 2 => z := 2;
when others => NULL;
end case;
end next_state;
end test;
architecture rtl of test is
begin
process
variable cur_state: integer range 0 to 3;
variable nxt_state : integer range 0 to 3;
begin
cur_state := 3;
nxt_state := 3;
next_state(cur_state, nxt_state);
end process;
end rtl;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 698 Product Version 7.2
RTL12
Message
Referenced variable(s)/signal(s) are not in sensitivity list
Default Severity
Warning
Description
The design includes one or more variables or signals that are referenced but not included in
sensitivity lists.
Example
On line 7 of the following example, the design references variable in2, which is not included
in the sensitivity list on line 5.
module SEN (in0,in1,in2,out0);
input in0,in1,in2;
output out0;
reg out0;
always @ ( in0 or in1 )
begin
out0 = in0 | in1 | in2;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 699 Product Version 7.2
RTL12.1
Message
Constant object is in sensitivity list
Default Severity
Warning
Description
There is a constant object in the sensitivity list.
Example
In the following example, val is a constant (see line 6):
module SEN (in0,out0);
input in0;
output out0;
parameter val = 1;
reg out0;
always @ ( in0 or val )
begin
out0 = in0 ;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 700 Product Version 7.2
RTL13
Message
For loop condition is always false
Default Severity
Warning
Description
The design includes one or more for loops that will never hold true.
Example
On line 7 of the following example, the variable i is initialized with a value of 2 (i=2). Thus,
this for loop will never hold true, since i will never be less than a value of 1 (i<1).
module test(out,in);
output [3:0] out;
reg [3:0] out;
input [3:0] in;
integer i;
always begin
for (i=2; i<1; i=i+1) begin
out = i;
end
out = in;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 701 Product Version 7.2
RTL13.1
Message
The FOR-LOOP index should not be assigned within the loop itself
Default Severity
Warning
Description
The FOR-LOOP index cannot be assigned within the loop.
Example
In the following example, i is the FOR-LOOP index and it is assigned within the loop (see line
8):
module top(input [1:0] in, output [4:0] out);
sum sum1(in,out);
endmodule
module sum(input [1:0] a, output [4:0]result);
integer i;
always begin
for (i=0; i<3; i=i+1) begin
i = a;
end
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 702 Product Version 7.2
RTL13.2
Message
The evaluation of for-loop condition is not constant
Default Severity
Warning
Description
The Conformal software detected a non-static loop. As per synthesis semantics, a loop in an
HDL design must be statically unrollablethat is, the number of loop iterations should be
statically known.
Example
In the following example, N is not a constant (see line 9):
module neg_NSLOOP (a, b, c);
input [1000:0] a, b;
output [1000:0] c;
reg [1000:0] c;
integer N;
always @(a or b)
begin: P
integer I;
for (I = 0; I < N; I = I + 1)
c[I] = a[I] & b[I];
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 703 Product Version 7.2
RTL14
Message
Signal with fanin drive and no fanout load is detected
Default Severity
Warning
Description
The checker has removed one or more oating signals. This situation occurs when the output
of a logic cone has no fan-out loads. In other words, the signal is driven by a gate or input port
(has drives), but its output does not drive any gate or output port (has no loads).
Example
On line 5 of the following example, flt does not have any fan-out loads, so the checker
issues the RTL14 warning.
module test(aa, bb, o1, o2);
input aa, bb;
output o1, o2;
wire flt;
assign flt = aa != bb;
assign o1 = aa == bb;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 704 Product Version 7.2
RTL14.1
Message
Fanout load of the signal is removed
Default Severity
Warning
Description
Indicates that the fanout load of a signal is removed, and therefore the signal becomes a
oating signal, which is also removed.
Example
In the following example, bb (on line 5) has fanout load at line 4, but this fanout is removed
because aa has RTL14 violation. The RTL14.1 rule checker reports that the fanout load of bb
is removed, and therefore bb becomes a oating signal, which is also removed.
module test(oo);
output oo;
wire aa, bb, cc;
assign aa = !bb; // RTL14 rule violation
assign bb = !cc;
// RTL14.1 rule violation
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 705 Product Version 7.2
RTL15
Message
Clock and asynchronous set/reset expression must be one bit wide
Default Severity
Error
Description
A clock variable or an asynchronous set/reset variable in the sensitivity list is more than one-
bit wide.
Example
On line 1 of the following example, myReset is declared as a two-bit wide. On line 2, an
RTL15 error is reported because myReSet is not a single-bit and it is used as an
asynchrounous set/reset variable on the sensitivity list.
reg [1:0] myReset; // myReset is two-bit wide
always @(posedge clk or posedge myReset) begin
...
end
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 706 Product Version 7.2
RTL15.1
Message
Else branch of event controlled if statement is not supported
Default Severity
Warning
Description
For modeling a ip-op with asynchronous forces, the clock edge should be the fullling
condition of the last conditional block. In addition, there should be assignment to output under
only one clock edge. Both edges of clock signal are used in a sequential process.
Example
In the following example, both HIGH and LOW edges of the signal clk are used in a sequential
process (see lines 19 and 21, respectively):
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity ClockEdge is
port (sort : out unsigned (3 downto 0);
clk : in std_logic;
rst : in std_logic;
ena1 : in unsigned (3 downto 0));
end ClockEdge;
architecture rtl_clkedge of ClockEdge is
constant ZERO : unsigned(3 downto 0) := "0000";
constant HIGH : std_logic := 1;
constant LOW : std_logic := 0;
begin
p0_OK:process (clk,rst)
begin
if (rst =HIGH) then
sort <= ZERO;
elsif ( clkevent and clk=HIGH) then
sort <= ena1;
elsif ( clkevent and clk=LOW) then
sort <= ena1 + ena1;
end if;
end process p0_OK;
end rtl_clkedge;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 707 Product Version 7.2
RTL15.2
Message
Sensitivity/clock style is unsupported
Default Severity
Warning
Description
The always block is sensitive to both the edges and levels of some signals. Synthesis tools
do not support both level and edge sensitive nodes in the sensitivity list.
Example
In the following example, line 5 has both level and edge sensitivity nodes:
module mult_clks_in_always2 (clk, q, d, rst1, rst2);
input clk, d, rst1, rst2;
output q;
reg q;
always @(clk or posedge rst1)
begin
if (rst2)
q <= d;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 708 Product Version 7.2
RTL16.1
Message
Non-local variable is read in a function body
Default Severity
Warning
Description
A non-local variable is read in a function body.
Example
On line 1 of the following example, glob_1 is declared outside of function f1(). On line 7,
an RTL16.1 warning is reported because glob_1 is read inside the function body. RTL16.1
warns potential mismatch between synthesis and simulation semantics.
reg glob_1; // glob_1 is declared outside of function f1
...
function f1 ...
reg local_1;
begin
...
local_1 = glob_1; // RTL16.1: glob_1 is read inside the function body
...
end
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 709 Product Version 7.2
RTL16.2
Message
Non-local variable is assigned in a function body
Default Severity
Warning
Description
A non-local variable is assigned in a function body.
Example
On line 1 of the following example, glob_1 is declared outside of function f1(). On line 7,
an RTL16.2 warning is reported because glob_1 is assigned inside the function body.
RTL16.2 warns about the function body contains a side effect due to this external variable
assignment.
reg glob_1; // glob_1 is declared outside of function f1
...
function f1 ...
reg local_1;
...
begin
...
glob_1 = local_1; // RTL16.2: glob_1 is assigned inside the function body
...
end
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 710 Product Version 7.2
RTL17
Message
Variable size exceeds the maximum limit
Default Severity
Error
Description
The variable size exceeds the maximum limit.
Example
In the following example, the variable tmp size exceeds the limit of 8192*8192 (see line 3)
module test (out);
output [31:0] out;
wire [8192*8192:0] tmp;
assign out = tmp[31:0];
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 711 Product Version 7.2
RTL17.1
Message
Expression size exceeds the maximum limit
Default Severity
Error
Description
The expression size exceeds the maximum limit.
Example
The following example triggers the RTL17.1 message because the expression size exceeds
limit 67108864. The objects maximum bit size of 67108864 is predened by all Conformal
tools.
module test(output r1);
wire [67108864:0] r1; // ERROR: RTL17.1 violation
assign r1 = 0;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 712 Product Version 7.2
RTL18.1
Message
Package is not an IEEE standard
Default Severity
Ignore
Description
The IEEE package is not a standard package.
Example
In the following example, std_logic_arith is not a standard IEEE package (see line 2):
library ieee;
use ieee.std_logic_arith.all;
entity test is
port (out1 : out signed (1 downto 0);
in1 : in signed (1 downto 0);
in2 : in signed (1 downto 0));
end test;
architecture rtl of test is
begin
p1:process( in1,in2)
begin
out1 <= in1 + conv_integer(in2);
end process p1;
end rtl;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 713 Product Version 7.2
RTL18.2
Message
Function definition has empty body
Default Severity
Warning
Description
The function denition has empty body.
Example
In the following example, the function byte_reversal in line 10 is an empty function:
library ieee;
use ieee.std_logic_1164.all;
entity func is
port(
data:in std_logic_vector(8 downto 0);
rev_data:out std_logic_vector(8 downto 0)
);
end func;
architecture func of func is
function byte_reversal (arg:std_logic_vector)
return std_logic_vector is
begin
end byte_reversal;
begin
process
begin
rev_data <= byte_reversal(data);
end process;
end func;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 714 Product Version 7.2
RTL18.3
Message
Function call does not refer to a function definition
Default Severity
Error
Description
The function call does not refer to a function denition.
Example
In the following example, the function func in line 6 is not dened:
module test(in,out);
input in;
output out;
reg out;
always @(in)
out = func(in);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 715 Product Version 7.2
RTL18.4
Message
Ignoring resolution function. This might cause mismatches between simulation and
synthesis
Default Severity
Warning
Description
The resolved function dened in package IEEE STD_LOGIC_1164 is the only supported
resolution function. Other resolution functions are ignored.
Example
In the following example, resolution function RESOLVE_VOLTAGE is ignored:
...
function RESOLVE_VOLTAGE ( V: UVOLTAGE_VECTOR ) return UVOLTAGE;
subtype VOLTAGE is RESOLVE_VOLTAGE UVOLTAGE;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 716 Product Version 7.2
RTL19.1
Message
Identifier is a reserved keyword and might conflict in designs with mixed languages
Default Severity
Warning
Description
The identier is a reserved keyword for Verilog or VHDL.
Example
In the following example, logic is a System Verilog keyword (see line 2):
module test (input din, output logic);
assign logic = din;
endmodule ;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 717 Product Version 7.2
RTL20.1
Message
Pre-defined attribute is not supported
Default Severity
Warning
Description
The specied pre-dened attribute in the design is not supported. Remodel the design to
avoid this error.
Example
In the following example, the last_attribute in line 21 is not supported:
library IEEE;
use IEEE.std_logic_1164.all;
entity lat is
port ( din: in bit;
clk :in bit;
din1 : in bit_vector(1 downto 0);
dout : out bit_vector(2 downto 0);
dout1 : out bit_vector(1 downto 0));
end lat;
architecture behave of lat is
signal clk1 : bit;
component lat_bit is
port ( d: in bit;
clk :in bit;
q : out bit);
end component;
begin
dout(0) <= din;
process(clk1,din)
begin
if clk1last_value = 0 and clk1 = 1 then
dout(2 downto 1) <= din1;
end if;
end process;
I1 : lat_bit port map(din, clk, dout1(1));
I0 : lat_bit port map(din, clk, dout1(0));
end behave;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 718 Product Version 7.2
RTL20.2
Message
Function is not supported
Default Severity
Warning
Description
The referenced function is not supported (1bx will be returned).
Example
In the following example, the sqrt function (line 10) is not supported:
library ieee;
use ieee.math_real.all;
ENTITY test_constant_reals IS
PORT (
sample_out : OUT integer );
END test_constant_reals;
ARCHITECTURE rtl OF test_constant_reals IS
BEGIN
sample_out <= integer(sqrt(1.375));
END rtl;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 719 Product Version 7.2
RTL20.3
Message
Could not find configuration
Default Severity
Warning
Description
The refered conguration could not be found.
Example
In the following example, if the conguration bug2_cfg is not dened before conguration
bug_cfg, this message will be issued.
...
configuration bug_cfg of bug is
...
use configuration work.bug2_cfg
...
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 720 Product Version 7.2
SPICE Netlist Format
This category of rules applies to SPICE netlists used for Conformal Custom. The following
table lists the SPICE (SPI) rule numbers and their messages.
Rule Number Message
SPI1.1 Diode instance is ignored
SPI1.2 Incorrect diode instance is ignored
SPI1.3 SPICE element/card is ignored
SPI1.4 Subckt name duplicated and previous ones are ignored
SPI3.2 Model redened. Using last denition and ignoring earlier ones
SPI4.1 .GLOBAL statement for pin is redened. Previous denition is
ignored
SPI4.2 .GLOBAL statement for pin with type C is not supported and is
ignored
SPI5.1 Implicit bulk VDD Net reset to GND due to .GLOBAL declaration
SPI5.2 Implicit bulk GND Net reset to VDD due to .GLOBAL declaration
SPI7.1 Duplicated pin in subckt. Creating new pin
SPI7.2 Duplicate pin of subckt with different pin connections in instance
SPI8.1 Undened Pin in *.PININFO is ignored
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 721 Product Version 7.2
SPI1.1
Message
Diode instance is ignored
Default Severity
Warning
Description
The checker is ignoring one or more diode instances in the SPICE netlist.
Example
The checker reports the following:
SPI1.1: Ignoring diode instance
Type: Golden design Severity: Warning Occurrence: 1
1: ant/D1
on line 3 in file 'test.sp'
That is, the checker ignores a diode instance called D1 in the SPICE netlist.
.SUBCKT ant y
D1 y vss
.ENDS
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 722 Product Version 7.2
SPI1.2
Message
Incorrect diode instance is ignored
Default Severity
Warning
Description
The checker is ignoring one or more incorrectly instantiated diode instances in the SPICE
netlist.
The checker ignores diodes in all cases. See SPI1.1 on page 721.
Example
In the following example, the checker generates the SPI1.2 message for line 3 (in bold)
because D should be followed by some alphanumeric characters. (Also, since the checker
ignores all diodes, line 2 triggers the SPI1.1 message.)
.subckt foo a b
D1 a b
D a b
.ends
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 723 Product Version 7.2
SPI1.3
Message
SPICE element/card is ignored
Default Severity
Warning
Description
The SPICE element or card is ignored.
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 724 Product Version 7.2
SPI1.4
Message
Subckt name duplicated and previous ones are ignored
Description
The checker encountered a subcircuit name that was already used in the SPICEnetlist. When
this duplication happens, the checker retains the last denition encountered and ignores
earlier ones.
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 725 Product Version 7.2
SPI3.2
Message
Model redefined. Using last definition and ignoring earlier ones
Default Severity
Warning
Description
The checker encountered a redened model in the SPICE netlist. When this redenition
occurs, the checker uses the last denition encountered and ignores earlier ones.
Example
In the following SPICE netlist example, P1 is dened as PMOS and redened as NMOS. In this
case, the checker recognizes NMOS as the denition for P1.
.model P1 PMOS
.model P1 NMOS
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 726 Product Version 7.2
SPI4.1
Message
.GLOBAL statement for pin is redefined. Previous definition is ignored
Default Severity
Warning
Description
The checker encountered a redened .GLOBAL statement in the SPICE netlist. When this
redenition occurs, the checker uses the last denition encountered and ignores earlier ones.
Example
In the following SPICE netlist example, pin pr is dened as power and redened as ground.
In this case, the checker recognizes ground as the denition for pin pr.
.global pr:P
.global pr:G
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 727 Product Version 7.2
SPI4.2
Message
.GLOBAL statement for pin with type C is not supported and is ignored
Default Severity
Warning
Description
The checker encountered a .GLOBAL statement with pin type C in the SPICE netlist. When
this occurs, the checker ignores that pin type.
Example
In the following SPICE netlist example, pin type C of the global net a will be ignored:
.global vdd:P a:C;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 728 Product Version 7.2
SPI5.1
Message
Implicit bulk VDD Net reset to GND due to .GLOBAL declaration
Default Severity
Warning
Description
The SPICE netlist includes a .global declaration that overrides an implicit VDD assignment.
By default, the checker assumes that the bulk node of PMOS is VDD. The net connected to the
bulk node is thus implicitly assigned as VDD. However, if there is a .global declaration for a
PMOS net, the global declaration takes precedence over the implicit assignment.
Example
In the following example, net a retains its denition as assigned by the .global statement
on line 1 (in bold). The checker ignores the implicit meaning of this net based on the bulk
connection (see line 5). Also refer to SPI5.2
on page 729
.
.global a:G
.global b:P
.subckt inv aa bb out
M1 aa bb VDD a PMOS
M2 aa bb VSS b NMOS
.ends
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 729 Product Version 7.2
SPI5.2
Message
Implicit bulk GND Net reset to VDD due to .GLOBAL declaration
Default Severity
Warning
Description
The SPICE netlist includes a .global declaration that overrides an implicit GND assignment.
By default, the checker assumes that the bulk node of NMOS is GND. The net connected to the
bulk node is thus implicitly assigned as GND. However, if there is a .global declaration for
an NMOS net, the global declaration takes precedence over the implicit assignment.
Example
In the following example, net b retains its denition as assigned by the .global statement
on line 2 (in bold). The checker ignores the implicit meaning of this net based on the bulk
connection (see line 6). Also refer to SPI5.1
on page 728
.
.global a:G
.global b:P
.subckt inv aa bb out
M1 aa bb VDD a PMOS
M2 aa bb VSS b NMOS
.ends
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 730 Product Version 7.2
SPI7.1
Message
Duplicated pin in subckt. Creating new pin
Default Severity
Warning
Description
The checker encountered a duplicate pin name in the subckt denition while reading a SPICE
netlist. When this duplication occurs, the checker creates a new name for the second pin with
the following format: <duplicate_pin_name>_vplx_redundant_<number>.
Example
In the following SPICE netlist example, pin a is dened on line 2 (in bold) and repeated in the
subckt denition on line 3 (in bold). The checker creates a new pin for the second a it
encountered. The new pin is named a_vplx_redundant_0.
.subckt inv a b a out
M1 a b VDD VDD PMOS
M2 a b VSS VSS NMOS
.ends
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 731 Product Version 7.2
SPI7.2
Message
Duplicate pin of subckt with different pin connections in instance
Default Severity
Warning
Description
The checker is detecting an instance with duplicated pins in the SPICE netlist:
Example
In the following SPICE netlist example, the second pin of instance x1 of subckt inv is
redundant and will be ignored:
.global vdd gnd;
.subckt inv in in;
m1 vdd in out vdd p;
m2 out in gnd gnd n;
.ends inv;
.subckt top o i;
x1 o i inv;
.ends top;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 732 Product Version 7.2
SPI8.1
Message
Undefined Pin in *.PININFO is ignored
Default Severity
Warning
Description
A SPICE *.PININFO statement includes an undened pin. *.PININFO can be used to
dene pins as input (I), output (O) or bidirectional (B). If I, O or B is missing for the pin dened
in a PININFO statement, the checker ignores the undened pin and issues a warning.
Example
In the following PININFO example, pin a is dened as I. However, on line 2 (in bold) the
denition for pin b is missing. When the checker encounters line 2, it generates the SPI8.1
message.
*.pininfo a:I
*.pininfo b:
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 733 Product Version 7.2
System Verilog
This category of rules applies to SystemVerilog designs. The following table lists the System
Verilog (SV) rule numbers and messages.
Rule Number Message
SV1.1 covergroup usage is unsupported and ignored
SV1.2 assert property is unsupported and ignored
SV1.3 assume property is unsupported and ignored
SV1.4 cover property is unsupported and ignored
SV1.5 void type is not allowed in object declaration
SV1.6 Missing argument list for function call
SV1.7 Unbounded range parameter $ is not supported
SV1.8 Procedural assertion is unsupported and ignored
SV1.9 distribution weight is unsupported and ignored
SV1.10 Sequence operation is unsupported and ignored
SV1.11 Sequence concatenation is unsupported and ignored
SV1.12 number_of_ticks is not a constant value
SV1.13 number_of_ticks must be 1 or greater
SV1.14 Sequence method is unsupported and ignored
SV1.15 Recursive properties are unsupported and ignored
SV2.1 Packed type cannot contain real/shortreal/unpacked type
SV2.2 All elements must have same size in a packed union type
SV3.1 Modules can neither be declared nor instantiated in interfaces
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 734 Product Version 7.2
SV1.1
Message
covergroup usage is unsupported and ignored
Default Severity
Warning
Description
The covergroup usage is not supported and is ignored.
Example
In the following example, g2 (line 2) is unsupported:
module test( input logic [7:0] in1, reg clk, output logic [7:0] out1);
covergroup g2 @(posedge clk);
endgroup
always@( posedge clk)
begin
out1 = in1;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 735 Product Version 7.2
SV1.2
Message
assert property is unsupported and ignored
Default Severity
Warning
Description
The assert property is not supported and is ignored.
Example
In the following example, assert property p1 (line 3) is ignored
module prop1 (input clk,output logic [7:0] count1);
logic [7:0] counter1 = 0;
assert property (p1) count1 = counter1;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 736 Product Version 7.2
SV1.3
Message
assume property is unsupported and ignored
Default Severity
Warning
Description
The assume property is not supported and is ignored.
Example
In the following example, assume property p1 is ignored:
module prop1 (input clk,output logic [7:0] count1);
logic [7:0] counter1 = 0;
assume property (p1) count1 = counter1;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 737 Product Version 7.2
SV1.4
Message
cover property is unsupported and ignored
Default Severity
Warning
Description
The cover property is not supported and is ignored.
Example
In the following example, cover property p1 is ignored:
module prop1 (input clk,output logic [7:0] count1);
logic [7:0] counter1 = 0;
cover property (p1) count1 = counter1; <b>
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 738 Product Version 7.2
SV1.5
Message
void type is not allowed in object declaration
Default Severity
Error
Description
The void type is not allowed in the object declaration.
Example
In the following example, it is illegal to declare a void type variable for var1:
void var1;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 739 Product Version 7.2
SV1.6
Message
Missing argument list for function call
Default Severity
Error
Description
Indicates that the function call does not have an argument list.
Example
In the following example, in line 11, the argument list is missing:
module test(in, out);
input in;
output out;
function func;
input din;
begin
func = din;
end
endfunction
always @(in)
out = func;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 740 Product Version 7.2
SV1.7
Message
Unbounded range parameter $ is not supported
Default Severity
Error
Description
Indicates that the unbounded range parameter
$
is not supported. This is for SystemVerilog
only.
Example
In the following example, in line 6, $ is used as parameter.
module test #(parameter p1 = 1)(input int i, output int out);
always @(i)
out = i+p1;
endmodule
module top(input int in, output int dout);
test #($) sub(in,dout);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 741 Product Version 7.2
SV1.8
Message
Procedural assertion is unsupported and ignored
Default Severity
Warning
Description
Indicates that the procedural assertion is unsupported and is ignored. This is for System
Verilog only.
Example
In the following example, the procedural assertion in line 3 is unsupported and ignored.
module test (input logic clk,input logic in);
always @(posedge clk)
if (in == 1) assert (req1 || req2);
else begin
$error("assert failed" );
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 742 Product Version 7.2
SV1.9
Message
distribution weight is unsupported and ignored
Default Severity
Warning
Description
The usage of distribution weight is described in SystemVerilog LRM 13.4.4 Distribution.
The usage of distribution weight is unsupported and is ignored by all Conformal software
tools.
Example
In the following example, x is equal to 100, 200, or 300 with weighted ratio of 1-2-5. The
usage of the distribution weight will trigger this warning.
x dist {100 := 1, 200 := 2, 300 := 5}
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 743 Product Version 7.2
SV1.10
Message
Sequence operation is unsupported and ignored
Default Severity
Warning
Description
The usage of sequence is described in SystemVerilog LRM 17.5 Sequences.
The usage of sequence is unsupported and is ignored by all Conformal software tools.
Example
In the following example, the usage of sequence operation (first_match in line 5) will
trigger this warning.
sequence t1;
te1 ## [2:5] te2;
endsequence
sequence ts1;
first_match(te1 ## [2:5] te2);
endsequence
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 744 Product Version 7.2
SV1.11
Message
Sequence concatenation is unsupported and ignored
Default Severity
Warning
Description
The usage of sequence is described in SystemVerilog LRM 17.5 Sequences.
The usage of sequence is unsupported and is ignored by all Conformal software tools.
Example
In the following example, using cycle delay ##1 will trigger this warning.
@(posedge clk0) sig0 ##1 @(posedge clk1) sig1
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 745 Product Version 7.2
SV1.12
Message
number_of_ticks is not a constant value
Default Severity
Error
Description
The usage of $past() is described in SystemVerilog LRM 17.7.3 The sampled value is:
$past( expression1 [, number_of_ticks] [, expression2] [, clocking_event])
where the number_of_ticks must be 1 or greater. If number_of_ticks is not specied,
it defaults to 1. The SV1.12 error is reported if number_of_ticks is not evaluated to be a
constant value.
Example
The following example will trigger this error if input_port_N is not a constant expression:
$past( bet1, input_port_N)
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 746 Product Version 7.2
SV1.13
Message
number_of_ticks must be 1 or greater
Default Severity
Error
Description
The usage of $past() is described in SystemVerilog LRM 17.7.3 The sampled value is:
$past( expression1 [, number_of_ticks] [, expression2] [, clocking_event])
where number_of_ticks must be 1 or greater. If number_of_ticks is not specied, then it
defaults to 1. The SV1.13 error is reported if number_of_ticks is not evaluated to be 1 or
greater.
Example
The following example will trigger this error because -1 is not 1 or greater than 1:
$past( bet1, -1)
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 747 Product Version 7.2
SV1.14
Message
Sequence method is unsupported and ignored
Default Severity
Warning
Description
The sequence usage is described in SystemVerilog LRM 17.5 Sequences.
The sequence methods are described in SystemVerilog LRM 17.12.6.
The SV1.14 warning is reported if sequence methods are used.
Example
The following example will trigger this warning because an ended method is used (line 5):
sequence e1;
@(posedge sysclk) $rose(ready) ##1 proc1 ##1 proc2 ;
endsequence
sequence rule;
@(posedge sysclk) reset ##1 inst ##1 e1.ended ##1 branch_back;
endsequence
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 748 Product Version 7.2
SV1.15
Message
Recursive properties are unsupported and ignored
Default Severity
Warning
Description
The sequence usage is described in SystemVerilog LRM 17.11.4 Recursive property.
The SV1.15 warning is reported if recursive properties are used.
Example
I The following example shows a simple recursive property case, where a property
instantiation prop_always is inside the prop_always property declaration. This
causes a recursive property problem.
property prop_always(p);
p and (1b1 |=> prop_always(p));
endproperty
I The following example shows a mutually recursive case, where in property declaration
check_phase1, there is an instantiation check_phase2, and in property declaration
check_phase2, there is an instantiation check_phase1. This causes a mutually
recursive property problem.
property check_phase1;
s1 |-> (phase1_prop and (1b1 |=> check_phase2));
endproperty
property check_phase2;
s2 |-> (phase2_prop and (1b1 |=> check_phase1));
endproperty
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 749 Product Version 7.2
SV2.1
Message
Packed type cannot contain real/shortreal/unpacked type
Default Severity
Error
Description
Noninteger data types, such as real and shortreal, are not allowed in packed structures or
unions. Neither are unpacked arrays.
Example
In the following packed struct type example, the errors are shown by comments:
typedef struct packed {
bit [3:0] GFC;
+real VPI; // real type is not allowed in a packed structure
bit PT [3:0] ; // unpacked type is not allowed a packed structure
bit [7:0] HEC;
} myPackedType;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 750 Product Version 7.2
SV2.2
Message
All elements must have same size in a packed union type
Default Severity
Error
Description
A packed union shall contain members that must be packed structures, or packed arrays or
integer data types all of the same size (in contrast to an unpacked union, where the members
can be different sizes). This ensures that a union member that was written as another
member can be read back.
Example
In the following packed union type example, the errors are shown by comments:
typedef union packed {
bit [7:0] v1;
bit [3:0][1:0] v2;
bit [8:0] v3; // ERROR: v3 has 9 bits, but both v1 and v2 have 8 bits
} badPkUnionType;
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 751 Product Version 7.2
SV3.1
Message
Modules can neither be declared nor instantiated in interfaces
Default Severity
Error
Description
Interfaces can be declared and instantiated in modules (either at or hierarchical), but
modules can neither be declared nor instantiated in interfaces.
Example
In the following example, the module instantiation is not allowed in the interface declaration:
module mod1 (input aa, bb; output zz);
assign zz = aa && bb;
endmodule
interface simple_bus; // Define the interface
logic req, gnt;
logic [7:0] addr, data;
logic [1:0] mode;
logic start, rdy;
mod1 u0(req, gnt, rdy); // ERROR: SV3.1 violation.
endinterface: simple_bus
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 752 Product Version 7.2
User-Dened Primitive
This category of rules applies to designs that include user-dened primitives. The following
table lists the User-Dened Primitive (UDP) rule numbers and their messages.
Rule Number Message
UDP1.1 Swapped set and reset of DFF/DLAT
UDP1.2 Removed set-domination logic of DFF/DLAT
UDP1.3 Unknown set and reset domination. Implemented as reset
domination
UDP2.1 Inverter on data input of DFF/DLAT is moved to output
UDP2.2 Inverter on data input of DFF/DLAT is not moved to output
UDP3 Merged redundant user-dened DFF/DLAT primitive(s)
UDP3.1 Conicting entries are detected in the outputs
UDP3.2 Primitive has unspecied term(s)
UDP4.1 Primitive contains illegal symbol z
UDP4.2 Primitive contains an x output without an x input
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 753 Product Version 7.2
UDP1.1
Message
Swapped set and reset of DFF/DLAT
Default Severity
Note
Description
The checker swapped a set and reset for a user-dened DFF or DLAT primitive. Automatic
swapping of DFF and DLAT set and reset occurs only when there is a need to accommodate
a conversion (for example, merging DFFs).
Example
Two warnings occurred for the following example:
1.
On lines 5 through 8 (in bold), instance U1 is merged into instance U2 because they have
the same connection (except q and qb for outputs).
2.
The checker swaps set and reset of instance U2 to accommodate merging instance U1.
module RSLTA (Q,QB,S,R,notifier);
input S,R;
output Q,QB;
input notifier;
rsltaq U1(.q(Q),.s(S),.r(R),
.notify(notifier));
rsltaqb U2(.qb(QB),.s(S),.r(R),
.notify(notifier));
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 754 Product Version 7.2
UDP1.2
Message
Removed set-domination logic of DFF/DLAT
Default Severity
Note
Description
One or more user-dened DFF or DLAT primitives have multiple sets of set-dominant logic.
The checker removed the redundant set of set-dominant logic.
Example
On line 11 of the following example, the design includes an ORlogic to ensure a set-dominant
DFF, but the DESFQ primitive was already dened in line 1 as a set-dominant DFF. Thus, the
design includes two set-dominant logics (shown in lines 1 and 11).
primitive DESFQ = a set-dominant DFF
module test ( N01, H01, H02, H03, H04);
input H01;
input H02;
input H03;
input H04;
output N01;
not ( _G005, H03 );
not ( _G002, H04 );
or ( N01, _G008, H04 );
DESFQ ( .Q(_G008), .D(H01), .CP(H02),
.RB(_G005), .SB(_G002), .notifier(notifier) );
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 755 Product Version 7.2
UDP1.3
Message
Unknown set and reset domination. Implemented as reset domination
Default Severity
Warning
Description
A UDP is interpreted as a sequential DLAT or DFF logic, and:
I
DLAT or DFF has both asynchronous set and reset logic
I
set and reset logic might result in 1 at the same time
I
no domination on set or reset
Example
primitive srq0 ( Q, S, RX );
output Q; reg Q;
input S;
input RX;
table
S RX : Q- : Q+
1 1 : ? : 1 ;
0 0 : ? : 0 ;
? 1 : 1 : 1 ;
0 ? : 0 : 0 ;
0 1 : ? : - ;
endtable
endprimitive
The Conformal software will generate a DLAT circuit with asynchronous set and reset:
I set = S
I reset = RX
I d = 0
I clock = 0
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 756 Product Version 7.2
The UDP does not specify the behavior when S = 1 and RX = 0. The Conformal software
implements the circuit as a reset dominated logic, which implies that when S = 1 and RX = 0,
Q = 0. This is usually caused by UDP table incompletion.
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 757 Product Version 7.2
UDP2.1
Message
Inverter on data input of DFF/DLAT is moved to output
Default Severity
Warning
Description
One or more user-dened DFF or DLAT primitives (UDP) include an inverter on the data port.
By default, the checker relocates inverters from data port to output port.
Example
In the following example, primitive dff_simple has an inverter at the data port of the DFF,
but the checker moves it to the output port of the DFF.
primitive dff_simple(Q, S, R, CK, D);
output Q;
input S, R, CK, D;
reg Q;
table
1 0 ? ? : ? : 1;
? 1 ? ? : ? : 0;
0 0 r 0 : ? : 1;
0 0 r 1 : ? : 0;
0 0 (?0) ? : ? : -;
endtable
endprimitive
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 758 Product Version 7.2
UDP2.2
Message
Inverter on data input of DFF/DLAT is not moved to output
Default Severity
Warning
Description
One or more user-dened DFF or DLAT primitives (UDP) include an inverter on the data port.
By default, the checker relocates inverters fromdata port to output port. However, in this case,
you specied that the checker will not move the DFF or DLAT when you used the following
command:
add udp model dff_simple -nomove_inverter
Example
In this example, primitive dff_simple has an inverter at the data port of the DFF, but the
checker did not move it since the user applied the -nomove_inverter option.
primitive dff_simple(Q, S, R, CK, D);
output Q;
input S, R, CK, D;
reg Q;
table
1 0 ? ? : ? : 1;
? 1 ? ? : ? : 0;
0 0 r 0 : ? : 1;
0 0 r 1 : ? : 0;
0 0 (?0) ? : ? : -;
endtable
endprimitive
Input:
SETUP>add udp model dff_simple -nomove_inverter
SETUP>read design test.v -verilog
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 759 Product Version 7.2
UDP3
Message
Merged redundant user-defined DFF/DLAT primitive(s)
Default Severity
Note
Description
The design includes one or more redundant user-dened DFF or DLAT primitives. The
checker merges all redundant user-dened DFF and DLAT primitives.
Example
In the following example, DFF UDP_A is redundant and merged into DFF UDP_B. See lines 7
through 10 (in bold).
module test ( N01, N02, H01, H02, notifier );
input H01;
input H02;
input notifier;
output N01;
output N02;
DESFQ UDP_A(.Q(N01), .D(H01), .CP(H02), .RB(1'b1),
.SB(1'b1), .notifier(notifier));
DESFQ UDP_B(.Q(N02), .D(H01), .CP(H02),
.RB(1'b1), .SB(1'b1), .notifier(notifier));
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 760 Product Version 7.2
UDP3.1
Message
Conflicting entries are detected in the outputs
Default Severity
Warning
Description
There are conict entries in the user-dened primitive outputs.
Example
In the following example, the two lines have the same input values but different output values:
// D CK RB SB FLAG : Qt : Qt+1
? ? 0 0 ? : ? : 1;//
? ? 0 0 ? : ? : 0;//
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 761 Product Version 7.2
UDP3.2
Message
Primitive has unspecified term(s)
Default Severity
Warning
Description
There are unspecied term(s) in the UDP table.
Example
In the following example, term 010 and 011 is unspecied:
primitive udp_inv_clr0 (qn, clr, pre, inp);
output qn;
input clr, pre, inp;
table
// clr pre inp : qn
0 0 ? : 0;
1 ? 0 : 1;
1 ? 1 : 0;
// ? 1 0 : 1;
// ? 1 1 : 0;
x x 1 : 0;
x x 0 : 1;
endtable
endprimitive
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 762 Product Version 7.2
UDP4.1
Message
Primitive contains illegal symbol z
Default Severity
Warning
Description
The UDP contains an entry that has illegal symbol z.
Example
In the following example, because the entry in line 11 has symbol z, mydff will be
blackboxed:
primitive mydff (qq, clk, dd, ss, rr);
output qq; reg qq;
input clk, dd, ss, rr;
table
// clk dd ss rr : qq : qq+
r 0 0 0 : ? : 0 ;
r 1 0 0 : ? : 1 ;
f ? 0 0 : ? : - ;
? ? 1 0 : ? : 1 ;
? ? 0 1 : ? : 0 ;
? ? 1 1 : ? : z ;
endtable
endprimitive
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 763 Product Version 7.2
UDP4.2
Message
Primitive contains an x output without an x input
Default Severity
Warning
Description
The UDP contains an entry that has an x value output without an x value input.
Example
In the following example, the last line of the table has x as an output, and its input does not
contain x:
primitive mydff (qq, clk, dd, ss, rr);
output qq; reg qq;
input clk, dd, ss, rr;
table
// clk dd ss rr : qq : qq+
r 0 0 0 : ? : 0 ;
r 1 0 0 : ? : 1 ;
f ? 0 0 : ? : - ;
? ? 1 0 : ? : 1 ;
? ? 0 1 : ? : 0 ;
? ? 1 1 : ? : x ;
endtable
endprimitive
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 764 Product Version 7.2
Verilog
This category of rules applies to designs that are written in Verilog language. RTL rules apply
to Verilog designs and VHDL designs (see Register Transfer Level
on page 603
).
The following table lists the Verilog (VLG) rule numbers and their messages.
Rule Number Message
VLG1.1 Case inequality operators are treated as logical inequality
operators
VLG1.2 Case equality operators are treated as logical equality operators
VLG1.3 Wild inequality is treated as inequality
VLG1.4 Wild equality is treated as equality
VLG2.1 Non-constant case-item is used in casex/casez statement
VLG2.2 Non-binary case-item is used in casex/casez statement
VLG2.3 default keyword is not the last item in case statement(s)
VLG3.1 Unsized constant(s) with leading X/Z value is extended beyond
32 bits
VLG3.2 Verilog event expression in always block(s) are complex
VLG3.3 Replication is not a constant or it contains X or Z values
VLG3.4 Zero replication is treated as NULL in concatenation
VLG3.5 Null expression is not allowed (caused by zero replication)
VLG3.6 Negative replication is not allowed
VLG3.7 Unsized constant value is set to 32-bit in concatenation
VLG4.1 Wire type wand is used
VLG4.2 Wire type wor is used
VLG4.3 Implicit declared net is generated
VLG4.4 Cutpoint not found
VLG5.1 Primitive output port has multiple bits. Ignored all but LSB bit
VLG5.2 Primitive input port has multiple bits. Ignored all but LSB bit
VLG5.3 Wire and port size declaration(s) do not match
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 765 Product Version 7.2
VLG5.4 Port size of array instance does not match
VLG5.5 Named port association ignored for primitive gate
VLG5.6 Named port association is ignored for primitive gate
VLG6.1 Globally referenced variable is unresolved
VLG6.2 Globally referenced variable resolved
VLG6.3 Unsupported system function call (converted to 1'b1)
VLG6.3a Unsupported system task call
VLG6.4 Supported system datapath function call
VLG6.5 Time literal is unsupported
VLG6.6 Event object is unsupported
VLG6.7 Hierarchical function call is not supported (blackboxed)
VLG6.8 Specify block is ignored
VLG6.10 Intra-assignment event specication is not supported
VLG6.12 fork-join constructs are not supported
VLG6.13 force-release constructs are not supported
VLG6.14 Global reference on the left side of the assignment is not
supported
VLG6.15 disable construct is not supported
VLG6.16 wait construct is not supported
VLG7 Nets renamed after removing backslash
VLG8 Buffer inserted
VLG9 Names conict with previous declarations
VLG9.1 Text macro is redened
VLG9.2 dene macro is used
VLG9.4 Instance name conicts with previous declarations
VLG10 Non-blocking assignment is in disabled block
VLG10.1 Non-blocking assignment encountered in function
Rule Number Message
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 766 Product Version 7.2
VLG10.2 deassign statements cannot be synthesized and are not
supported
VLG10.3 Sequential assign statement is not supported
VLG11.1 Combinational logic is inferred in an always_latch block
VLG11.2 Latches are inferred in an always_comb block
VLG12.1 Null statement ; is not allowed inside a begin-end block and is
ignored
VLG13.1 Unpacked dimension is not allowed
VLG13.2 Unsized dimension is not allowed
VLG13.3 Associative dimension is not allowed
VLG14.1 Missing module instance name
VLG15.1 Block name is previously declared
VLG16.1 Syntax error in Verilog instantiation
Rule Number Message
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 767 Product Version 7.2
VLG1.1
Message
Case inequality operators are treated as logical inequality operators
Default Severity
Warning
Description
The design includes one or more case inequality operators that the checker treats as logical
inequality operators.
Inequality operators syntax:
!== is a case inequality operator.
!= is a logical inequality operator.
Example
In the following example, the checker treats the case inequality operator as a logical inequality
operator. See line 7 (in bold).
module VLGT (clk,cond,in0,in1,out0);
input clk,in0,in1;
input [1:0] cond;
output out0;
reg out0;
always @(posedge clk) begin
if (cond[0] !== cond[1])
out0 <= in0;
else
out0 <= in1;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 768 Product Version 7.2
VLG1.2
Message
Case equality operators are treated as logical equality operators
Default Severity
Warning
Description
The design includes one or more case equality operators that the checker treats as logical
equality operators.
Equality operators syntax:
=== is a case equality operator.
== is a logical equality operator.
Example
In the following example, the checker treats the case equality operator as a logical equality
operator. See line 7 (in bold).
module VLGT (clk,cond,in0,in1,out0);
input clk,in0,in1;
input [1:0] cond;
output out0;
reg out0;
always @(posedge clk) begin
if (cond[0] === cond[1])
out0 <= in0;
else
out0 <= in1;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 769 Product Version 7.2
VLG1.3
Message
Wild inequality is treated as inequality
Default Severity
Warning
Description
The checker does not support the !?= SystemVerilog operator with the exact semantics
supported in simulation. The checker treats !?= as !=.
Example
In the following example, the checker encounters !?= on line 4 (in bold) and treats it as !=.
Similarly, on line 5, the checker treats !== (case inequality) as !=. (Refer to VLG1.1
on
page 767
.)
module test(aa, bb, o1, o2);
input aa, bb;
output o1, o2;
assign o1 = aa !?= bb;
assign o2 = aa !== bb;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 770 Product Version 7.2
VLG1.4
Message
Wild equality is treated as equality
Default Severity
Warning
Description
The checker does not support the =?= SystemVerilog operator with the exact semantics
supported in simulation. The checker treats =?= as ==.
Example
In the following example, the checker encounters =?= on line 4 (in bold) and treats it as ==.
Similarly, on line 5, the checker treats === (case equality) as ==. (Refer to VLG1.2
on
page 768
.)
module test(aa, bb, o1, o2);
input aa, bb;
output o1, o2;
assign o1 = aa =?= bb;
assign o2 = aa === bb;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 771 Product Version 7.2
VLG2.1
Message
Non-constant case-item is used in casex/casez statement
Default Severity
Note
Description
The design includes one or more case_items that use a non-constant value in a casex or
casez statement.
Sample casex statement syntax:
casex (case_expression)
case_item1 : case_item_statement1;
case_item2 : case_item_statement2;
default : case_item_statement3;
endcase
Example
In the following example, the design uses primary input a for the second case_item (see line
9).
module test ( a, b, c, sel, out0);
input a, b, c;
input sel;
output out0;
reg out0;
always @(sel or a or b or c) begin
casex(sel)
1'b1 : out0 = a;
a : out0 = b;
default: out0 = c;
endcase
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 772 Product Version 7.2
VLG2.2
Message
Non-binary case-item is used in casex/casez statement
Default Severity
Note
Description
The design includes one or more case_items that use a non-binary value in a casex or casez
statement.
Example casex statement syntax:
case (case_expression)
case_item1 : case_item_statement1;
case_item2 : case_item_statement2;
default : case_item_statement3;
endcase
Example
In the following example, the design uses an X value for the second case_item. See line 9 (in
bold).
module test ( a, b, c, sel, out0);
input a, b, c;
input sel;
output out0;
reg out0;
always @(sel or a or b or c) begin
casex(sel)
1'b1 : out0 = a;
1'bx : out0 = b;
default: out0 = c;
endcase
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 773 Product Version 7.2
VLG2.3
Message
default keyword is not the last item in case statement(s)
Default Severity
Warning
Description
The default keyword is not the last case_item in one or more case statements.
Sample case statement syntax:
case (case_expression)
case_item1 : case_item_statement1;
case_item2 : case_item_statement2;
default : case_item_statement3;
endcase
Example
In the following example, the keyword default is not the last case_item. See line 9 (in bold).
module test ( a, b, c, sel, out0);
input a, b, c;
input sel;
output out0;
reg out0;
always @(sel or a or b or c) begin
casex(sel)
1'b1 : out0 = a;
default: out0 = c;
1'b0 : out0 = b;
endcase
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 774 Product Version 7.2
VLG3.1
Message
Unsized constant(s) with leading X/Z value is extended beyond 32 bits
Default Severity
Warning
Description
One or more unsized constants with a leading X/Z value are extend beyond 32 bits.
Example
In the following example, the design assigns an unsized constant with leading X value 'bx to
a 34-bit output out0 (see line 5).
module test(out0,y,in);
output [33:0] out0;
output y;
input in;
assign out0 = 'bx;
assign y = in;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 775 Product Version 7.2
VLG3.2
Message
Verilog event expression in always block(s) are complex
Default Severity
Warning
Description
The Verilog event expressions used in one or more always blocks are complex.
Example
In the following example, event expression a|b is considered complex (see line 5).
module test (a, b, q);
input [3:0] a, b;
output [3:0] q;
reg [3:0] q;
always @ (a | b ) begin
q = a & b;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 776 Product Version 7.2
VLG3.3
Message
Replication is not a constant or it contains X or Z values
Default Severity
Warning
Description
A replication multiplier is not a constant or it contains X or Z values.
Note: This check has a warning default severity level, but the module is blackboxed.
Example
In the following example, replication 2bx is illegal value (see line 6).
module test (a, q);
input [3:0] a;
output [4:0] q;
reg [4:0] q;
always @ (a ) begin
q = {{2b1x{1b1}}, 1b0};
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 777 Product Version 7.2
VLG3.4
Message
Zero replication is treated as NULL in concatenation
Default Severity
Warning
Description
A replication multiplier is a constant 0 but the entire concatenation remains valid. The
replicated concatenation portion is treated as NULL as if the portion is removed from the
entire concatenation.
Example
In the following example, replication 2b0 is illegal value (see line 6).
module test (a, q);
input [3:0] a;
output [4:0] q;
reg [4:0] q;
always @ (a ) begin
q = {{2b0{2b1}}, 1b0};
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 778 Product Version 7.2
VLG3.5
Message
Null expression is not allowed (caused by zero replication)
Default Severity
Warning
Description
A replication multiplier is a constant 0 and the entire concatenation becomes NULL. The
replicated concatenation portion is treated as NULL as if the portion is removed from the
entire concatenation.
Note: This check has a warning default severity level, but the module is blackboxed.
Example
In the following example, on line 6 the replication multiplier is a constant 0 and the entire
concatenation becomes NULL, which is not allowed.
module test (a, q);
input [3:0] a;
output [4:0] q;
reg [4:0] q;
always @ (a ) begin
q = {2b0{2b1}};
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 779 Product Version 7.2
VLG3.6
Message
Negative replication is not allowed
Default Severity
Warning
Description
A replication multiplier is a negative integer constant.
Note: This check has a warning default severity level, but the module is blackboxed.
Example
In the following example, replication -1 is not allowed (see line 6).
module test (a, q);
input [3:0] a;
output [4:0] q;
reg [4:0] q;
always @ (a ) begin
q = {{-1{2b1}}, 4b1};
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 780 Product Version 7.2
VLG3.7
Message
Unsized constant value is set to 32-bit in concatenation
Default Severity
Warning
Description
The unsized constant value is set to 32-bit in concatenation.
Example
In the following example, 1 is an unsized constant value, will be set to 32-bit in concatenation
(see line 6).
module test (a, q);
input [3:0] a;
output [4:0] q;
reg [4:0] q;
always @ (a ) begin
q = {1, 4b1};
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 781 Product Version 7.2
VLG4.1
Message
Wire type wand is used
Default Severity
Warning
Description
The design includes a user-specied wire-AND resolution for one or more multi-driven nets.
Example
In the following example, the design declares wire wand, which is used for multi-driven output
q. See line 4 (in bold).
module test (a,b,q);
input a, b;
output q;
wand q;
assign q = a
assign q = b;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 782 Product Version 7.2
VLG4.2
Message
Wire type wor is used
Default Severity
Warning
Description
The design includes a user-specied wire-OR resolution for one or more multi-driven nets.
Example
In the following example, the design declares wire wor, which is used for multi-driven out0.
See line 5 (in bold).
module test ( a, b, c, sel, out0);
input a, b, c;
input sel;
output out0;
wor out0;
assign out0 = a;
assign out0 = b;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 783 Product Version 7.2
VLG4.3
Message
Implicit declared net is generated
Default Severity
Warning
Description
An implicit declared net is generated.
Example
In the following example, in_top is an implicit declared net (see line 13):
`default_nettype none
module test(out,in);
input in;
output out;
reg out;
always @(in)
begin
if (in ) out = in; else out = ~in;
end
endmodule
module top (out_top);
output out_top;
test s1(out_top,in_top);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 784 Product Version 7.2
VLG4.4
Message
Cutpoint not found
Default Severity
Warning
Description
Cannot nd the specied cutpoint.
Example
In the following example, the pragma cutpoint ram2 cannot be found in the design (see line 7):
module test(clk, addr, din, dout);
input clk;
input [1:0] addr;
input [0:0] din;
output [0:0] dout;
reg [0:0] ram [3:0];
// pragma cutpoint "ram2"
always @(clk or addr or din) begin
if (clk && ram[0] ) ram[addr[1:0]] = din;
end
assign dout = ram[addr[1:0]];
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 785 Product Version 7.2
VLG5.1
Message
Primitive output port has multiple bits. Ignored all but LSB bit
Default Severity
Warning
Description
The design includes one or more primitive output ports with multiple bits. The checker ignores
all but the least signicant bit (LSB) of the primary vector output.
Example
In the following example, output o has three bits. The checker only keeps the LSB. See line
4 (in bold).
module test(o,a,b);
output [2:0] o;
input a,b;
and(o,a,b);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 786 Product Version 7.2
VLG5.2
Message
Primitive input port has multiple bits. Ignored all but LSB bit
Default Severity
Warning
Description
One or more primitive input ports have multiple bits. The checker changes all primitive vector
input ports to scalar input ports by applying OR logic reduction.
Example
In the following example, the checker reduces the two-bit input a to a single-bit input a by
OR-ing a[0] and a[1] together. See line 5 (in bold).
module test ( a, out0);
input[1:0] a;
output out0;
wire out0;
not (out0,a);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 787 Product Version 7.2
VLG5.3
Message
Wire and port size declaration(s) do not match
Default Severity
Warning
Description
In one or more cases, the designs wire and port size declarations do not match.
Example
In the following example, the declared size of input ports a and b is [3:0], but the declared
size of wires a and b is [4:0]. See lines 2 and 4 (in bold).
module test (a, b, q);
input [3:0] a, b;
output [3:0] q;
wire [4:0] a, b;
assign q = a & b;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 788 Product Version 7.2
VLG5.4
Message
Port size of array instance does not match
Default Severity
Warning
Description
In one or more cases, port sizes of an array instance do not match.
Example
In the following example, output o has a port size of [2:0], but inputs a and b have a port
size of [1:0] for instance array u1[1:0]. See lines 2 and 3.
module test(o,a,b);
output [2:0] o;
input [1:0] a,b;
and u1[1:0] (o,a,b);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 789 Product Version 7.2
VLG5.5
Message
Named port association ignored for primitive gate
Default Severity
Warning
Description
The checker triggers this rule check when it encounters an internal primitive. This rule check
helps identify module instances that you should treat as blackboxes.
Example
In the following example, you might want to treat AND as a blackbox. See line 2.
module test4(input aa, bb, output oo);
AND u0(oo, aa, bb);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 790 Product Version 7.2
VLG5.6
Message
Named port association is ignored for primitive gate
Default Severity
Warning
Description
The checker ignores the named port association for the primitive gate.
Example
In the following example, line 2 uses the named port association:
module test(input aa, bb, output oo);
AND u0(.o(oo), .a(aa), .b(bb));
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 791 Product Version 7.2
VLG6.1
Message
Globally referenced variable is unresolved
Default Severity
Warning
Description
The checker cannot nd the globally referenced variable. Thus, the variable remains
unresolved.
Example
In the following example, on line 16 (in bold), the checker cannot nd variable x in module
sub. Thus, variable x remains as an undriven net.
module sub (a, b, c);
input [7:0] a, b;
output [7:0] c;
wire [7:0] wiretmp ;
assign wiretmp = a & b;
assign c = wiretmp ;
endmodule
module main (i1, i2, o1, o2);
input [7:0] i1, i2;
output [7:0] o1;
output o2;
sub inst1 (i1, i2, o1);
assign o2= inst1.x;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 792 Product Version 7.2
VLG6.2
Message
Globally referenced variable resolved
Default Severity
Note
Description
The checker found the globally referenced variable.
Example
In the following example, on line 16 (in bold), the checker nds variable tmp in module sub.
module sub (a, b, c);
input [0:0] a, b;
output [0:0] c;
wire [0:0] tmp ;
assign tmp = a & b;
assign c = tmp ;
endmodule
module main (i1, i2, o0, o1, o2, o3);
input [0:0] i1, i2;
output o0;
output [0:0] o1, o2, o3;
sub inst1 (.a(i1), .b(i2), .c(o1));
assign o2 = inst1.tmp ;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 793 Product Version 7.2
VLG6.3
Message
Unsupported system function call (converted to 1'b1)
Default Severity
Warning
Description
The checker does not support the $system/$user_pli function calls; instead, the checker
approximates the $system/$user_pli function call to 1'b1.
Example
In the following example, the checker approximates $random and $time to 1b1. See lines
4 and 5.
module test(aa, bb, o1, o2);
input aa, bb;
output o1, o2;
assign o1 = $random;
assign o2 = $time;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 794 Product Version 7.2
VLG6.3a
Message
Unsupported system task call
Default Severity
Error
Description
$systemtask(...) is called as a concurrent statement in Verilog.
Note: This check has default error severity level, but you can set it to lower severity level to
skip the error checking.
Example
In the following example, concurrent systemtask $mytask is not supported
module m1(aa, bb, oo);
input aa, bb;
output oo;
$mytask(aa, bb, oo);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 795 Product Version 7.2
VLG6.4
Message
Supported system datapath function call
Default Severity
Note
Description
The checker triggers this rule check when it encounters any supported datapath functions.
Conformal supports the following datapath functions.
$abs()
$blend()
$carrysave()
$compge()
$intround()
$inttrunc()
$lead0()
$lead1()
$log2()
$max()
$min()
$rotatel()
$rotater()
$round()
$sat()
$sgnmult()
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 796 Product Version 7.2
VLG6.5
Message
Time literal is unsupported
Default Severity
Warning
Description
The checker does not support time literals, such as 1fs, 2ps, and 3ns, and that it converted
the time literals to 1b1.
Example
In the following example, Conformal converts (2ns > 1ns) to (1b1 > 1b1). See line 4.
module test5(input aa, bb, output oo);
reg oo;
always @* begin
if (2ns > 1ns) oo = !aa;
else if (aa || bb) oo = aa;
else oo = 1b0;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 797 Product Version 7.2
VLG6.6
Message
Event object is unsupported
Default Severity
Warning
Description
The event object is not supported.
Example
In the following example, -> ev (see line 7) is not supported:
module top (input in, output out);
test test1(in, out);
endmodule
module test(input aa, output oo);
event ev;
always begin
-> ev;
oo = aa;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 798 Product Version 7.2
VLG6.7
Message
Hierarchical function call is not supported (blackboxed)
Default Severity
Warning
Description
The hierachical function call is not supported and will be blackboxed.
Example
In the following example, line 16 shows the unsupported hierachical function call:
module mod1 (input in1, output out1);
reg out1;
function ftn1;
input in1;
begin
if (in1 == 0) ftn1 = in1;
else ftn1 = 1;
end
endfunction
always @(in1)
out1 = ftn1(in1);
endmodule
module mod2 (input in2, output out2);
reg out2;
always @(in2)
out2 = mod1.ftn1(in2);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 799 Product Version 7.2
VLG6.8
Message
Specify block is ignored
Default Severity
Ignore
Description
The specify block is ignored. In a design, Verilog specify blocks contain path delay information
that is not used in static verication. As a result, the contents of a specify block are ignored.
Some library cells may have notier registers used in a specify block that can potentially affect
the logic. Specify blocks are non-synthesizable.
Example
In the following example, specify (line 5) is ignored:
module specify_blk ( o, i);
input i;
output o;
buf(o, i);
specify
specparam T1RISE$ = 2.7;
( i *> o ) =( 183:311:549 , 179:304:536 );
endspecify
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 800 Product Version 7.2
VLG6.10
Message
Intra-assignment event specification is not supported
Default Severity
Warning
Description
This construct is not supported because intra-assignment event specications are not
synthesizable. Cadence recommends that you remodel your HDL source code.
Example
In the following example, the intra-assignment in line 8 is not supported:
module intra_assign_evt (clk, cout);
input clk;
output [3:0] cout;
reg [3:0] cout;
always @(posedge clk)
begin
cout = 4b0;
cout = @(posedge clk) cout + 1;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 801 Product Version 7.2
VLG6.12
Message
fork-join constructs are not supported
Default Severity
Warning
Description
The design includes fork-join constructs. The fork-join constructs cannot be synthesized, and
are not supported. To avoid this error, remodel the design.
Example
In the following example, the fork and join contructs (lines 7 and 10) are not supported:
module neg_fork_join (clk, cout);
input clk;
output cout;
reg cout;
always @(posedge clk)
begin
fork
cout = 1b0;
cout = 1b1;
join
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 802 Product Version 7.2
VLG6.13
Message
force-release constructs are not supported
Default Severity
Warning
Description
The design includes force-release constructs. The force-release constructs cannot be
synthesized. To avoid this error, remodel your design.
Example
In the following example, the force and release contructs (lines 7 and 10) are not supported:
module force_release (clk, cin, cout);
input clk;
input cin;
output cout;
reg cout;
always @ (posedge clk)
begin
force cout = 1b1; <b>
cout = cin;
release cout; <b>
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 803 Product Version 7.2
VLG6.14
Message
Global reference on the left side of the assignment is not supported
Default Severity
Warning
Description
A global reference on left side of the assignment is not supported.
Example
In the following example, botInst.memNd (line 5) is a global reference on left side of the
assignment and is not supported:
module test(d);
input [1:0] d;
bot botInst();
always @(d)
botInst.memNd[0] = d;
endmodule
module bot();
reg [1:0] memNd [7:0];
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 804 Product Version 7.2
VLG6.15
Message
disable construct is not supported
Default Severity
Warning
Description
The disable construct is supported only when applied to an enclosing named block. The
Conformal software cannot disable tasks and non-enclosing named blocks. Remodel the
design to avoid this error.
Example
In the following example, specify (line 5) is ignored: xxxxxxxxxxxxxxx
module test;
always
begin : break
end
endmodule
module top;
test t();
integer i;
always
begin
if (i==1)
begin:cont
disable top.t.break;
end
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 805 Product Version 7.2
VLG6.16
Message
wait construct is not supported
Default Severity
Warning
Description
The design includes a Verilog wait event control, which is not supported. You will need to
remodel the design.
Example
In the following example, the wait event control (line 7) is not supported:
module neg_wait (enable, a, b, c, d);
input enable, b, d;
output a, c;
reg a, c;
always @(enable or b or d)
begin
wait (!enable) #10 a = b;
#10 c = d;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 806 Product Version 7.2
VLG7
Message
Nets renamed after removing backslash
Default Severity
Warning
Description
The checker has renamed one or more net names. The checker renames all net names that
include a backslash (\).
Example
In the following example, net name \out3[0] will be renamed out3[0]1. See line 4 (in
bold).
module test ( in1, in2, out3 );
output [1:0] out3;
input in1, in2;
wire \out3[0] ;
assign \out3[0] = in1 & in2;
assign out3[1] = \out3[0] ;
assign out3[0] = \out3[0] ;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 807 Product Version 7.2
VLG8
Message
Buffer inserted
Default Severity
Note
Description
The checker has inserted one or more buffers because the design includes the $setuphold
or $recrem timing checks from the Verilog IEEE Std P1364-Y2K.
Example
In the following example, the design uses the $setuphold timing check. See line 11 (in
bold).
module test (CK,D,O);
output O;
reg O;
input CK,D;
wire D_del,CK_del;
buf (CK_del,CK);
buf (D_del,D);
always @(posedge CK_del)
O <= D;
specify
$setuphold (posedge CK,posedge D, tsu_d_h_ck,th_ck_d_l, notifier,,,CK_del,D_del
endspecify
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 808 Product Version 7.2
VLG9
Message
Names conflict with previous declarations
Default Severity
Warning
Description
The checker found a name conict among declarations.
Example
In the following example on line 12 (in bold), instance a has the same name as input a at line
9 (in bold).
module test (din, dout);
input din;
output dout;
assign dout=din;
endmodule
module top (a , b);
input a;
output b;
test a (a,b);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 809 Product Version 7.2
VLG9.1
Message
Text macro is redefined
Default Severity
Warning
Description
The text macro is redened.
Example
In the following example, val1 is redened (see line 2):
define val1 0
`define val1 1
module test (din, dout);
input din;
output dout;
assign dout=din;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 810 Product Version 7.2
VLG9.2
Message
define macro is used
Default Severity
Note
Description
The define macro is used in the Verilog les.
Example
In the following example, define macro is used (see line 1):
`define VAL
module test(in,out);
input in;
output out;
assign out = in;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 811 Product Version 7.2
VLG9.4
Message
Instance name conflicts with previous declarations
Default Severity
Error
Description
The checker found a name conict among instance declarations.
Example
In the following example, u0 is redened (see line 6):
module GCLK (clko, clki, ena);
input clki, ena;
output clko;
not u0 (clki, clki);
DLAT l0 (q0, 1b0, 1b0, clki_, ena);
and u0 (clko, q0, clki);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 812 Product Version 7.2
VLG10
Message
Non-blocking assignment is in disabled block
Default Severity
Warning
Description
There are non-blocking assignments in a disabled block. These kind of assignments might
have undened behavior.
Example
In the following example, the disabled blk1 block contains a non-blocking assignment on line
6 (in bold).
module test (clk, a,b);
input clk,a;
output b;
always @(posedge clk) begin:blk1
b <= a;
disable blk1;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 813 Product Version 7.2
VLG10.1
Message
Non-blocking assignment encountered in function
Default Severity
Error
Description
Non-blocking assignment was detected inside the function. You should not use non-blocking
statements inside functions. Such usage can lead to compilation failures.
Example
In the following example, get_address (line 12) is a non-blocking assignment:
module top (clk, result);
input clk;
output [3:0] result;
reg [3:0] result;
reg [1:0] state_var;
function [3:0] get_address;
input [1:0] state_var;
begin
case (state_var)
2b00:
begin
get_address <= "0000";
end
endcase
end
endfunction
always @(posedge clk)
begin
result = get_address(2b0);
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 814 Product Version 7.2
VLG10.2
Message
deassign statements cannot be synthesized and are not supported
Default Severity
Warning
Description
The deassign statements cannot be synthesized.
Example
In the following example, the deassign statment in line 13 is not supported:
module DeassignMod(a,b);
input a;
output b;
reg b;
reg reset, clk;
always
begin
if(clk)
b = a;
else if(reset)
b = ~a;
else
deassign b;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 815 Product Version 7.2
VLG10.3
Message
Sequential assign statement is not supported
Default Severity
Warning
Description
Sequential assign statement is not supported.
Example
In the following example, the sequential assign statment in line 13 is not supported:
module assignMod(a,b);
input a;
output b;
reg b;
reg reset, clk;
always
begin
if(clk)
b = a;
else if(reset)
b = ~a;
else
assign b = 0;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 816 Product Version 7.2
VLG11.1
Message
Combinational logic is inferred in an always_latch block
Default Severity
Warning
Description
There is combinational logic inferred in an always_latch block. Latches are expected to
have inferred logic.
Example
In the following example, the always_latch block contains combinational logic on line 7.
module test(a,in1,in2,o);
input a;
input byte in1, in2;
output byte o;
always_latch begin
o = in1 & in2;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 817 Product Version 7.2
VLG11.2
Message
Latches are inferred in an always_comb block
Default Severity
Warning
Description
This rule check tells that there are inferred latches in an always_comb block. Combinational
logic is expected to have inferred logic.
Example
In the following example, the always_comb block contains an inferred latch on line 7 (in
bold).
module test(a,in1,in2,o);
input a;
input byte in1, in2;
output byte o;
always_comb begin
if (a)
o = in1 & in2;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 818 Product Version 7.2
VLG12.1
Message
Null statement ; is not allowed inside a begin-end block and is ignored
Default Severity
Warning
Description
The null statement : is not allowed inside a begin-end block and will be ignored.
Example
In the following example, the extra null statement (line 7) will be ignored.
module test(clk, out1, in1);
input clk, in1;
output out1;
reg out1;
always @(posedge clk)
begin
out1 <= in1;;
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 819 Product Version 7.2
VLG13.1
Message
Unpacked dimension is not allowed
Default Severity
Warning
Description
The unpacked dimension declaration is not allowed. It is only allowed for SystemVerilog.
Example
In the following example, in line 4, the unpacked dimension for the wire declaration is only
allowed in SystemVerilog.
module test (aa, bb, oo);
input aa, bb;
output oo;
wire tt[1:0];
assign tt[0] = aa;
assign tt[1] = bb;
assign oo = tt[0] && tt[1];
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 820 Product Version 7.2
VLG13.2
Message
Unsized dimension is not allowed
Default Severity
Warning
Description
The unsized dimension is not allowed. Using unsized dimension in an array declaration will
cause SystemVerilog module to be blackboxed.
Example
The following SystemVerilog examples are not allowed and will cause modules to be
blackboxed:
task foo( string arr[] ); // Dynamic array of strings
bit [3:0] nibble[]; // Dynamic array of 4-bit vectors
integer mem[]; // Dynamic array of integers
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 821 Product Version 7.2
VLG13.3
Message
Associative dimension is not allowed
Default Severity
Warning
Description
The SystemVerilog associative dimension is not allowed. Using associative dimension will
cause SystemVerilog module to be blackboxed.
Example
The following SystemVerilog examples are not allowed and will cause module to be
blackboxed:
integer i_array[*]; // associative array of integer (unspecified index)
bit [20:0] array_b[string];
// associative array of 21-bit vector, indexed by string
event ev_array[myClass]; // associative array of event indexed by class myClass
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 822 Product Version 7.2
VLG14.1
Message
Missing module instance name
Default Severity
Error
Description
The instance name is missing for the module.
Example
In the following example, in line 3, the instance name is missing for instantiation of module
sub:
module top();
wire m, n, k;
sub (.o(k), .a(m), .b(n));
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 823 Product Version 7.2
VLG15.1
Message
Block name is previously declared
Default Severity
Error
Description
Indicates that the block name is previously declared in the same scope.
Example
In the following example, in line 9, block name b1 in redeclared:
module test(clk,in, out);
input in,clk;
output reg out;
always @(clk)
begin
begin:b1
out = in;
end
begin: b1
out = ~in;
end
end
endmodule
Encounter Conformal Equivalence Checking Reference Manual
HDL Rule Check Messages
May 2008 824 Product Version 7.2
VLG16.1
Message
Syntax error in Verilog instantiation
Default Severity
Error
Description
Indicates that a syntax error was found in the Verilog instantiation.
The correct syntax is <modname> <mod_instance_name>(...).
Example
In the following example, in line 4, the correct syntax is test sub(...).
module top(din, dout);
input din;
output dout;
test sub;
endmodule
Encounter Conformal Equivalence Checking Reference Manual
May 2008 825 Product Version 7.2
4
Modeling Messages
This chapter lists and describes the modeling messages you encounter when the system
mode changes from Setup to LEC in the Encounter
Conformal
software.
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 826 Product Version 7.2
F1
Message
Modeled multiple-driven net(s)
Description
A multi-driven net has been remodeled into Boolean logic based on how the SET WIRE
RESOLUTION command is set.
Example
Sample modeling message:
F1: Modeled multiple-driven net(s) (Occurrence: 1)
1: /n1 (and)
In this message:
I /n1 is a multi-driven net
I (and) indicates that SET WIRE RESOLUTION is set to AND
The following code illustrates a circuit with a net n1 that has multiple drivers u0 and u1:
not u0 (n1,a);
not u1 (n1,b);
not u2 (z,n1);
Associated Commands
SET WIRE RESOLUTION
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 827 Product Version 7.2
F2
Message
Inserted user cut point(s)
Description
Conformal inserted a cut point to break a combinational loop. This operation is enabled when
you use the ADD CUT POINT command.
Example
Sample modeling message:
F2: Inserted user cut point(s) (Occurrence: 1)
1: CUT /n1
In this message:
I CUT indicates the gate type
I /n1 indicates the net name
You get this message when you add a cut point at net n1 using the
following command:
add cut point n1 -golden
Circuit example:
mux u0 (n1,n1,d,ck);
xor u1 (q,n1);
Associated Commands
ADD CUT POINT
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 828 Product Version 7.2
F3
Message
Inserted system cut point(s)
Description
A cut point has been inserted automatically to break a combinational loop.
Example
Sample modeling message:
F3: Inserted system cut point(s) (Occurrence: 1)
1: MUX /u0
In this message:
I MUX is the gate type
I /u0 is the driver instance name
The following circuit example inserts CUT gate at the output of a MUX instance u0:
mux u0 (n1,n1,d,ck);
xor u1 (q,n1);
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 829 Product Version 7.2
F5
Message
Folded DLAT(s) into DFF(s)
Description
D-latches (DLATs) were folded into D ip-ops (DFFs). This operation is enabled when you
use the SET FLATTEN MODEL -LATCH_FOLD command, which species that two latches
that are in a master-slave conguration should be converted into a single DFF gate. This
operation is also affected by the SET FLATTEN MODEL
-LATCH_FOLD_MASTER command.
Example
Sample modeling message:
F5: Folded DLAT(s) into DFF(s) (Occurrence: 1)
1: /l1 /l0
In this message, /l1 and /l0 are the instance names of the folded DLATs.
You would get this modeling message if you use the following command to convert two
master-slave DLATs l0 and l1 into a DFF:
set flatten model -latch_fold
Circuit example:
not u0 (ck_,ck);
DLAT l0 (n1,,1b0,1b0,ck_,d);
DLAT l1 (q ,,1b0,1b0,ck,n1);
Associated Commands
SET FLATTEN MODEL -LATCH_FOLD
SET FLATTEN MODEL -LATCH_FOLD_MASTER
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 830 Product Version 7.2
F6
Message
Created DLAT(s) due to trireg net(s) or combinational loop(s)
Description
A DLAT was created due to trireg net or a series of buffers/inverters that were
implemented as a bus-holder.
Example
Sample modeling message:
F6: Created DLAT(s) due to trireg net(s) or combinational loop(s)
(Occurrence: 1)
1: DLAT /n1 due to trireg net
This message indicates that a DLAT was created on net n1 for trireg, which is illustrated
in the following circuit example:
trireg n1;
bufif0 u0 (n1,a,s0);
bufif0 u1 (n1,b,s1);
buf u2 (z,n1);
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 831 Product Version 7.2
F7
Message
Set DLAT data port(s) as ZERO due to disabled clock port(s)
Description
DLAT data ports were set to zero because there were disabled clock ports. This operation is
enabled when you use the SET FLATTEN MODEL -LATCH_FOLD command.
Example
Sample modeling message:
F7: Set DLAT data port(s) as ZERO due to disabled clock port(s)
(Occurrence: 1)
1: Set DLAT q_reg data port /d to ZERO due to disabled clock port
This message indicates that data port d of register q_reg is tied to logic ZERO because
clock port of register q_reg is always disabled (logic ZERO).
You would get this message if you issue the following command:
set flatten model -latch_fold
Circuit example:
and u0 (g,1b0,ck);
always @(d or g)
begin
if (g)
q <= d;
end
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 832 Product Version 7.2
F8
Message
Converted DLAT(s) to BUF(s) due to transparency
Description
DLATs were converted into buffers because of transparency. This operation is enabled when
you use the SET FLATTEN MODEL -LATCH_TRANSPARENT command, which species that
DLATs should be converted into buffers if the DLAT clock ports are always enabled.
Example
Sample modeling message:
F8: Converted DLAT(s) to BUF(s) due to transparency (Occurrence: 1)
1: DLAT /q_reg
This message indicates that a buffer was converted buf (q,d), because the clock of
register q_reg is always enabled (logic ONE).
You would get this message if you issue the following command:
set flatten model -latch_transparent
Circuit example:
or u0 (g,1b1,ck);
always @(d or g)
begin
if (g)
q <= d;
end
Associated Commands
SET FLATTEN MODEL -LATCH_TRANSPARENT
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 833 Product Version 7.2
F10
Message
Removed redundant AND/NAND/OR/NOR fanin gate(s) for DFF/DLAT(s)
Description
Redundant AND/NAND/OR/NOR fan-in gates for DFFs and DLATs were removed. This
operation is enabled when you use the SET FLATTEN MODEL
-SEQ_REDUNDANT command.
Example
Sample modeling message:
F10: Removed redundant AND/NAND/OR/NOR fanin gate(s) for DFF/DLAT(s)
(Occurrence: 1)
1: Removed connection from INV /u0 to AND /u1 for DFF /f0_reg
This message indicates that the fan-in AND u1 and INV u0 gates were optimized for DFF
f0_reg due to redundant logic.
You would get this command if you issue the following command:
set flatten model -seq_redundant
Circuit example:
not u0 (rst_,rst);
and u1 (sr,set,rst_);
DFF f0_reg(q,,sr,rst,ck,d);
Associated Commands
SET FLATTEN MODEL -SEQ_REDUNDANT
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 834 Product Version 7.2
F11
Message
Removed redundant AND/NAND/OR/NOR fanout gate(s) for DFF/DLAT(s)
Description
Redundant AND/NAND/OR/NOR fan-out gates for DFFs and DLATs were removed. This
operation is enabled when you use the SET FLATTEN MODEL -SEQ_REDUNDANT command.
Example
Sample modeling message:
F11: Removed redundant AND/NAND/OR/NOR fanout gate(s) for DFF/DLAT(s)
(Occurrence: 1)
1: Remodeled AND /u0 for DFF /n1_reg
This message indicates that the fan-out AND gate u0 was optimized for DFF n1_reg due
to redundant logic.
You would get this command if you issue the following command:
set flatten model -seq_redundant
Circuit example:
always @(posedge ck or negedge rst )
begin
if (!rst)
n1 <= 0;
else
n1 <= d;
end
and u0 (q,n1,rst);
Associated Commands
SET FLATTEN MODEL -SEQ_REDUNDANT
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 835 Product Version 7.2
F12
Message
Converted DFF(s) to DLAT(s) due to disabled clock port(s)
Description
DFFs were converted into DLATs due to disabled clock ports. This operation is enabled when
you use the SET FLATTEN MODEL -DFF_TO_DLAT_ZERO, which converts a DFF to a
DLAT when the clock port is zero.
Example
Sample modeling message:
F12: Converted DFF(s) to DLAT(s) due to disabled clock port(s)
(Occurrence: 1)
1: DLAT /q_reg
This message indicates DFF q_reg was converted to a DLAT because the clock of the
register is always disabled (logic ZERO).
You would get this message with the following command:
set flatten model -DFF_TO_DLAT_ZERO
Circuit example:
and u0 (ck1,1b0,ck);
always @(posedge ck1)
begin
q <= d;
end
Note: The -DFF_TO_DLAT_ZERO option is enabled by default.
Associated Commands
SET FLATTEN MODEL -DFF_TO_DLAT_ZERO
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 836 Product Version 7.2
F13
Message
Converted DFF(s) to DLAT(s) due to direct feedback
Description
DFFs were converted to DLATs due to direct feedback. This operation is enabled when you
use the SET FLATTEN MODEL -DFF_TO_DLAT_FEEDBACK command, which converts a
DFF to a DLAT if the DFFs output feeds back directly to the DFFs input.
Example
Sample modeling message:
F13: Converted DFF(s) to DLAT(s) due to direct feedback
(Occurrence: 1)
1: DLAT /q_reg
This message indicates that DFF q_reg was converted to a DLAT because of direct
feedback from output q of the register to its input d.
You would get this message if you issue the following command:
set flatten model -DFF_TO_DLAT_FEEDBACK
Circuit example:
always @(posedge ck)
begin
q <= q;
end
Note: The -DFF_TO_DLAT_FEEDBACK option is enabled by default.
Associated Commands
SET FLATTEN MODEL -DFF_TO_DLAT_FEEDBACK
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 837 Product Version 7.2
F14
Message
Remodeled gated-clock DFF(s) or DLAT(s) to mux-feedback
Description
Gated-clock logic for DFFs or DLATs were remodeled to MUX-feedback. This operation is
enabled when you run the SET FLATTEN MODEL command with the -GATED_CLOCK option,
which remodels gated-clock logic of the clock port of a DFF.
Example
Sample modeling message:
F14: Remodeled gated-clock DFF(s) or DLAT(s) to mux-feedback
(Occurrence: 1)
1: /q_reg (DFF)
This message indicates that the de-glitch gating clock DLAT l0 and enable logic u1 for
register DFF q_reg was converted to a mux-feedback DFF
You would get this message when issue the following command:
set flatten model -GATED_CLOCK
Circuit example:
not u0 (ck_,ck);
DLAT l0 (en,,1b0,1b0,ck_,ena);
and u1 (ck1,ck,en);
always @(posedge ck1)
begin
q <= d;
end
Associated Commands
SET FLATTEN MODEL -GATED_CLOCK
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 838 Product Version 7.2
F14.1
Message
Remodeled gated-clock DFF(s) or DLAT(s) without latch to mux-feedback
Description
Conformal remodeled gated-clock logic for DFFs or DLATs without deglitching to MUX-
feedback. This operation is enabled when you use the SET FLATTEN MODEL
-GATED_CLOCK, which remodels gated-clock logic of the clock port of a DFF. This operation
might need the ADD CLOCK command to dene the clock pin
Example
Sample modeling message:
F14.1: Remodeled gated-clock DFF(s) or DLAT(s) without latch to mux-
feedback(Occurrence: 1)
1: /q_reg (DFF)
This message indicates that the gated-clocking enable logic u1 for register DFF q_reg
was converted to a mux-feedback DFF.
You get this message when you issue the following commands:
add clock 0 ck
set flatten model -GATED_CLOCK
Circuit example:
and u0 (ck1,ck,ena);
always @(posedge ck1)
begin
q <= d;
end
Associated Commands
ADD CLOCK
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 839 Product Version 7.2
SET FLATTEN MODEL -GATED_CLOCK
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 840 Product Version 7.2
F16
Message
Converted DLAT(s) to MUX(s) due to clock inversion relation
Description
DLATs were converted into MUXes due to clock inversion relationships.
Example
Sample modeling message:
F16: Converted DLAT(s) to MUX(s) due to clock inversion relation
(Occurrence: 1)
1: /l0
This message indicates that a dual-port DLAT l0 was converted to a MUX - mux l0
(q,d0,d1,ck) due to the clock inversion relationship on the dual-port DLAT clock ports.
Circuit example:
not u0 (ck_,ck);
DLAT l0 (q,,1b0,1b0,ck_,d0,ck,d1);
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 841 Product Version 7.2
F17
Message
Converted DLAT(s) to BUF(s)/INV(s) due to set/reset inversion relation
Description
DLATs were converted to buffers/inverters due to set/reset inversion relationships.
Example
Sample modeling message:
F17: Converted DLAT(s) to BUF(s) due to set/reset inversion relation
(Occurrence: 1)
1: /l0
This message indicates that a DLAT l0 was converted to a buffer, buf l0 (q,a),
because of set/reset inversion relationships on asynchronous set/reset of DLAT.
Circuit example:
not u0 (a_,a);
DLAT l0 (q,,a,a_,ck,1b0);
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 842 Product Version 7.2
F18
Message
Converted DFF/DLAT(s) to ZERO/ONE
Description
Conformal converted a DFF or a DLATs to a ZERO or ONE gate. This operation is enabled
when you use the SET FLATTEN MODEL -SEQ_CONSTANT command, which converts a
DFF or DLAT to a ONE or ZERO gate if the data port is a one or zero. This operation is also
affected by the SET FLATTEN MODEL -SEQ_CONSTANT_FEEDBACK command.
Example
Sample modeling message:
F18: Converted DFF/DLAT(s) to ZERO/ONE (Occurrence: 1)
1: DFF /n1_reg (ZERO)
This message indicates that DFF n1_reg was converted to logic ZERO because data port
is tied to logic ZERO.
You would get this message if you issue the following command:
set flatten model -seq_constant
Circuit example:
always @ (posedge ck)
n1 <= 1b0;
assign q = a | n1;
Associated Commands
SET FLATTEN MODEL -SEQ_CONSTANT
SET FLATTEN MODEL -SEQ_CONSTANT_FEEDBACK
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 843 Product Version 7.2
F19
Message
Merged DFF(s) or DLAT(s) in clock cones
Description
Sequentially equivalent DFFs or DLATs in clock cones were merged. This operation is
enabled when you use the SET FLATTEN MODEL -SEQ_MERGE command.
Example
Sample modeling message:
F19: Merged DFF(s) or DLAT(s) in clock cones (Occurrence: 1)
1: DFF /ck0_reg /ck1_reg
This message indicates that DFF ck0_reg and DFF ck_reg were merged into a single
DFF because the two DFFs were sequentially equivalent.
You would get this message when you issue the following command:
set flatten model -seq_merge
Circuit example:
always @ (posedge ck)
begin
ck0 <= a;
ck1 <= a;
end
always @ (posedge ck0)
q0 <= d;
always @ (posedge ck1)
q1 <= d;
Associated Commands
SET FLATTEN MODEL -SEQ_MERGE
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 844 Product Version 7.2
F20
Message
Merged DFF(s) or DLAT(s)
Description
Sequentially equivalent DFFs and DLATs were merged. This operation is enabled when you
use the SET FLATTEN MODEL -ALL_SEQ_MERGE command, which merges common
groups of sequential elements into one sequential element in a logic cone of a key point.
Example
Sample modeling message:
F20: Merged DFF(s) or DLAT(s) (Occurrence: 1)
1: DFF /q0_reg /q1_reg
This message indicates that DFF q0_reg and DFF q_reg were merged into a single DFF
because the two DFFs are sequentially equivalent.
You would get this message if you use the following command:
set flatten model -all_seq_merge
Circuit example:
always @ (posedge ck)
begin
q0 <= d;
q1 <= d;
end
Associated Commands
SET FLATTEN MODEL -ALL_SEQ_MERGE
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 845 Product Version 7.2
F21
Message
Merged DFF(s) or DLAT(s) defined by user
Description
User-dened DFFs or DLATs were merged using the ADD INSTANCE EQUIVALENCES
command.
Example
Sample modeling message:
F21: Merged DFF(s) or DLAT(s) defined by user (Occurrence: 1)
1: DFF /q0_reg /q1_reg
This message indicates that you merged two DFFs q0_reg and DFF q1_reg into a single
DFF using the following command:
add instance equivalences /q0_reg /q1_reg -golden
Circuit example:
always @ (posedge ck)
begin
q0 <= d;
q1 <= d;
end
Associated Commands
ADD INSTANCE EQUIVALENCES
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 846 Product Version 7.2
F23
Message
Merged DFF(s) or DLAT(s) multiple ports into single port due to equivalence
Description
Multiple ports belonging to DFFs or DLATs into one single port due to equivalence were
merged.
Example
Sample modeling message:
F23: Merged DFF(s) or DLAT(s) multiple ports into single port due to
equivalence (Occurrence: 1)
1: DFF /f0
This message indicates that a dual-port DFF f0_reg with equivalent data and clock port
was merged into a single port DFF - DFF f0_reg (q,,1b0,1b0,ck,d).
Circuit example:
buf n0 (d0,d);
buf n1 (d1,d);
DFF f0_reg (q,,1b0,1b0,ck,d0,ck,d1);
Associated Commands
None.
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 847 Product Version 7.2
F25
Message
Pipeline-retimed DFF(s) to outputs
Description
DFFs to outputs were pipeline-retimed. This operation is enabled when you use the ADD
MODULE ATTRIBUTE -PIPELINE_RETIME, which checks specied modules for pipeline
retiming and remodels when necessary.
Example
Sample modeling messages:
Report modeling message for Revised
F25: Pipeline-retimed DFF(s) to outputs (Occurrence: 1)
1: Pipeline retimed DFF q_reg to output
Report modeling message for Revised
F25: Pipeline-retimed DFF(s) to outputs (Occurrence: 2)
1: Pipeline retimed DFF a1_reg to output
2: Pipeline retimed DFF b1_reg to output
These messages indicate that the DFF a1_reg and DFF b1_reg performed pipeline-
retiming to the outputs.
You would get these messages if you issue the following command:
add module attribute ckt -pipeline_retime
Circuit example:
Golden:
assign n1 = a & b;
always @(posedge ck)
q <= n1;
Revised:
always @(posedge ck)
begin
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 848 Product Version 7.2
a1 <= a;
b1 <= b;
end
assign q = a1 & b1;
Associated Commands
ADD MODULE ATTRIBUTE -PIPELINE_RETIME
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 849 Product Version 7.2
F26
Message
Merged dual-port DLAT(s) into single port DLAT(s)
Description
Dual-port DLATs were merged into single-port DLATs. This operation is enabled when you
use the SET FLATTEN MODEL -LATCH_MERGE_PORT command.
Example
Sample modeling message:
F26: Merged dual-port DLAT(s) into single port DLAT(s)
(Occurrence: 1)
1: Merged multi-port DLAT /l0 into single port DLAT
This message indicates that dual-port DLAT l0 was merged into a single port DLAT using
the following command:
set flatten model -latch_merge_port
Circuit example:
DLAT l0 (q,,1b0,1b0,ck,d0,sck,d1);
Result :
and u0 (n1,d0,ck);
and u1 (n2,d1,sck);
or u2 (din,n1,n2);
or u3 (ck_or,ck,sck);
DLAT l0 (q,,1b0,1b0,ck_or,din);
Associated Commands
SET FLATTEN MODEL -LATCH_MERGE_PORT
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 850 Product Version 7.2
F27
Message
Converted internal input port(s) to inout port(s)
Description
Internal input ports were converted into inout ports because the input port does not drive any
instances.
Example
Sample modeling message:
F27: Converted internal input port(s) to inout port(s)
(Occurrence: 1)
1: port /u0/y in module AN2
This message indicates that port y of module AN2 does not drive any load.
Circuit example:
module AN2 (y,z,a,b);
input a,b,y;
output z;
and u0 (z,a,b);
buf u1 (y,a);
endmodule
module ckt (y,z,a,b);
input a,b;
output y,z;
AN2 u0 (y,z,a,b);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 851 Product Version 7.2
F28
Message
Converted internal output port(s) to inout port(s)
Description
Internal output ports were converted to inout ports because the output port is not driven.
Example
Sample modeling message:
F28: Converted internal output port(s) to inout port(s)
(Occurrence: 1)
1: port /u0/a in module AN3 due to high-impedance (Z) gates
This message indicates that port a of module AN3 is not driven by any driver.
Circuit example:
module AN3 (z,a,b,c);
input b,c;
output z,a;
and u0 (z,a,b,c);
endmodule
module ckt (z,a,b,c);
input a,b,c;
output z;
AN3 u0 (z,a,b,c);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 852 Product Version 7.2
F30
Message
Ignored weak device(s) due to the existence of strong device(s)
Description
Any weak devices were ignored due to the existence of a stronger device in a multiple-driven
net.
Example
Sample modeling message:
F30: Ignored weak device(s) due to the existence of strong device(s)
(Occurrence: 1)
1: n1
This message indicates that a weak device buffer u0 driving net n1 was ignored due to the
existence of stronger buffer device u1 driving the same net n1.
Circuit example:
buf (weak0,weak1)u0 (n1,a);
buf u1 (n1,b);
buf u2 (z,n1);
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 853 Product Version 7.2
F32
Message
Created Z gate(s) for floating net(s) and floating pin(s)
Description
Z gates were created for oating nets and oating pins.
Example
Sample modeling message:
F32: Created Z gate(s) for floating net(s) and floating pin(s)
(Occurrence: 1)
1: c
This message indicates that a net c of instance u0 is not driven.
Circuit example:
module ckt (z,a,b);
input a,b;
output z;
wire c;
and u0 (z,a,b,c);
endmodule
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 854 Product Version 7.2
F34
Message
Convert X assignment(s) as dont care(s)
Description
X assignments were converted to dont cares. This operation is enabled when you use the
SET X CONVERSION command.
Example
Sample modeling message:
F34: Convert X assignment(s) as dont care(s) (Occurrence: 1)
1: Converted X assignment at N$1 be dont care
This message indicates that assignment in RTL code default: z = 1bx is converted
to dont cares through the following command:
set x conversion DC -golden
Note: This option in the golden design is enabled by default.
Circuit example:
always @(a or b or sel)
begin
case (sel)
2b01 : z = a;
2b10 : z = b;
default : z = 1bx;
endcase
end
Associated Commands
SET X CONVERSION
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 855 Product Version 7.2
F34.1
Message
Convert X assignment(s) as zero(s)
Description
X assignments were converted to zero. This operation is enabled when you use the SET X
CONVERSION command.
Example
Sample modeling message:
F34.1: Convert X assignment(s) as zero(s) (Occurrence: 1)
1: Converted X assignment N$1 as 0
This message indicates that X assignment in RTL code default: z = 1bx was
converted to logic ZERO using the following command:
set x conversion 0
Circuit example:
always @(a or b or sel)
begin
case (sel)
2b01 : z = a;
2b10 : z = b;
default : z = 1bx;
endcase
end
Associated Commands
SET X CONVERSION
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 856 Product Version 7.2
F34.2
Message
Convert X assignment(s) as one(s)
Description
X assignments were converted to one. This operation is enabled when you use the SET X
CONVERSION command.
Example
Sample modeling message:
F34.2: Convert X assignment(s) as one(s) (Occurrence: 1)
1: Converted X assignment N$1 as 1
This message indicates that an X assignment in the RTL code default: z = 1bx was
converted to logic ONE using the following command:
set x conversion 1
Circuit example:
always @(a or b or sel)
begin
case (sel)
2b01 : z = a;
2b10 : z = b;
default : z = 1bx;
endcase
end
Associated Commands
SET X CONVERSION
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 857 Product Version 7.2
F34.3
Message
Converted 1 X assignment(s) as E(s)
Description
An X assignment was converted to an error (E) gate . This operation is enabled when you use
the SET X CONVERSION command. If the X assignment space of the Revised design is within
the X assignment space of the Golden design, then the E gate is marked as an extra
unmapped point (redundant gate).
Example
Sample modeling message:
F34.2: Convert 1 X assignment(s) as E (Occurrence: 1)
1: Converted X assignment N$1 as E
This message indicates that an X assignment in the RTL code default: z = 1bx was
converted to logic E using the following command:
set x conversion E
Circuit example:
always @(a or b or sel)
begin
case (sel)
2b01 : z = a;
2b10 : z = b;
default : z = 1bx;
endcase
end
Associated Commands
SET X CONVERSION
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 858 Product Version 7.2
F36
Message
Dont care(s) added due to $constraint(s)
Description
dont cares were added due to $constraints.
Example
Sample modeling message:
F36: Dont care(s) added due to $constraint(s) (Occurrence: 1)
1: u0: DFF q_reg
This message indicates that constraint cstr_0 for register q_reg is added to dont cares.
Circuit example:
always @(a or b or sel)
begin
case (sel)
2b01 : z = a;
2b10 : z = b;
default : z = 1bx;
endcase
end
$constraint cstr_0 ($one_hot (sel));
always @(posedge ck)
q <= z;
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 859 Product Version 7.2
F39
Message
Added output Z gate(s)
Description
Output Z gates were added. This operation is enabled by SET FLATTEN MODEL
-OUTPUT_Z, which is enabled by default.
Example
Sample modeling message:
F39: Added output Z gate(s) (Occurrence: 1)
1: /z
This message indicates that a Z gate was added at the output z using the following
command:
set flatten model -output_z
Circuit example:
module ckt (z,a,sel);
input a,sel;
output z;
bufif0 u0 (z,a,sel);
endmodule
Associated Commands
SET FLATTEN MODEL -OUTPUT_Z
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 860 Product Version 7.2
F41
Message
Converted set/reset loop(s) to data-hold(s)
Description
The Conformal software converted a data-hold function that is modeled using an
asynchronous set and an asynchronous reset functions, to a mux data-hold function
Example
Sample modeling message:
F41: Converted set/reset loop(s) to data-hold(s) (Occurrence: 1)
1: DFF Q_reg
Circuit example:
assign RN = !Q & EN;
assign SET = Q & EN;
always @(posedge CK or posedge RN or posedge SET)
begin
if (RN)
Q <= 1b0;
else if (SET)
Q <= 1b1;
else
Q <= D;
end
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 861 Product Version 7.2
F42
Message
Unfolded DFF to latches
Description
A DFF was unfolded into two DLATs. This operation is enabled when you use the REMODEL
-UNFOLD_DFF command, which species that a DFF should be converted into two DLATs
that are in a master-slave conguration.
Example
Sample modeling message:
F42: Unfolded DFF to latches (Occurrence: 1)
1: /q_reg
This message indicates you converted a single DFF into a master-slave DLATs using the
following command:
remodel -unfold_dff
Circuit example:
always @(posedge ck)
q <= d;
Associated Commands
REMODEL -UNFOLD_DFF
Encounter Conformal Equivalence Checking Reference Manual
Modeling Messages
May 2008 862 Product Version 7.2
F43
Message
Added DLATs to cut loops
Description
DLATs were added to cut combination loops.This operation is enabled by the SET FLATTEN
MODEL command.
Example
Sample modeling message:
F43: Added DLATs to cut loops (Occurrence: 1)
1: /u0
This message indicates that a DLAT was added at instance driver u0 to cut the
combinational loop using the following command:
set flatten model -loop_as_dlat
Circuit example:
mux u0 (n1,n1,d,ck);
xor u1 (q,n1);
Associated Commands
SET FLATTEN MODEL
Encounter Conformal Equivalence Checking Reference Manual
May 2008 863 Product Version 7.2
5
Tcl Command Entry Mode Support
Tcl Design Access Commands
I nd on page 865
I get_compare_points on page 866
I get_compare_result on page 866
I get_exit_code on page 867
I get_current_module on page 868
I get_fanins on page 868
I get_fanouts on page 868
I get_gate_count on page 868
I get_gate_id on page 868
I get_gate_type on page 868
I get_handle_type on page 869
I get_instances on page 869
I get_keypoint on page 870
I get_map_points on page 871
I get_module_denition on page 871
I get_names on page 872
I get_nets on page 872
I get_parent on page 873
I get_pins on page 874
I get_ports on page 875
Encounter Conformal Equivalence Checking Reference Manual
Tcl Command Entry Mode Support
May 2008 864 Product Version 7.2
I get_primitive_type on page 876
I get_property on page 877
I get_root_module on page 878
I get_unmap_points on page 878
I set_current_module on page 879
Tcl Utility Commands
I echo_result on page 879
I get_license_mode on page 879
I get_version_info on page 879
I help on page 880
I objtype on page 880
I usage on page 880
Encounter Conformal Equivalence Checking Reference Manual
Tcl Command Entry Mode Support
May 2008 865 Product Version 7.2
nd
find <-Module | -Instance | -Port [-Input | -Output | -Bidir]
| -Pin [ -Input | -Output| -Bidir]
| -Net | -Gate | -Id>
[-Golden | -Revised | -Both]
[-Single] <object_name>
Returns a design database object handle or list of handles for a design object or list of objects.
-Module The specied object_name is a module name.
-Instance The specied object_name is an instance name.
-Port The specied object_name is a port name.
-Input species an input port.
-Output species an output port.
-Bidir species a bidirectional port.
-Pin The specied object_name is a pin name.
-Input species an input pin.
-Output species an output pin.
-Bidir species a bidirectional pin.
-Net The specied object_name is a net name.
-Gate Species a attened gate name.
-Id Species the ID of a attened gate.
Note: Conformal automatically assigns IDnumbers. They can
differ from one version to another. Always use ID numbers
assigned by the Conformal version you are currently running.
-Golden Applies to the Golden design only.
-Revised Applies to the Revised design only.
-Both Applies to the Golden and Revised designs.
-Single Returns none or the rst found object handle instead of a list.
<object_name> This is the name of a specied design object. It is a name in
module context or hierarchical context.
Note: Hierarchical objects start with /.
Encounter Conformal Equivalence Checking Reference Manual
Tcl Command Entry Mode Support
May 2008 866 Product Version 7.2
Example
The following example shows how the return value of the command can be saved to a
variable for later reference:
set abc1 [find -instance /u1/U2]
set abc2 [find -single -instance /u1/U2]