Académique Documents
Professionnel Documents
Culture Documents
Goals:
Learn how connectivity is automatically handled in Cadence flows at the
interface of Logical, Electrical, and RNM nets
Learn what coercion is and how it benefits MS verification
Learn what IE Card is and how can be used to customize mixed signal
connectivity
Table of Contents
Discipline Resolution (DR)
Coercion
Confidential
Discipline Resolution
Analog
domain
Digital
domain
Analog-toDigital
domain
boundary
Analog
domain
Digital-toAnalog
domain
boundary
Natures
6
Logic discipline
Belonging to the discrete
domain
Digital 4-state logic signals
(0,1,X,Z)
Wreal is a wire-real which
represents a real-valued
physical connection
electrical (continuous)
logic (discrete)
discipline electrical
discipline logic
domain continuous;
potential Voltage;
flow Current;
enddiscipline
domain discrete;
enddiscipline
Net 1
Domain-less
nets
Port boundary
Net 2
Net 3
Net 3
Net 2
Port boundary
Net 4
Net 5
Net 6
D
Digital blocks
Net 4
Analog
Net 6
Net 5
Digital
Analog
Net 1
IE
Port boundary
Net 2
Net 3
Port boundary
Net 6
Net 4
D
9
Digital
Net 5
Analog
Net 1
Port boundary
IE
Net 2
Net 3
Port boundary
Net 6
Net 4
D
10
Digital
Net 5
Analog
Net 1
Port boundary
Net 2
Net 3
Port boundary
Net 6
Net 4
Net 5
Digital
Analog
Confidential
Coercion
Coercion
Coercion is the process by which a Verilog wire can
become a wreal net because of its hierarchical connections.
Note: Be aware that wreal coercion takes place before port
compatibility checking, so once the type of the port is fully known,
the port compatibility rules in Port Connections apply.
13
Coercion Enhancements
When a wire/interconnect is connected to a net of the type
wreal, SV real, or VHDL real, it is coerced to wreal as well.
Such coercion can occur across multiple hierarchical levels.
The coercion process allows a seamless connection of
devices without worrying about the interconnects and their
types. This offers tremendous value in terms of model
portability across various design configurations.
In a different configuration, interconnect might be used to
connect electrical ports - this works seamlessly without any
change in the source code.
14
Coercion Example
Uses wires as type-less interconnects
Allows different model abstractions to be reused in same
hierarchy
wires
Sub1
Source
Source
(model)
(circuit)
electrical
wreal
15
top
Sub2
Sink
Sink
(model)
(circuit)
wreal
electrical
Coercion Example
The wire named w at the top level will be coerced to
wreal because the leaf-level port r is wreal.
// Hierarchy
`include "disciplines.vams"
module top();
wire w;
sub1 I1 (w);
sub2 I2 (w);
endmodule
module sub1(foo);
output foo;
source I1 (foo);
endmodule
module sub2(foo);
input foo;
sink
I3 (foo);
endmodule
16
// Leaf-level blocks
`include "disciplines.vams
module source(r);
output r;
wreal r;
real realnumber;
initial begin
#1 realnumber = `wrealXState;
#1 realnumber = `wrealZState;
#1 realnumber = 2.2;
#1 realnumber = 1.1;
#1 $stop;
end
assign r = realnumber;
endmodule
module sink (r);
input r;
wreal r;
always @(r) begin
$display(" real value = %f", r);
end
endmodule
17
Coercion -rnm_coerce
-rnm_coerce default | none| detailed | off scopeType-scopePossible values are:
none - disable wreal coercion. (traversal similar to disres none)
detailed - enable wreal coercion. (traversal similar to disres detailed)
default - enable global coercion with default resolution. (traversal similar to disres default)
off scopeType scope- disable local coercion in scope, coercion in other scope is ON.
If you are a digital-centric user running an AMS simulation that requires only the digital
solver, it is recommended to specify -rnm_coerce none.
Example:
rnm_coerce "off inst-top.dcinst-"
All the net of instance top.dcinst and its children will not be coerced to wreal; top level and
other instances will be coerced as normal.
18
Confidential
20
(continued)
21
setd
setd
setd
setd
setd
setd
setd
setd
setd
"NET-hierarchical_net_name- discipline_name"
"INSTTERM-hierarchical_port_name- discipline_name"
"INST-hierarchical_instance_name- discipline_name"
"CELLTERM-lib_name.cell_name.port_name- discipline_name"
"CELLTERM-cell_name.port_name- discipline_name"
"CELL-lib_name.cell_name:view_name- discipline_name"
"CELL-lib_name.cell_name- discipline_name"
"CELL-cell_name- discipline_name"
"LIB-lib_name- discipline_name"
TOP
(continued)
Net 1
MID
Net 2
Net 3
Net 4
Net 5
Net 6
D1
D2
A1
Dig_leaf
22
Ana_leaf
Confidential
IE card
24
scope
Definition
inst
Full hierarchical path to an instance to which you want to apply the specified interface element
parameters. If you specify more than one instance, you must separate each instance with a
space and enclose the string in double quotation marks.
cell
Specification of a cell to which you want to apply the specified interface element parameters. If
you specify more than one cell, you must separate each cell with a space and enclose the
string in double quotation marks.
instport
Full hierarchical path to one or more names of instance ports to which you want to apply the
specified interface element parameters. If you specify more than one name, you must
separate each name with a space and enclose the string in double quotation marks. For
example:
ie vsup=1.2 instport="a b c"
25
Definition
cellport
One or more cell port names to which you want to apply the specified interface element
parameters. If you specify more than one cell port, you must separate each cell port name
with a space and enclose the string in double quotation marks.
net
One or more net names to which you want to apply the specified interface element
parameters. If you specify more than one name, you must separate each name with a space
and enclose the string in double quotation marks.
cellupport
One or more cell port names. The software applies the interface element parameters to upperlevel connections (ports or nets) to the specified cell port or ports. If you specify more than
one name, you must separate each name with a space and enclose the string in double
quotation marks.
lib
Logical name for library of design units to which you want to apply the specified interface
element parameters
You can use the wildcard character(s) in the scope name to specify more than one scope at a time. For example:
ie vsup=1.2 cellport="top.*_vdddig*"
could match top.jbb_vdddig_1, top.jbb_vdddig_2, top.jbc_vdddig_1, top.jbc_vdddig_2, and so on.
Note: For hierarchical-related specifications, that is, inst, instport, and net, wild cards do not match across the hierarchical
levels unless the wildcard is specified at the end of the string. For example, "a.*.d" would match "a.b.d", but not
"a.b.c.d". However, "a.*" could match "a.b" and "a.b.c.d".
26
Definition
vthi
Voltage value above which the simulator assigns a logical 1. The simulator determines the default value
from the connect rule.
vtlo
Voltage value below which the simulator assigns a logical 0. The simulator determines the default value
from the connect rule.
vx
Final real number for logical x. The simulator determines the default value from the connect rule.
tr
Rise time for analog transition, from vtlo to vthi or vx. Default Value: 0.2 ns
rlo
Output resistance for L2E when digital input is 0. Default Value: 200 Ohms
rhi
Output resistance for L2E when digital input is 1. Default Value: 200 Ohms
rx
Output resistance for L2E when digital input is x. Default Value: 40 Ohms
rz
Output resistance for L2E when digital input is z. Default Value: 10M Ohms
27
Definition
txdel
Controls the amount of wait time before a digital port is driven to x for the connectmodules E2L, E2L_2,
L2E, Bidir, and Bidir_2.
Measured in nano seconds.
Default Value: Four times the tr parameter. If the tr parameter is not specified for the ie statement, the
simulator uses the default tr value 0.2n and calculates the default txdel value as 0.8n.
Example:
amsd {
ie vsup=1.8 txdel=0.9n
}
mode
Specifies the type of connect module insertion in the ie card. You can assign two values to this
parameter:
merged - This is the default value. The merged value instructs the elaborator to insert a single merged
connectmodule for all the nets that are connected to the same port and require the same
connectmodule.
split - The split value instructs the elaborator to insert a separate connectmodule for every net
connected to the same port, irrespective of whether or not they require the same connectmodule.
vpso
vdelta
vtol
28
Definition
connrules
full
inhconn_full
full_fast
Definition
discipline
Used as the discipline name corresponding to the ie card. If this parameter is not specified, the
discipline name is auto-generated.
In the example below, the discipline name corresponding to the ie card in the first ie statement will be
logic1_8 instead of the auto-generated discipline name ddiscrete_1_8. However, because the discipline
parameter is not used with the second and third ie statements, the corresponding discipline names for
these ie cards will be ddiscrete_3_3 and ddiscrete_4_5.
amsd {
ie vsup=1.8 discipline=logic1_8 rx=25
ie vsup=3.3 rlo=125
ie vsup=4.5 tr=0.4n
}
The discipline parameter can take only discrete discipline values. In the example below, the discipline
value is not discrete and therefore it is not supported.
ie vsup=1.8 instport="top.sub.pin" discipline="electrical
For continuous disciplines, use the elaboration -setdiscipline option instead. For example:
-setdiscipline "instterm-top.sub.pin- electrical"
Note: Unlike in a connectmap card, the discipline parameter in an ie card can accept only a single discipline value.
30