The software uses any parameter assignments you specify to customize the connect rules. Any customizations you specify apply to domainless nets only. Valid parameter=value assignments for the ie statement are as follows:
|
|
Voltage value above which the simulator assigns a logical |
|
|
|
Voltage value below which the simulator assigns a logical |
|
|
|
Final real number for logical |
|
|
|
Rise time for analog transition, from Default value: 0.2 ns |
|
|
|
Output resistance for L2E when digital input is Default value: 200 Ohms |
|
|
|
Output resistance for L2E when digital input is Default value: 200 Ohms |
|
|
|
Output resistance for L2E when digital input is Default value: 40 Ohms |
|
|
|
Output resistance for L2E when digital input is Default value: 10M Ohms |
|
|
|
Controls the amount of wait time before a digital port is driven to Measured in nano seconds. Default value: Four times the Example:
|
|
|
|
Specifies the type of connect module insertion in the
|
|
|
|
Converts the PSO X state to a user-supplied voltage in AMS-CPF. |
|
|
|
Voltage delta value ranging from 0 to vsup. Default value: |
|
|
|
Voltage tolerance value ranging from 0 to vdelta. Default value: |
|
vtrlo |
Ratio of low threshold during value conversion. Default value: |
|
vtrhi |
Ratio of high threshold during value conversion. Default value: |
|
vrtol |
Ratio of tolerance during value conversion. The default value is vtlo/vsup. | |
currentmode |
Enables wreal current mode processing. Default value: |
|
|
Connect rule to build using the |
|
|
|
Build the "basic" connect rule |
|
|
|
Build the "full" connect rule |
|
|
|
Build inheritance-based connect rule. The connect rule defined using the You can use this argument instead of using the
|
|
|
|
Build the "full-fast" connect rule |
|
|
Default Value: Note: You can find the set of connect rule files that Cadence provides--including the " |
||
|
|
Used as the discipline name corresponding to the In the example below, the discipline name corresponding to the
Important: The
For continuous disciplines, use the elaboration
Note: Unlike in a connectmap card, the |
|
|
If set to Note: Conversion of HighZ state results in delay of one transient step. Example:
To enable the Example:
|
|
nox |
If set to 1, disables converting to logic X when the electrical signal is in between |
|
Examples
In the following example, all digital nets that connect to analog in the top.I3 scope have interface elements with vsup=4.5 and tr=1.2 ; all digital nets that connect to analog in the scope of instance top.I1 of cell mid1 have interface elements with vsup=1.8 ; all other nets use the global value, vsup=5.0 :
amsd{
...
ie vsup=5.0
ie inst=top.I3 vsup=4.5 tr=1.2n
ie vsup=1.8 cell=mid1 inst=top.I1
}
Here is an example showing how you can specify more than one instance (scope) to use the same supply voltage:
amsd{
...
ie vsup=4.5 inst="testbench.vlog_buf"
ie vsup=4.5 inst="testbench.vlog_buf1"
ie vsup=4.5 inst="testbench.vlog_buf2"
}
You can also specify more than one instance in a single statement like this:
amsd{
...
ie vsup=4.5 inst="testbench.vlog_buf testbench.vlog_buf1 testbench.vlog_buf2"
}
Here is an example showing how you can specify different instances (scopes) to use different supply voltages:
amsd{
...
ie vsup=1.8 inst="testbench.vlog_buf"
ie vsup=3.0 inst="testbench.vlog_buf1"
ie vsup=4.5 inst="testbench.vlog_buf2"
}
The following examples showing how you can specify a supply voltage you want to apply to an instance port, a cell port, a net, or to all domainless nets connected to a cell port:
amsd{
...
ie vsup=1.8 instport="top.I1.in" tr = 0.4n
}
amsd{
...
ie vsup=1.8 cellport="mid1.w" vtlo=0.7 vthi=1.5
}
amsd{
...
ie vsup=1.8 net="top.n1" rlo=150 rhi=240
}
amsd{
...
ie vsup=1.8 cellupport="mid2.w" rx=25
}
Here is an example showing how you can specify more than one scope on a single ie statement:
amsd{
...
ie vsup=1.8 cell="mid" inst="top.I1" cellupport="mid.w"
}
Here is an example showing how you can build a set of "full" connect rules using a 1.8 Volt supply value:
amsd{
ie vsup=1.8 connrules="full"
}
In the following example, the program applies the same custom discipline to cell mid1 and to instance top.I1 (because the parameter = value assignments in the ie statements are exactly the same):
amsd{
ie vsup=1.8 cell="mid1" tr=0.3n rlo=200
ie vsup=1.8 inst="top.I1" tr=0.3n rlo=200
}
The example below describes a global ie card with the default merged connect module insertion. In addition, it describes a scoped ie card for the divider block, which is parameterized for a split connect module insertion.
ie vsup=1.8ie vsup=3.2 mode=split cell=divider
The example below describes how the new vpso parameter can be used with the ie card to convert the PSO X state to a user-supplied voltage in AMS-CPF.
amsd{ie vsup=3.3 instport="testbench.vlog_buf.I1.in" vpso=0.1}
The example below describes how to specify the hierarchical dynamic voltage supply.
module top;
electrical e1, e2, e3;
electrical a11, a10, a21, a20, a3;
foo f1 (e1, a11, a10);
foo f2 (e2, a21, a20);
foo f3 (e3, a3, a3);
initial begin // simulation outputs
#10 $display(V(e1),,V(e2),,V(e3));
#20 $display(V(e1),,V(e2),,V(e3));
end
analog begin // setup supplies
V(a11) <+ 1.8;
V(a10) <+ 0.18;
V(a21) <+ 3.3;
V(a20) <+ 0.33;
end
endmodule
module foo(p, a1, a0);
output p, a1, a0;
electrical a1, a0; // local supplies
assign #20 p = 1;
endmodule
//amsd block
ie vddnet=a1 vssnet=a0 inst="top.f1 top.f2" // hierarchical DVS
ie vddnet=top.a21 vssnet=top.a10 inst=top.f3 // normal DVS
//command line
xrun top.vams sim.scs -ieinfo -hier_dvs
Note that hierarchical dynamic voltage supply works for a single identifier (not OOMR style) used in vddnet/vssnet, like a1/a0 in the above example.
When the simulation is run, the tool will insert three IEs:
top.e3__L2E_2_dynsup__ddiscrete_dynsup_full_fast_ie2 for the second IE card, as normal DVS
top.e2__L2E_2_dynsup__ddiscrete_dynsup_full_fast for the first IE card (Hierarchical DVS)
top.e1__L2E_2_dynsup__ddiscrete_dynsup_full_fast for the first IE card
The simulation result would be as follows:
0.18 0.33 0.18
1.8 3.3 3.3
