View Library Table of Contents Previous Next Open PDF to print book Email Comments Help Using Documentation Shut Down Cadence Documentation Server


Virtuoso® UltraSim Simulator User Guide
Product Version 18.1 January 2019


7 

Interactive Simulation Debugging

Overview of Interactive Simulation Debugging

The Virtuoso® UltraSim simulator interactive circuit debugging mode allows you to obtain design data, such as circuit elements and parameters, circuit topology, and instantaneous signal values. It can also be used to probe dynamic circuit behavior, including voltage and current waveforms simulated to the current time step.

The UltraSim[I]*> prompt is displayed (I is an integer) in interactive mode, indicating the Virtuoso UltraSim simulator is ready to receive interactive mode commands. The interactive commands shell allows you to apply any Tcl commands and constructs, and to redirect output of interactive shell commands to a file. All system commands supported by Tcl are also supported in the interactive mode.

To invoke the Virtuoso UltraSim simulator interactive mode:

ParagraphBullet
Use -i in the command line
ParagraphBullet
Use -cmd <command_file_name> in the command line
ParagraphBullet
Type Ctrl-C at any time after DC initialization

You can generate different types of output files in interactive mode:

 

netlist.icmd

Lists the history of all Virtuoso UltraSim simulator commands used.

netlist.ilog

Contains a list of commands and simulator outputs (copy of stdout file).

Note: The log file can be opened and closed during interactive mode, but only one log file is active at a time.

General Commands

The Virtuoso UltraSim simulator supports the following interactive simulation general commands:

ParagraphBullet
alias
ParagraphBullet
exec
ParagraphBullet
exit
ParagraphBullet
help
ParagraphBullet
history
ParagraphBullet
runcmd

alias

alias [alias_name [cmd_name]]

Description

This command is used to create the alias name (alias_name) for the existing interactive command cmd_name. If the command is used without arguments, the existing list of aliases is printed.

Note: Existing interactive mode commands cannot be used as an alias name.

 
ParagraphBullet
Using this command can overwrite the existing alias name (no warnings are generated).

Examples

For example

alias openlog open

tells the Virtuoso UltraSim simulator to create an openlog alias for the interactive mode command open.

In the next example

alias

provides a list of existing aliases.

In the next example

alias openlog    

prints the command aliased to openlog.

exec

exec unix_shell_command

Description

Allows you to execute any UNIX or Linux command.

Example

exec ls

Lists all of the files in the current working directory.

exit

exit

Description

This command is used to stop the Virtuoso UltraSim simulator and exit the simulation.

Example

UltraSim[1]*> exit

Log file "./simulation.ilog" closed

tells the simulator to end the simulation and exit (interactive log file is automatically closed).

help

help [cmd_name|-all]

Description

Use this command to display the cmd_name syntax and description. If cmd_name is not specified, a list of all interactive commands is printed. If the -all option is specified, the syntax for all interactive commands is printed.

Example

help read        

tells the simulator to display the read command syntax and description.

history

history

Description

The history or h command prints out a list of the last 30 interactive commands used. You can use !! to recall the last command in the interactive shell. To recall a previously used interactive command with an index, use !index.

Example

UltraSim[1]*> history

1 history

UltraSim[2]*> flush

UltraSim[3]*> !!

flush

UltraSim[4]*>!1

history
1 history
2 flush
3 flush
4 history

tells the simulator that history is the first Virtuoso UltraSim command (section [1]), flush is the second command (section [2]), and !! prints out the last command used (section [3]).

Note: Use !1 to print out the first command in the history list.

runcmd

runcmd [-v] cmd_file

Description

The run_cmd command reads the cmd_file and executes the sequence of interactive mode commands defined in the file. Multiple command files can be used, but run and stop commands are only executed from the main file (main file is the command file called from the Virtuoso UltraSim simulator command line or first read in by the runcmd file). To display the commands, set the -v option.

Example

runcmd chip.icmd        

tells the simulator to read and execute interactive commands from the chip.icmd file.

Log File Commands

The Virtuoso UltraSim simulator supports the following interactive simulation log file commands:

ParagraphBullet
close
ParagraphBullet
flush
ParagraphBullet
open

close

close

Description

This command is used to close the active log file.

Example

UltraSim[1]*> close

Log file "./simulation.ilog" closed

tells the simulator to close the active log file.

flush

flush

Description

Use this command to flush all of the waveform data, as well as the log file information, into related output files for the current time.

Example

UltraSim[1]*>flush

tells the simulator to flush or move all of the waveform and log file data for the current time point into related output files.

open

open [-a] logfile_name

Description

Opens the logfile_name file in the current working directory in which interactive mode commands and results can be recorded (Tcl interface and log file outputs are the same). If the -a option is set, the print out is appended to the existing log file (otherwise the existing log file is overwritten).

Note: Using this command automatically closes the previous log file.

Example

open chip.log        

tells the simulator to open the chip.log file and writes all interactive mode information into the file.

Analysis Commands

The Virtuoso UltraSim simulator supports the following interactive simulation analysis commands:

 

conn

conn -n node_name|-ni node_index [-level 0|1] [-num value] [ith=value]

Description

This command is used to report connectivity information for the node specified by name or node index. The amount of information reported is controlled by level and num and is used to dump elements (default=50). The conn command is generally used in conjunction with the describe and node commands to trace connectivity. For more information on node, element, or instance index, see the index command.

The level argument consists of:

ParagraphBullet
level 0 generates a summary of elements connected to the node, number of R/C/MOS/DIODE devices, and a description of each device. This is the default setting.
ParagraphBullet
level 1 generates a summary of elements connected to the node, number of R/C/MOS/DIODE devices, and shows all terminals.

The ith argument defines the current threshold to be applied, which is used as a criteria for listing channel-connected elements. When specified, UltraSim lists only those channel-connected elements that have current more than the ith value. The default value of ith is zero (all elements are listed).

Examples

In the following example

conn -n wl<5> -level 0

generates the following level 0 summary:

RES: Name=xpost0.xi0.xi5.xinv3.$#R43.$#R43_0, ID=0, res=1.10887

*                  NODE0:                  wl<5>

RES: Name=xpost0.xi0.xi5.xinv3.$#R43.$#R43_1, ID=1, res=22.7632

*                  NODE0:                  wl<5>

CAP: Name=xpost0.xi0.xi5.xinv3.$#R43.$#R43_4, ID=6, cap=9.37962e-16

*                  NODE0:                  wl<5>

Summary of devices connected to node wl<5>

2 Resistors, 1 Capacitors

In the next example

conn -n wl<5> -level 1

generates the following level 1 summary:

RES: Name=xpost0.xi0.xi5.xinv3.$#R43.$#R43_0, ID=0, res=1.10887

*                  NODE0:                  wl<5>

                   NODE1:                  xpost0.xi0.xi5.xinv3.$#R43.$#R43_4

RES: Name=xpost0.xi0.xi5.xinv3.$#R43.$#R43_1, ID=1, res=22.7632

*                  NODE0:                  wl<5>

                   NODE1:                  xpost0.xi0.xi5.xinv3.$#2

CAP: Name=xpost0.xi0.xi5.xinv3.$#R43.$#R43_4, ID=6, cap=9.37962e-16

*                  NODE0:                  wl<5>

                   NODE1:                  0

Summary of devices connected to node wl<5>

2 Resistors, 1 Capacitors

3 Channel connected and 0 Non-channel connected elements

describe

describe elem_name|-ei elem_index|-ii inst_index|-subckt subckt_name

Description

The describe command is used to print detailed information for given element or instance names, including element type, parameters, terminals, terminal voltages, element currents, conductances, and capacitances. If -ei elem_index is used, detailed information for the element with the index of elem_index is printed. If -ii inst_name is used, the detailed information for the instance with the instance_name index is printed. If -subckt subckt_name is used, the elements included in the subckt_name block are printed.

Examples

In the first example

describe xpost0.xi0.xi5.xinv3.xp0.m0

prints the following information:

MOS: Name=xpost0.xi0.xi5.xinv3.xp0.m0, TYPE=pmos, ID=2

+ m = 1.000000e+00 ad = 1.756000e+00 as = 1.178000e+00 l = 1.300000e-01 pd = 1.084800e+01
+ ps = 6.960000e+00 w = 6.200000e+00
DRAIN:vdd voltage = 3
GATE: xpost0.xi0.xi5.xinv3.$#0 voltage = 2.99998
SOURCE: xpost0.xi0.xi5.xinv3.$#2 voltage = 7.19185e-05

BULK: vpb voltage = 3

In the next example

*> describe x1.xi134

tells the Virtuoso UltraSim simulator to output the following information:

Instance      x1.xi134       (opad_1)

       x1.0           0      voltage = 0

       x1.vdd!        vdd!   voltage = 5

       x1.net364      a      voltage = 2.49906

       x1.pa          y      voltage = 2.33685

In the next example

*> index -i x1.xi134

0

*> describe -ii 0

returns the following information:

Instance      x1.xi134       (opad_1)

       x1.0           0      voltage = 0

       x1.vdd!        vdd!   voltage = 5

       x1.net364      a      voltage = 2.49906

       x1.pa          y      voltage = 2.33685

In the next example

*> describe -subckt inv

returns the following information:

mm11

mm12

elem_i

elem_i elem_name|-ei elem_index [-dc] [-term num_term]

Description

The elem_i command is used to print the instantaneous current for all branches of the specified elements at the current simulation time, or return current through the terminal if specified. MOS transistors, resistors, capacitors, inductors, diodes, and bipolar junction transistors are some of the supported elements.

Arguments

 

elem_name

The elements for which the instantaneous currents of all branches are printed

-ei

The option precedes the index of elements

elem_index

The index of elements for which the instantaneous currents of all branches are printed

-dc

The option to print the static (dc) current

-term

The option to print the terminal current (precedes the terminal number)

num_term

The terminal number for which the current is printed

Examples

In the following example

elem_i *.mm11

tells the Virtuoso UltraSim simulator to print the instantaneous current for all branches of the *.mm11 MOSFET at the current simulation time, and generates the following report:

*> elem_i *.mm11

MOS: Name=x1.mm11, MODEL=pmos, ID=0
         + w = 4.800000e-06 l = 1.440000e-07 m = 1.000000e+00
         DRAIN: current = -1.49252e-06
         GATE: current = 6.28497e-06
         SOURCE: current = -3.02198e-06
         BULK: current = -1.77047e-06
MOS: Name=x2.mm11, MODEL=pmos, ID=1
         + w = 4.800000e-06 l = 1.440000e-07 m = 1.000000e+00
         DRAIN: current = 1.6687e-08
         GATE: current = 2.38509e-06
         SOURCE: current = -2.36562e-06
         BULK: current = -3.61571e-08

In the next example

*> elem_i x2.mm11 -term 1
2.385089e-06
*> elem_i x2.mm11 -term 2
-2.365619e-06
*> set drncurrent [elem_i x2.mm11 -term 0]
1.668699e-08
*> puts "drain current = $drncurrent"
drain current = 1.668699e-08

tells the simulator to return the terminal current (-term option is used).

In the next example

elem_i *.mm11 -dc

tells the simulator to return only the static (dc) current, and generates the following report

*> elem_i *.mm11 -dc
MOS: Name=x1.mm11, MODEL=pmos, ID=0
         + w = 4.800000e-06 l = 1.440000e-07 m = 1.000000e+00
         DRAIN: current = 5.64378e-07
         GATE: current = 0
         SOURCE: current = -5.64377e-07
         BULK: current = -8.76415e-13
MOS: Name=x2.mm11, MODEL=pmos, ID=1
         + w = 4.800000e-06 l = 1.440000e-07 m = 1.000000e+00
         DRAIN: current = 1.17393e-06
         GATE: current = 0
         SOURCE: current = -1.17393e-06
         BULK: current = -1.29182e-15

exi

exi [-ith threshold][-v] elem_name [elem_name]|-ei elem_index [elem_index]

Description

The exi command reports the elements for the specified element name that have a current greater than the specified threshold current value (in amperes). The default value is 5e-5A and wildcards (*) are supported. For more information about wildcards, see "Wildcard Rules".

The results are printed either as a list of element names or indices. If -v is defined, the element indices are printed in a list called usim_index_list (if -v is not defined, the element names are printed). These lists are helpful when performing additional analyses on elements.

This command can also be used in a Tcl script. For example, the list can be reprinted using the puts $usim_index_list Tcl command.

Note: You can use the name command to find the element name that corresponds to an element index.

Examples

In the following example

exi -ith 1.0e-12 x1.m*

tells the Virtuoso UltraSim simulator to print out elements with the names that match x1.m* with a current greater than 1.0e-12A, and generates the following output:

UltraSim[3]*> exi -ith 1.0e-12 x1.m*

MOS: Name=x1.mm1, MODEL=pmos, ID=1 ElemKey(0x18e492a8), ModelCard(0x18b407b8)

+ w = 4.000000e-06 l = 1.800000e-07 m = 1.000000e+00
DRAIN: current = 4.68577e-12
GATE: current = 0
SOURCE: current = -4.68577e-12
BULK: current = -3.10931e-21

MOS: Name=x1.mm12, MODEL=nmos, ID=2 ElemKey(0x18e49d58), ModelCard(0x18b406b8)

+ w = 2.000000e-06 l = 1.800000e-07 m = 1.000000e+00
DRAIN: current = -4.68597e-12
GATE: current = 0
SOURCE: current = 2.88485e-12
BULK: current = 1.80068e-12

In the next example

exi -ith 1.0e-12 -v x1.*

tells the simulator to print out the usim_index_list, and generates the following output:

UltraSim[3]*> exi -ith 1.0e-12 -v x1.*

1 2

exitdc

exitdc

Description

This command is used to end a pseudo-transient simulation and start a transient simulation.

Example

UltraSim[1]*> exitdc

t=0.000000e+00 ...

tells the simulator to exit the dc analysis (warning message is also generated).

force

force (node_name [=] volt_value) ...|-ni (node_index [=] volt_value)...
[-rt ramp_time]

Description

This command forces the node voltage of specified nodes to a specific voltage value. Nodes can be specified by name (net_name1 net_name2 ...) or index (-ni index1 index2 ...). Voltage is applied until released or the end of the simulation is reached. If several force statements are activated, the current one overwrites the previous commands. The -rt ramp_time option defines the transition time from original value to the forced value. The default value of this option is 10ps.

Notes:

ParagraphBullet
The equal (=) sign is optional.
ParagraphBullet
The force operation is not performed if the net is connected to a static vsource dc=0 and one vsource port is connected to the solver ground. One solution is to replace the static vsource dc=0 with a PWL type vsource.
ParagraphBullet
To check if a net is connected to the static vsource dc=0, use the Virtuoso UltraSim .usim_opt nodecut_file=1 option.
Once the simulation starts, a netlist.nodecut file is created. Open the file and check the net in the node cut list. The net is shorted to solver node 0, so the force command is not applied to the net.
ParagraphBullet
To check if a specific force is applied during the simulation:
 
ParagraphBullet
Start Virtuoso UltraSim interactive mode and use force my_net1 2.
 
ParagraphBullet
Setup a short simulation time (for example, 1 ps) to run force in the solver.
 
ParagraphBullet
Run 1p -relative and check the values using value my_net1.

Examples

For example

force xi0.xi3.gate 3.0 net12 2.0

tells the Virtuoso UltraSim simulator to force v(xi0.xi3.gate) to 3.0V and v(net12) to 2.0V.

In the next example

force -ni 113 1.05        

tells the simulator to force nodes with index 113 to 1.05 V.

forcev

forcev vector logic_value [-rt ramp_time]

Description

This command is used to force nodes specified by the vector of node indices to a logic value. The threshold voltage for the logic 0 and 1 is defined by vl and vh options, respectively. The -rt ramp_time option defines the transition time from the original value to the forced value. The default value of this option is 10ps.

Example

set add [index -n add<3> add<2> add<1> add<0>]

forcev $add " 'b0101"

tells the Virtuoso UltraSim simulator to create a vector (set v) and then forces 'b01X10 to the vector (forcev). Given that vdd is 2.5V, add<3> and add<1> are forced to logic 0, corresponding to voltage 0.75V (vl is default 30% of vdd). add<2> and add<0> are forced to voltage 1.75V.

hier_tree

hier_tree [-level num ] [ -a ] [ -def ] [ -num count] [-subckt name]

Description

The hier_tree command is used to print the hierarchical tree for the specified subcircuit instances. If no subcircuit or instance name is specified, the Virtuoso UltraSim simulator starts from the top level of the design.

Arguments

 

-level

Limits the printed levels of hierarchy tree below the current level (default prints all levels).

-a

Prints the full hierarchical instance name (default prints only the local name).

-def

Prints the subcircuit name of the instance.

-num

Limits the number of printed instances (default is 50 instances).

-subckt

Specifies the instance from which the hierarchy tree is printed (default is top and wildcards are supported).

For more information about wildcards, see "Wildcard Rules".

Example

UltraSim[1]*>hier_tree -a

> xpost2(1)

> xpost2.xi0(2)

> xpost2.xi0.xi4(3)

> xpost2.xi0.xi4.xinv2(4)

> xpost2.xi0.xi4.xinv2.xn0(5)

> xpost2.xi0.xi4.xinv2.xp0(5)


UltraSim[2]*>hier_tree -a -def

> xpost2(decwl64b)

> xpost2.xi0(decwl8b)

> xpost2.xi0.xi4(trnoff)

> xpost2.xi0.xi4.xinv2(inv)

> xpost2.xi0.xi4.xinv2.xn0(nmos)

> xpost2.xi0.xi4.xinv2.xp0(pmos)

UltraSim[3]*>hier_tree -a -def -subckt xpost2.xi0

> xpost2.xi0.xi4(trnoff)

> xpost2.xi0.xi4.xinv2(inv)

> xpost2.xi0.xi4.xinv2.xn0(nmos)

> xpost2.xi0.xi4.xinv2.xp0(pmos)

tells the simulator to print the full hierarchical name for the levels defined by a number (section [1]), subcircuit name for each instance (section [2]), and the hierarchical tree for xpost2.xi0 (section [3]).

index

index -e elem_name|-n net_name|-i instance_name

Description

This command provides an index for net, element, or instance names. If -e elem_name is used, the elem_name index is printed. If -n net_name is used, the index of the net with net_name is printed. If -i instance_name is used, the instance_name index is printed.

Examples

For example

index -e xpost0.xi0.xi5.xinv3.xp0.m0        

tells the simulator to return an index for the xpost0.xi0.xi5.xinv3.xp0.m0 element.

In the next example

index -n xi1.xi9.xi7.net12        

returns an index for the xi1.xi9.xi7.net12 net.

In the next example

*> index -i x1.xi134

0

returns an index for the x1.xi134 instance.

match

match [ -e pattern1] [ -n pattern]

Description

This command is used to find all elements or nodes with names matching a specific pattern.

Arguments

 

-e

Prints the specified elements

-n

Prints the specified nodes

Example

UltraSim[1]*> match -e xpost0*

xpost0.xi7.xi1.xinv3.xn0.m0

xpost0.xi7.xi1.xinv3.xp0.m0

xpost0.xi7.xi2.xi81.xn0.m0

xpost0.xi7.xi2.xi81.xn1.m0

xpost0.xi7.xi2.xi81.xn2.m0


UltraSim[2]*> match -n xpost0.*

xpost0.xi7.xi7.xinv1.xp0.inh_vpb

xpost0.xi7.xi7.xinv1.xp0.s

xpost0.xi7.xi7.xinv2.xn0.d

xpost0.xi7.xi7.xinv2.xn0.g

xpost0.xi7.xi7.xinv2.xn0.inh_vnb

tells the simulator to print all elements and nodes with the xpost0* pattern.

meas

meas [ spice measurement statement ]

Description

The meas command is used to add measurements (SPICE syntax).

Example

UltraSim[1]*> meas tran period trig v(out) val=0.8 rise=2 targ v(out) val=0.8
rise=3

 

Succeed to set up the measure:

.meas tran tosc trig v(out) val=0.8 rise=2 targ v(out) val=0.8 rise=3

tells the simulator to use the meas command and measurement statement to obtain the period for the out signal.

name

name [ -ei elem_index] [ -ni net_index] | -ii instance_index

Description

Use this command to find the name of nets, elements, or instances by index. If -ei elem_index is used, the name of elements with elem_index is printed. If -ni net_index is used, the name of nets with net_index is printed. If -ii instance_index is used, the name of the instance with instance_index is printed.

Example

index -e xpost0.xi0.xi5.xinv3.xp0.m0

9

name -ei 9

xpost0.xi0.xi5.xinv3.xp0.m0

name -ni 5338        

tells the Virtuoso UltraSim simulator to return the name of nets with net index 5338.

In the next example

*> name -ii 0

x1.xi134

tells the simulator to return the name of instance index 0.

nextelem

nextelem

Description

Allows you to individually view all elements in the circuit. You can use nextelem 0 to view elements starting with the first one and nextelem <index> to view the elements directly.

Example

UltraSim[1]*> nextelem

name:v0 type:vsrc node0:vdd! node1:0

 

UltraSim[2]*> nextelem

name:c4 type:cap node0:net12 node1:0 capacitance:1.00000e-13

 

UltraSim[3]*> nextelem 0

name:v0 type:vsrc node0:vdd! node1:0

 

UltraSim[4]*> nextelem 3

name:xil5.mn type:nmos drn:net12 gate:net40 src:0 bulk:0 W:4.0000e-06 L:2.5000e-07

tells the simulator to retrieve the next element (sections [1] and [2]), restarts the iteration (section [3]), and displays the third element for viewing (section [4]).

node

node net_name|-ni net_index

Description

This command is used to print voltage information for given nets, including voltage, voltage slope (dv/dt), and node capacitance. Nets can be specified by name (net_name) or by index (-ni net_index).

Example

In the first example

node xpost0.xi7.xi7.xinv3.xp0.s

tells the Virtuoso UltraSim simulator to print node voltage and slope information, and generates the following output:

ode xpost0.xi7.xi7.xinv3.xp0.s : voltage = 7.16334e-05; (dV/dT) = 0
Ctot=1.037e-14

In the next example

node -ni 1

tells the simulator to perform an inquiry on the index of the specified node, and generates the following output:

node xpost0.xi7.xi7.xinv3.xp0.s : voltage = 7.16334e-05; (dV/dT) = 0
Ctot=1.345e-15

nodecon

nodecon [ val ]

Description

If val is specified, nodecon finds any nodes with connections greater than val. If val is not specified, nodecon finds nodes with the most connections, based on the netlist file. The report for each node contains the subcircuit name, node name, number of connections, and a Vsrc flag indicating if it is a voltage source.

Example

nodecon 100

0(3335)

vpb(112)

vnb(112)

vss(3335)

ad<7>(3335)

…    

tells the Virtuoso UltraSim simulator to report any nodes with more than 100 connections.

op

op op_file pattern

Description

This command is used to write the operating point (OP) at the current time to the op_file. If a pattern is specified, only the OP of nodes matching the pattern are printed. If multiple patterns are specified, only the last one is processed.

 
ParagraphBullet
The pattern syntax is only supported through the Tcl op statement. This syntax is not supported with the .op statement that is specified in the netlist.

Example

op chip.ic

tells the simulator to print the OP for all nets into the chip.ic file.

op chip.ic o?t

tells the simulator to match the o?t pattern and print the voltage of nodes (for example out) in the chip.ic file.

probe

probe -n net_name1 net_name2 ...|-ni net_index1 net_index2 ...

Description

The probe command is used to add analog waveform v(net_name1) and v(net_name2) to the waveform data list file. The added signal starts at the time it was added. You can also specify a node index using the -ni option.

Note: The probe command cannot be added when parameter storage format (PSF) is specified.

Examples

For example

probe -n fosc<1> fosc<2>

tells the simulator to add fosc<1> and fosc<2> to the fast signal database (FSDB) output file.

In the next example

probe -ni 255        

adds the analog waveform for nets with index 255 to the FSDB file.

release

release -all| net_name1 net_name2 ...|-ni net_index1 net_index2 ...

Description

This command is used to release forced voltage from specific nodes. Nodes can be specified by name (net_name1 net_name2 ...) or by index (-ni index1 index2 ...).

Examples

For example

release xi0.xi3.gate net12

tells the Virtuoso UltraSim simulator to release v(xi0.xi3.gate) and v(net12).

In the next example

release -ni 113 105        

tells the simulator to release nodes with index 113 and 105.

In the next example

release -ni $v         

releases nodes specified by $v vector.

restart

restart filename

Description

The restart command allows you to load a previously saved intermediate state (save) and to continue the simulation starting at the saved time point. To restore the database results from a previously saved file (in netlist or interactive mode) and continue the simulation, use filename. When restarting the simulation from interactive mode at an earlier time, the output file contains an .rs# suffix with # representing the number of restarts.

Example

UltraSim[1]*> restart time@1.000000e-08

tells the simulator to restart the saved time@1.000000e-08 file.

Note: The time@1.000000e-08 file can be derived from .usim_save in the netlist file or from the save interactive command.

run

run [time [-absolute]|dtime -relative|numb_events -absev|numb_events -relev]

Description

This command is used to continue the simulation. If arguments are not specified, the simulation continues until the next break point or the end of the simulation is reached. The run arguments can be used to specify the following actions:

ParagraphBullet
-absolute specifies the next break point by time, starting from the beginning of the simulation.
ParagraphBullet
-relative specifies the next break point from the current time.
ParagraphBullet
-absev and -relev specifies the next break point by the number of events (absolute or relative, respectively).

The next break point cannot occur before the current time or number of events (this condition is always true for relative arguments). If the break point is specified by a stop command or by any other means, and is closer than specified in the run command, the simulation stops at the nearest break point.

Examples

For example

run 25n

tells the Virtuoso UltraSim simulator to continue the simulation for 25 ns and then stop.

In the next example

run 5n -relative

tells the simulator to continue the simulation, starting from the current time, and stops after 5 ns.

In the next example

stop -create -time 20n -relative

run 30n -relative

continues the simulation, starting from the current time, and stops after 20 ns.

In the next example

run 10000 -relev

continues the simulation, starting from the current time, and stops after 1000 events are processed.

save

save filename

Description

The save command allows you to stop during the simulation and take a snapshot of the database. To save the simulation database at the current time to the filename@time file, use the filename argument.

Note: If filename is not specified, a file with the name design name.save@time is automatically generated.

Example

UltraSim[1]*> stop -create -time 10n

 

UltraSim[2]*> run

 

UltraSim[3]*> save time
Simulation state has been scheduled for the current time point.

 

UltraSim[4]*> run

tells the simulator to stop at transient time point 10 n (section [1]), continues the simulation (section [2]), saves the time point time (section [3]), and then continues the simulation to completion (section [4]). After the simulation ends, the time@1.000000e-8 file is created.

Note: You can use the restart interactive command to continue the simulation by loading the saved file.

spfname

spfname -se element_spf_name | -sn node_spf_name | -ie element_internal_name | -in node_internal_nameDescription

Description

To save memory, Ultrasim uses compact names for stitched elements and nodes. The compact names follow the format $#.$#RXXX, such as in $#.$#R0_0. The spfname command prints the corresponding names as used in the DSPF/SPEF file and vice versa. To enable this command, set the following option in the netlist:

.usim_opt spfenablenameutil = 1

The default value for spfenablenameutil is 0.

 

-se element_spf_name

The compact name for the element with the name element_spf_name in the DSPF/SPEF file is printed.

-sn node_spf_name

The compact name for the node with the name node_spf_name in DSPF/SPEF file is printed.

-ie element_internal_name

The name of the element whose compact name is element_internal_name is printed.

-in node_internal_name

The name of the node whose compact name is node_internal_name is printed.

Example

UltraSim[4]*> spfname -sn xi3852:n1

$#R0.$#R0_2

tells the simulator to print the compact name for the subnode xi3852:n1 in the DSPF file.

stop

stop -create ((-time time|-event ev_number) ([-absolute]|-relative))|-delete
breakpoint_index|-show [breakpoint_index ]

Description

This command is used to pause the simulation if any of the following conditions are met:

ParagraphBullet
-show prints a list of break points.
ParagraphBullet
-delete deletes a break point.
ParagraphBullet
-create -time (time [absolute]|dtime -relative) sets a break point at <time|dtime>.
ParagraphBullet
-create -event (events [-absolute]|devents -relative) sets a break point after <events|devents> events are triggered.

If arguments are not specified, all existing break points are automatically listed.

Example

stop -create -event 1000

1

stop -show

1 -ne 1000

stop -delete 15 29

tells the simulator to delete all break points with index=15 and 29.

time

time [ -v]

Description

The time command is used to print the current and final simulation time in seconds. If the -v option is specified, the current and end time are printed as a string. If unspecified, only the value of current time is printed, and it can be used as the Tcl variable.

Example

time -v

tells the simulator to print the current time=4.679620e-08 and end simulation time=1.000000e-07.

value

value [ format] node_name node_name ...|-ni node_index node_index...

Description

The value command prints the voltage or logic value of selected nodes. The format option supports the following values:

ParagraphBullet
%g (default) and %e - floating numbers
ParagraphBullet
%d - integer
ParagraphBullet
%b - binary
ParagraphBullet
%o - octal
ParagraphBullet
%h - hexadecimal

Formats %e, %g, and %d represent the analog node values and %b, %o, and %h the logic values. Logic values are calculated for the base of L0 and L1, where L0 = 0.0 v and L1 = 5.0 v (default). The default L0 and L1 values can be changed using .usim_opt vh=new value vl=new value.

Example

UltraSim[1]*> value 14
5.0198

 

UltraSim[2]*> value %b 14
`b1

 

UltraSim[3]*> value %o 14
'o4

 

UltraSim[4]*> value %h 14
'h8

 

UltraSim[5]*> value %d 14
5

 

UltraSim[6]*> value %e 14
5.019798e+00

tells the simulator to find the value of node 14 for each format defined by %b, %o, %h, %d, and %e.

vni

vni [-threshold value]

Description

The vni command prints the voltage source node with a current greater than or equal to the threshold value (default is 0).

Example

vni -threshold 1.0e-12

tells the Virtuoso UltraSim simulator to print the voltage source node with a current greater than or equal to 1.0e-12 A, and generates the following output:

*> vni -threshold 1.0e-12

Vdd current=4.68577e-12


Return to top of page

View Library Table of Contents Previous Next Open PDF to print book Email Comments Help Using Documentation Shut Down Cadence Documentation Server

For support, see Cadence Online Support service.

Copyright © 2019, Cadence Design Systems, Inc.
All rights reserved.