WHK GSG ZKF Qur TNBN
WHK GSG ZKF Qur TNBN
WHK GSG ZKF Qur TNBN
Reference
Version H-2013.03, March 2013
Copyright and Proprietary Information Notice
Copyright © 2013 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and proprietary
information that is the property of Synopsys, Inc. The software and documentation are furnished under a license agreement and
may be used or copied only in accordance with the terms of the license agreement. No part of the software and documentation may
be reproduced, transmitted, or translated, in any form or by any means, electronic, mechanical, manual, optical, or otherwise, without
prior written permission of Synopsys, Inc., or as expressly provided by the license agreement.
Destination Control Statement
All technical data contained in this publication is subject to the export control laws of the United States of America.
Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader’s responsibility to
determine the applicable regulations and to comply with them.
Disclaimer
SYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH
REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
Trademarks
Synopsys and certain Synopsys product names are trademarks of Synopsys, as set forth at
http://www.synopsys.com/Company/Pages/Trademarks.aspx.
All other product or company names may be trademarks of their respective owners.
Synopsys, Inc.
700 E. Middlefield Road
Mountain View, CA 94043
www.synopsys.com
Printed in U.S.A.
Related Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Customer Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
iii
Contents
load_operating_point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
load_parameter_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
load_vector_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
load_verilog_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
map_ba_terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
meas_post . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
probe_waveform_current . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
probe_waveform_logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
probe_waveform_va. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
probe_waveform_voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
pulse_oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
release_node_voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
report_dangling_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
report_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
report_node_alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
report_node_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
report_operating_point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
report_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
set_active_net_flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
set_ams_view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
set_array_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
set_ba_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
set_bus_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
set_capacitor_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
set_ccap_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
set_ccap_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
set_dc_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
set_duplicate_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
set_flash_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
set_floating_node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
set_hotspot_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
iv
Contents
set_inductor_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
set_logic_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
set_measure_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
set_message_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
set_model_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
set_model_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
set_monte_carlo_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
set_multi_core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
set_multi_rate_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
set_oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
set_partition_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
set_powernet_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
set_powernet_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
set_probe_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
set_probe_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
set_resistor_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
set_restore_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
set_sample_point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
set_save_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
set_sim_case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
set_sim_hierid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
set_sim_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
set_sram_characterization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
set_synchronization_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
set_synchronization_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
set_tolerance_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
set_tolerance_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
set_vector_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
set_waveform_format. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
set_waveform_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
set_wildcard_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
v
Contents
set_zstate_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
skip_circuit_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
vi
Contents
isearch_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
iset_break_point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
iset_diagnostic_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
iset_interactive_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
iset_save_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
iset_zstate_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
vii
Contents
viii
About This Manual
Related Publications
For additional information about the CustomSim tool, see
■
The documentation installed with the CustomSim software.
■ The CustomSim Release Notes, available on SolvNet (see Accessing
SolvNet on page xi)
■
Documentation on the Web, which provides HTML and PDF documents and
is available on SolvNet (see Accessing SolvNet on page xi)
You might also want to refer to the documentation for the following related
Synopsys (and third-party) products:
■ HSPICE®
■
Eldo™
■
Spectre®
Conventions
The following conventions are used in Synopsys documentation.
Convention Description
■
Purple Within an example, indicates information of special
interest.
■
Within a command-syntax section, indicates a default
value, such as:
■
Bold Within syntax and examples, indicates user input—text
you type verbatim.
■
Indicates a graphical user interface (GUI) element that has
an action associated with it.
Edit > Copy Indicates a path to a menu command, such as opening the
Edit menu and choosing Copy.
Convention Description
Customer Support
Customer support is available through SolvNet online customer support and
through contacting the Synopsys Tecnical Support Center.
Accessing SolvNet
SolvNet includes an electronic knowledge base of technical articles and
answers to frequently asked questions about Synopsys tools. SolvNet also
gives you access to a wide range of Synopsys online services, which include
downloading software, viewing Documentation on the Web, and entering a call
to the Support Center.
To access SolvNet:
1. Go to the SolvNet Web page at http://solvnet.synopsys.com.
2. If prompted, enter your user name and password. (If you do not have a
Synopsys user name and password, follow the instructions to register with
SolvNet.)
If you need help using SolvNet, click Help on the SolvNet menu bar.
use CustomSim commands. You can also set the CustomSim tool to use a full
Tcl interpreter, as described in Enabling Tcl Mode.
All commands and settings in the command file are processed as if the
command were placed on the final line of the netlist. That is, the commands
used in the command file override any CustomSim commands used in the
netlist file.
For example:
.option XA_CMD="set_sim_level -level 5"
Spectre format netlists use an options analysis statement. See the following
syntax:
user_xa_commands options xa_cmd="xa_command arg arg arg"
For example:
myoptions options xa_cmd="set_sim_level -level 5"
To enter the CustomSim tool interactive mode, use the -intr command-line
flag. This command-line flag is used for all supported netlist formats.
-intr [time[unit]]
time
The time at which the CustomSim tool enters interactive mode. If you do not
specify a time, the CustomSim tool does not enter interactive mode until you
enter Ctrl-C.
unit
The unit of measure for time. Default is second. There can be no space
between the time and the unit, or the CustomSim tool terminates the
simulation with an error message.
Ctrl-C
After entering the -intr flag, you can optionally press Ctrl-C to enter
interactive mode.
Important: If you do not specify -intr on the command line, the
CustomSim tool cannot enter interactive mode. If you
enter Ctrl-C, the CustomSim tool prompts you to abort
or continue the simulation.
Positive Negative
1 0
yes no
true false
on off
Syntax
-inst inst_name [...]
-subckt subckt_name [...]
-inst inst_name [...] -subckt subckt_name [...]
Arguments
Argument Description
Description
Commands such as set_sim_level and set_ams_view take
instance_spec as an argument. The instance_spec argument specifies
the instances upon which the command is applied. The -inst switch is used
alone to provide a set of instance names. The -subckt switch is used alone to
provide a set of subcircuit names. When both the -inst and -subckt
switches are used, the command is applied to the named instances—only in
the named subcircuit.
Example
Example 1 applies a command to instances x1.x2 and x1.x4:
Example 1
-inst x1.x2 x1.x4
Command Categories
Table 3 categorizes the CustomSim batch commands. See for a list of the
interactive commands, see Chapter 3, CustomSim Interactive Command
Syntax.
Table 3 CustomSim command categories
Diagnostics check_node_excess_rf
check_node_hotspot
check_node_quick_rf
check_node_zstate
check_timing_edge
check_timing_hold
check_timing_pulse_width
check_timing_setup
force_node_voltage
probe_waveform_current
probe_waveform_logic
probe_waveform_va
probe_waveform_voltage
release_node_voltage
report_power
set_hotspot_option
set_sample_point
set_zstate_option
Post-layout / load_ba_file
Back-annotation map_ba_terminal
set_ba_option
report_node_alias
report_node_cap
report_operating_point
report_power
set_active_net_flow
set_ams_view
set_array_option
set_ba_option
set_bus_format
set_capacitor_option
set_ccap_level
set_ccap_option
set_dc_option
set_duplicate_rule
set_flash_option
set_floating_node
set_hotspot_option
set_inductor_option
set_logic_threshold
set_measure_format
set_message_option
set_model_level
set_model_option
set_monte_carlo_option
set_multi_core
set_multi_rate_option
set_oscillator
set_partition_option
set_powernet_level
set_powernet_option
set_probe_option
set_probe_window
set_resistor_option
set_restore_option
set_sample_point
set_save_state
set_sim_case
set_sim_hierid
set_sim_level
set_sram_characterization
set_synchronization_level
set_synchronization_option
set_tolerance_level
set_tolerance_option
set_vector_option
set_waveform_option
set_wildcard_rule
set_zstate_option
skip_circuit_block
source
add_rc_element
Inserts a resistor or capacitor between two nodes. If you specify a subcircuit,
the extra resistance or capacitance element is inserted between the two nodes
locally inside the subcircuit.
Syntax
add_rc_element -type (r|R|c|C) -n1 node1 -n2 node2 -val RCval
-subckt subcircuit_name
Argument Description
-n1 node1 Specifies that the first node of the element is connected
to node1, which a port, global, or local node to the
subcircuit name.
Examples
add_rc_element -type R -n1 nv1 -n2 vdd -val 1e6 -subckt memcell
Adds a resistor with a value of 1e6 Ohm between nodes nv1 and vdd inside
the memcell subcircuit.
check_node_excess_rf
Performs an excessive rise/fall timing check.
Syntax
check_node_excess_rf -node node_name {node_name}
-title title_name [-fanout value] [-rtime rise_time]
[-ftime fall_time] [-utime ustate_time]
[-loth logic_low_voltage] [-hith logic_high_voltage]
[-twindow tstart [{tstop}] {tstart [tstop]}]
[-subckt subckt_name] [-error_file output_file_name]
[-limit level]
Argument Description
-node node_name Defines the signal node name, which can be the node
{node_name} name of a single node or a node name with the asterisk (*)
wildcard character that represents a group of node names.
The behavior of asterisk (*) character is controlled by
set_wildcard_rule on page 169.
You must specify this argument first.
-title title_name Defines the title name of this excess rise/fall time check.
Errors that occur during this check are listed in the .errt
file. The name of the excessive rise/fall time error starts
with this title name. This name is useful when there are
multiple excessive rise/fall time checks used for a single
run.
Argument Description
-rtime rise_time Defines the rise time of the signal as time duration t2–t1.
t1 is the time when the rising signal voltage crosses the
voltage level logic_low_voltage. t2 is the time when
the same continuously rising signal voltage crosses the
voltage level logic_high_voltage. The default value is
1 ns.
-ftime fall_time Defines the fall time of the signal as t4-t3. t3 is the time
when the falling signal voltage crosses the voltage
logic_high_voltage. t4 is the time when the same
continuously falling signal voltage crosses the voltage
logic_low_voltage. The default value is 1 ns.
-utime ustate_time Defines the time period when the signal voltage is
between logic_low_voltage and
logic_high_voltage. The default is 1ns. Note that
-utime checking is only performed when a transition is
incomplete, which means it fails to go from low-to-high or
high-to-low.
-loth Defines the logic low voltage for the signal. The default is
logic_low_voltage the same as the set_logic_threshold value.
-hith Defines the logic high voltage for the signal and ref node.
logic_high_voltage The default is the same as the set_logic_threshold value.
Argument Description
-twindow tstart Performs the check within the time window defined by
tstop {tstart tstart tstop {tstart tstop}. The tstart and
tstop} tstop must come in pairs, except for the final window
where if tstop is not specified it is be assumed to be the
end of the simulation. The final tstop can also be the end
or END keyword.
-error_file Specifies the output error file name for any excessive rise/
output_file_name fall time violations. If the output file name is not specified,
the default output file use the output prefix name by –o
follow by .errt.
For example, if –o xa_default, then the output error file
is xa_default.errt. If –error_file is specified, the
output file name is the user-specified
output_file_name with the .errt extension.
-limit level Specifies the hierarchical depth to which the nodes are
printed when the asterisk (*) characters are used as the
first character of a node name or subcircuit name. If not
specified, this setting defaults to 3.
Description
When performing an excess rise/fall time check, if violations occur, they are
stored in a new CustomSim output file, output_file_name.err. The output
file name is the prefix name from the XA –o command line argument. If –o is
not specified, it is the prefix of the input file name.
By default, the CustomSim tool uses 30%/70% as the logic threshold value
based on the rail-to-rail voltage it detects on the signal. The logic threshold
value can be modified by the set_logic_thresholdcommand. If –loth and –
hith are specified, they take precedence over the default logic threshold value
specified by the set_logic_threshold command if the same node name is
applied to both commands.
Examples
check_node_excess_rf -node output -title exrf_check1 -rtime \
2ns -ftime 2ns
Sets up excessive rise/fall time check with output signal with title name
exrf_check1, and rise time of 2ns and fall time of 2ns.
check_node_excess_rf –node output –title exrf_check1 \
-rtime 2ns -ftime 2ns -twindow 50ns 1000ns
Same as the previous example, but adds a start time of 50ns and stop time of
1000ns.
check_node_excess_rf –node output –title exrf_check1 \
-rtime 2ns -ftime 2ns –utime 2ns -twindow 50ns 200ns 400ns \
800ns
Same as the previous example, but adds multiple start and stop time, start at
50ns stop at 200ns then start at 400ns and stop at 800ns. It also adds a
u-state check of 2ns.
check_node_excess_rf –node dout* –title exrf_check1 \
-rtime 2ns -ftime 2ns -error_file xa_excessive_rise_fall
Same as the first example, but adds a wildcard (*) to match multiple signals and
appends the output violation file to xa_excessive_rise_fall.errt.
check_node_hotspot
Checks for hot spots in a design.
Syntax
check_node_hotspot -node node_name {node_name}
Argument Description
-node node_name Specifies the node names to check for hot spots.
{node_name}
Description
This command checks for hot spots in a design and reports the information in
an output file with prefix of .hotspot. Note that hot spot node analysis does
not apply to input nodes.
The information for each specified node includes:
■
Average node capacitance
• Lumped from netlist, wiring, transistor gate, and diffusion capacitances.
■
Toggle count
• Total number of logic toggles for the node.
■
Average charging current
• Average current flowing into the capacitances connected to the node.
■
Average discharge current
• Average current flowing out of the capacitances connected to the node.
At the end of the output file, check_node_hotspot also reports:
■
Total number of non-input nodes.
■
Total number of nodes toggling.
■
Total charging current.
■
Total discharging current.
By default, nodes are not reported when the sum of the capacitive charging and
discharging currents is less than the hot spot factor of 0.5 multiplied by the
sum of the node with the largest capacitive currents. You can modify this
suppression of small current nodes with the set_hotspot_option command.
check_node_quick_rf
Performs a quick rise/fall timing check.
Syntax
check_node_quick_rf -node node_name {node_name}
-title title_name [-fanout value] [-rtime rise_time]
[-ftime fall_time] [-loth logic_low_voltage]
[-hith logic_high_voltage]
[-twindow tstart [{tstop}] {tstart [tstop]}]
[-subckt subckt_name] [-error_file file_name]
[-limit level] [-except_node node_name {node_name}]
Argument Description
-node node_name Defines the signal node name, which can be the node
{node_name} name of a single node or a node name with the asterisk (*)
wildcard character that represents a group of node names.
The behavior of asterisk (*) character is controlled by
set_wildcard_rule on page 169.
You must specify this argument first.
-title title_name Defines the title name of this quick rise/fall time check.
Errors that occur during this check are listed in the .errt
file. The name of the quick rise/fall time error starts with
this title name. This name is useful when there are multiple
quick rise/fall time checks used for a single run.
-rtime rise_time Defines the rise time of the signal as time duration t2–t1.
t1 is the time when the rising signal voltage crosses the
voltage level logic_low_voltage. t2 is the time when
the same continuously rising signal voltage crosses the
voltage level logic_high_voltage The default value is
1 ns.
-ftime fall_time Defines the fall time of the signal as t4-t3. t3 is the time
when the falling signal voltage crosses the voltage
logic_high_voltage. t4 is the time when the same
continuously falling signal voltage crosses the voltage
logic_low_voltage. The default value is 1 ns.
-loth Defines the logic low voltage for the signal. The default is
logic_low_voltage the same as the set_logic_threshold value.
Argument Description
-hith Defines the logic high voltage for the signal and ref node.
logic_high_voltage The default is the same as the set_logic_threshold value.
-twindow tstart Performs the check within the time window defined by
tstop {tstart tstart tstop {tstart tstop}. The tstart and
tstop} tstop must come in pairs, except for the final window
where if tstop is not specified it is be assumed to be the
end of the simulation. The final tstop can also be the end
or END keyword.
-error_file Specifies the output error file name for any excessive rise/
output_file_name fall time violations. If the output file name is not specified,
the default output file use the output prefix name by –o
follow by .errt.
For example, if –o xa_default, then the output error file
is xa_default.errt. If –error_file is specified, the
output file name is the user-specified
output_file_name with the .errt extension.
-limit level Specifies the hierarchical depth to which the nodes are
printed when the asterisk (*) characters are used as the
first character of a node name or subcircuit name. If not
specified, this setting defaults to 3.
Description
When performing an quick rise/fall time check, if violations occur, they are
stored in a new CustomSim output file, output_file_name.errt. The output
file name is the prefix name from the XA –o command line argument. If –o is
not specified, the default input file name prefix is xa.
By default, the CustomSim tool uses 30%/70% as the logic threshold value
based on the rail-to-rail voltage it detects on the signal. The logic threshold
value can be modified by the set_logic_thresholdcommand. If –loth and –
hith are specified, they take precedence over the default logic threshold value
Sets up quick rise/fall time check with output signal with title name
quick_rf_check1, and rise time of 2ns and fall time of 2ns.
check_node_quick_rf –node output –title quick_rf_check1 \
-rtime 2ns -ftime 2ns -twindow 50ns 1000ns
Same as the previous example, but adds a start time of 50ns and stop time of
1000ns.
check_node_quick_rf –node dout* –title quick_rf_check1 \
-rtime 2ns -ftime 2ns -error_file xa_quick_rise_fall
Same as the first example, but adds a wildcard (*) to match multiple signals and
appends the output violation file to xa_quick_rise_fall.errt.
check_node_zstate
Checks for nodes in a high-impedance state.
Syntax
check_node_zstate -node node_name {node_name}
-title title_name [-ztime z_time]
[-twindow tstart [tstop] {tstart [tstop]}]
[-tstep tstep_value] [-fanout <0|1|2>]
[-except_node node_name {node_name}]
[-subckt subckt_name {subckt_name}]
[-except_subckt subckt_name {subckt_name}]
[-report port|all] [-error_file output_file_name]
[-numv value]
Argument Description
-ztime z_time Defines the period for which a node must remain in a high
impedance state to be reported as a high impedance
node. If not specified, the default is 5ns.
-twindow tstart Performs the check within the time window defined by
tstop {tstart tstart tstop {tstart tstop}. The tstart and
tstop} tstop must come in pairs, except for the final window
where if tstop is not specified it is be assumed to be the
end of the simulation. The final tstop can also be the end
or END keyword.
Argument Description
Description
This command enables the CustomSim tool to diagnose specified nodes
staying in a high-impedance (floating) state for a specific period of time. The
detected nodes are reported to an error file with suffix of .errz.
A node stays in a high-impedance state if there is no conducting path from any
voltage source to the node. A conducting path consists of conducting elements.
An element is conducting if that specific element meets the following criteria:
Device Rule
NMOS Vgs > Vth (rule=1) || Ids > idsth (rule=2) || Vg > VDD-0.1
(rule=3)
The default for idsth is 1e-8A. The default rule is 1 & 2.
PMOS Vgs < Vth (rule=1) || Ids > idsth (rule=2) || Vg < 0.1 (rule=3)
The default for idsth is 1e-8A. The default rule is 1 & 2.
Device Rule
check_timing_edge
Performs an edge timing check.
Syntax
check_timing_edge -node node_name {node_name}
-title title_name -ref ref_name -min_time min_time
-max_time max_time [-window window_limit]
[-trigger trigger_type] [-loth logic_low_voltage]
[-hith logic_high_voltage]
[-twindow tstart [tstop] {tstart [tstop]}]
[-subckt subckt_name] [-error_file output_file_name]
[-data_edge_type edge_type] [-ref_edge_type edge_type]
[-rule 1|2]
Argument Description
-node node_name Defines a signal node name which can be the node name
{node_name} of a single node or a node name with the asterisk (*)
wildcard character that represents a group of node names.
The wildcard is limited to one hierarchy only.
Argument Description
-title title_name Defines the title name of this edge timing check. Errors
that occur during this check are listed in the .errt file.
The name of the edge timing error starts with this title
name. This name is useful when there are multiple edge
timing checks used for a single run.
-min_time min_time Defines the lower boundary of the timing edge difference
between the signal and reference nodes. A timing edge
error is reported when the timing edge difference is less
than min_time. The timing edge difference is calculated
only for the pair of permissible state transitions at the
signal node and the reference node.
-max_time max_time Defines the upper boundary of the timing edge difference
between the signal and reference nodes. A timing edge
error is reported when the timing edge difference is greater
than max_time. The timing edge difference is calculated
only for the pair of permissible state transitions at the
signal node and the reference node.
Argument Description
-loth Defines the logic low voltage for the signal. The default is
logic_low_voltage the same as the set_logic_threshold value.
-hith Defines the logic high voltage for the signal. The default is
logic_high_voltage the same as the set_logic_threshold value.
-twindow tstart Performs the check within the time window defined by
tstop {tstart tstart tstop {tstart tstop}. The tstart and
tstop} tstop must come in pairs, except for the final window
where if tstop is not specified it is be assumed to be the
end of the simulation. The final tstop can also be the end
or END keyword.
-error_file Specifies the output error file name for any edge timing
output_file_name violations. If the output file name is not specified, the
default output file use the output prefix name by –o follow
by .errt.
For example, if –o xa_default, then the output error file
is xa_default.errt. If –error_file is specified, the
output file name is the user-specified
output_file_name with the .err extension.
Argument Description
-rule 1|2 Selects the rule of edge timing checking. The default is 1,
which checks at every transition. When set to 2, it follows
the HSIM® behavior, which is to compare the edge time
difference between the most recent target signal transition
and reference signal transition only.
The qualified target-reference signal pair can vary
depending on their transition order. For example, if there is
a target signal transition, this check looks for the reference
signal transition, which happens prior to and also most
recently to this target signal transition. Similarly, if there is
a reference signal transition, this check looks for the target
signal transition, which happens prior to and also most
recently to this reference signal transition.
Description
When performing an edge timing check, if violations occur, they are stored in a
new CustomSim output file, output_file_name.err. The output file name is
the prefix name from the CustomSim –o command line argument. If –o is not
specified, it is the prefix of the input file name.
By default, the CustomSim tool uses 30%/70% as the logic threshold value
based on the rail-to-rail voltage it detects on the signal. The logic threshold
value can be modified by the set_logic_threshold command. If –loth and –
hith are specified, they take precedence over the default logic threshold value
specified by the set_logic_threshold command if the same node name is
applied to both commands.
Examples
check_timing_edge –node data -ref ctrl –ref_edge_type rise \
–title edge_check -min_time 2ns –max_time 5ns \
-error_file xa_edge
When node data has a state transition, such as at time t2, the time edge
difference t2-t1 must be within the range of 2ns for the -min_time and 5ns for
the -max_time. Otherwise, a timing edge error is reported to the output error
file xa_edge.errt with the title name edge_check. Time t1 is the most
recent rise state transition time at node ‘ctrl’ before time t2. When node ctrl
has a rise state transition at time t4, the time edge difference t4-t3 must be
within the range of 2ns and 5ns. Otherwise a timing edge error is also
reported. The time t3 is the most recent state transition time at node data
before time t4.
check_timing_edge –node data -ref ctrl –ref_edge_type rise \
–title edge_check -min_time 2ns –max_time 5ns -trigger input \
-window 10ns -error_file xa_edge
Same as the previous example, except the edge error is reported only when t1-
t2 is less than 2ns or is less than 10ns but greater than 5ns. The time t2 is the
most recent state transition time at node data before time t1.
check_timing_edge –node input* \
-ref ctrl –ref_edge_type rise –title edge_check -min_time \
0ns –max_time 8ns
This example checks if the input* edge changes occurs between 0ns and
8ns of the ctrl rising edge, when the reference signal ctrl rises or input*
changes. The error report to the default output_name.errt file with the title
edge_check.
check_timing_hold
Performs a hold timing check.
Syntax
check_timing_hold -node node_name {node_name}
-ref ref_name -hold_time hold_time -title title_name
[-window window_limit] [-hith logic_high_voltage]
[-loth logic_low_voltage]
Argument Description
-node node_name Defines a signal node name which can be the node name
{node_name} of a single node or a node name with the asterisk (*)
wildcard character that represents a group of node names.
The wildcard is limited to one hierarchy only.
-ref ref_name Defines the reference node name and must be a single
node name. A wildcard is not allowed.
-hold_time Specifies the hold time. The signal should not change to
hold_time the specified edge to check for rising or falling conditions
(rising edge only, falling edge only, or both) between Tref
(the time the reference signal edge changes) -
hold_time until Tref if hold_time is positive. Note that
the -window window_limit argument is ignored for a
positive hold_time.
-loth Defines the logic low voltage for the signal. The default is
logic_low_voltage the same as the set_logic_threshold value.
-hith Defines the logic high voltage for the signal. The default is
logic_high_voltage the same as the set_logic_threshold value.
-loth Defines the logic low voltage for the signal. The default is
logic_low_voltage the same as the set_logic_threshold value.
-twindow tstart Performs the check within the time window defined by
tstop {tstart tstart tstop {tstart tstop}. The tstart and
tstop} tstop must come in pairs, except for the final window
where if tstop is not specified it is be assumed to be the
end of the simulation. The final tstop can also be the end
or END keyword.
Argument Description
-error_file Specifies the output error file name for any hold violations.
output_file_name If the output file name is not specified, the default output
file use the output prefix name by –o followed by .errt.
For example, if –o xa_default, then the output error file
is xa_default.errt. If –error_file is specified, the
output file name is the user-specified
output_file_name with the .errt extension.
Description
When performing a hold check, if violations occur, they are stored in a new
CustomSim output file, output_file_name.errt. The output file name is the
prefix name from the XA –o command line argument. If –o is not specified, it is
the prefix of the input file name.
By default, the CustomSim tool uses 30%/70% as the logic threshold value
based on the rail-to-rail voltage it detects on the signal. The logic threshold
value can be modified by the set_logic_threshold command. If –loth and –
hith are specified, they take precedence over the default logic threshold value
specified by the set_logic_threshold command if the same node name is
applied to both commands.
Examples
check_timing_hold –node data -title hold_check -ref clk \
-hold_time 1.2ns -error_file RAM_timing.error
Specifies a hold timing check with clk as the reference node and “data” as the
data node. The title name is named hold_check and it uses the hold violation
time of 1.2ns. The command also specified the output error file to
RAM_timing.error, the actual output error file is
RAM_timing.error.errt.
check_timing_hold –node data -title \
hold_check - ref clk -hold_time 1.2ns -error_file \
RAM_timing.error
Specifies a hold timing check with clk as the reference node and data as the
data node. The title name is named hold_check and it uses the hold violation
time of 1.2ns. The command also specified the output error file to
RAM_timing.error, the actual output error file is
RAM_timing.error.errt.
check_timing_pulse_width
Performs a pulse width timing check.
Syntax
check_timing_pulse_width -node node_name {node_name}
-title title_name -low_min_time low_min_time
-low_max_time low_max_time -high_min_time
high_min_time -high_max_time high_max_time
[-loth logic_low_voltage] [-hith logic_high_voltage]
[-twindow tstart [tstop] {tstart [tstop]}]
[-subckt subckt_name] [-error_file output_file_name]
Argument Description
-node node_name Defines a signal node name which can be the node name
{node_name} of a single node or a node name with the asterisk (*)
wildcard character that represents a group of node names.
Argument Description
-title title_name Defines the title name of this pulse width timing check.
Errors that occur during this check are listed in the .errt
file. The name of the pulse width timing error starts with
this title name. This name is useful when there are multiple
pulse width timing checks used for a single run.
-loth Defines the logic low voltage for the signal. The default is
logic_low_voltage the same as the set_logic_threshold value.
-hith Defines the logic high voltage for the signal. The default is
logic_high_voltage the same as the set_logic_threshold value.
Argument Description
-twindow tstart Performs the check within the time window defined by
tstop {tstart tstart tstop {tstart tstop}. The tstart and
tstop} tstop must come in pairs, except for the final window
where if tstop is not specified it is be assumed to be the
end of the simulation. The final tstop can also be the end
or END keyword.
-error_file Specifies the output error file name for any edge timing
output_file_name violations. If the output file name is not specified, the
default output file use the output prefix name by –o follow
by .errt.
For example, if –o xa_default, then the output error file
is xa_default.errt. If –error_file is specified, the
output file name is the user-specified
output_file_name with the .err extension.
Description
When performing an pulse width timing check, if violations occur, they are
stored in a new CustomSim output file, output_file_name.err. The output
file name is the prefix name from the XA –o command line argument. If –o is
not specified, it is the prefix of the input file name.
By default, the CustomSim tool uses 30%/70% as the logic threshold value
based on the rail-to-rail voltage it detects on the signal. The logic threshold
value can be modified by the set_logic_threshold command. If –loth and –
hith are specified, they take precedence over the default logic threshold value
specified by the set_logic_threshold command if the same node name is
applied to both commands.
Examples
check_timing_pulse_width –node out –title pulse_width_check \
-low_min_time 4ns –low_max_time 8ns -high_min_time 5ns \
–high_max_time 9ns
Same example as the first example, but the signal ‘out’ applied to only node
inside the subcircuit digital_ram.
check_timing_pulse_width –node out –title pulse_width_check \
-low_min_time 4ns –low_max_time 8ns -high_min_time 5ns \
–high_max_time 9ns\ -error_file xa_pulse_width
check_timing_setup
Performs a setup timing check.
Syntax
check_timing_setup -node node_name {node_name}
-ref ref_name -setup_time setup_time -title title_name
[-window window_limit] [-loth logic_low_voltage]
[-hith logic_high_voltage]
[-twindow tstart [tstop] {tstart [tstop]}]
[-subckt subckt_name] [-error_file output_file_name]
[-data_edge_type edge_type] [-ref_edge_type edge_type]
Argument Description
-node node_name Defines a signal node name which can be the node name
{node_name} of a single node or a node name with the asterisk (*)
wildcard character that represents a group of node names.
The wildcard is limited to one hierarchy only.
-ref ref_name Defines the reference node name and must be a single
node name. A wildcard is not allowed.
Argument Description
-setup_time Specifies the setup time. The signal should not change to
setup_time the specified edge to check for rising or falling conditions
(rising edge only, falling edge only, or both) between Tref
(the time the reference signal edge changes) -
setup_time until Tref if setup_time is positive. Note
that the -window window_limit argument is ignored
for a positive setup_time.
-loth Defines the logic low voltage for the signal. The default is
logic_low_voltage the same as the set_logic_threshold value.
-hith Defines the logic high voltage for the signal. The default is
logic_high_voltage the same as the set_logic_threshold value.
-twindow tstart Performs the check within the time window defined by
tstop {tstart tstart tstop {tstart tstop}. The tstart and
tstop} tstop must come in pairs, except for the final window
where if tstop is not specified it is be assumed to be the
end of the simulation. The final tstop can also be the end
or END keyword.
-error_file Specifies the output error file name for any edge timing
output_file_name violations. If the output file name is not specified, the
default output file use the output prefix name by –o
followed by .errt.
For example, if –o xa_default, then the output error file
is xa_default.errt. If –error_file is specified, the
output file name is the user-specified
output_file_name with the .errt extension.
Argument Description
Description
When performing a setup check, if violations occur, they are stored in a new
CustomSim output file, output_file_name.err. The output file name is the
prefix name from the XA –o command line argument. If –o is not specified, it is
the prefix of the input file name.
By default, the CustomSim tool uses 30%/70% as the logic threshold value
based on the rail-to-rail voltage it detects on the signal. The logic threshold
value can be modified by the set_logic_threshold command. If –loth and –
hith are specified, they take precedence over the default logic threshold value
specified by the set_logic_threshold command if the same node name is
applied to both commands.
Examples
check_timing_setup -node data –ref clk -title setup_check \
-setup_time 1.2ns
Specifies a setup timing check with clk as the reference node and data as the
data node. The title name is named setup_check and it uses the setup
violation time of 1.2ns.
check_timing_setup -node data -data_edge_type fall -title \
setup_check1 -ref clk -ref_edge_type fall -setup_time 1.2ns
Specifies a setup timing check with clk as the reference node and data as the
data node. Both the clk and data use the fall edge. The title name is
setup_check1 and it uses the setup violation time of 1.2ns.
enable_print_statement
Enables .print statements in HSPICE® and Eldo™ netlists.
Syntax
enable_print_statement -switch enable_value
Arguments
See the Common Syntax Definitions section for details about the
enable_value argument.
Description
By default, the CustomSim tool treats all .print statements as if they were
.probe statements. Use the enable_print_statement command to
enable the ASCII output. The simulator generates a .print file containing the
output from the .print statements.
Examples
enable_print_statement yes
See Also
set_waveform_option
force_node_voltage
Forces the specified nodes to stay at the specified constant voltage.
Syntax
force_node_voltage -node node_name {node_name}
-voltage voltage_value [-time time_value]
[-subckt subckt_name] [-slope t_value]
Argument Description
Argument Description
-slope t_value Forces the voltage with a ramp of t_value (in seconds
per volt). The default is 10p s/V. Note that this option is
only applicable to set_multi_rate_option -mode
2.
Description
force_node_voltage forces the specified nodes to stay at the specified
constant voltage. The node voltage stays at the same value from the specified
time until either the end of simulation or when the constant node voltage status
is released by release_node_voltage.
Examples
force_node_voltage vpump -voltage 2.5 -time 10ns
The vpump node is forced at 2.5V at 10 ns. This node remains at this value
until the end of the simulation unless you use release_node_voltage for the
same node.
keep_top_element
Specifies the top-level instance to be simulated with respect to the other
elements in the netlist.
Syntax
keep_top_element -inst instance_name
Argument Description
Description
This command works with the -top XA command line option to specify the
instances and subcircuits in the top-level netlist. Except for the stimulus and
voltage source elements, all of the elements in the original top-level netlist are
ignored.
load_ba_file
Specifies a post-layout back-annotation file.
Syntax
load_ba_file -file filename [-skipnet net_name
{net_name}] [-min_res min_res_value]
[-min_cap min_cap_value] [-rcnet net_name {net_name}]
[-cnet net_name {net_name}] [-ccnet net_name {net_name}]
[-dpf switch_value]
[-ccap_to_gcap cap_value]
[-add_netpin DSPF_netname DSPF_node {DSPF_node}]
[-add_netpin_file netpin_file_name]
[-delete_netpin DSPF_netname DSPF_node {DSPF_node}]
[-delete_netpin_file netpin_file_name]
[-report_no_ba value]
[-add_instpin_file file_name] [-min_res value]
[-max_res value][-min_cap value] [-min_ind value]
Argument Description
-file filename Specifies the name of the parasitic netlist file (SPEF or
SPF format). It can be a gzipped file to save the disk
space. Star-RC™ can directly generate gzipped files.
See the NETLIST_COMPRESS_COMMAND command in
the Star-RC Command Reference.
-skipnet net_name Specifies the name of nets that should not be back-
{net_name} annotated. You can specify multiple net names. You
can use wildcard characters in the net names.
Argument Description
-add_netpin Adds a new net pin. The first value is a DSPF net
DSPF_netname name, followed by one or more DSPF node names.
DSPF_node {DSPF_node} The DSPF node name can be a sub-node, instance
pin, or probe text node. You can specify multiple
-add_netpin options.
-delete_netpin Deletes a net pin. The first value is a DSPF net name,
DSPF_netname followed by one or more DSPF node names. The
DSPF_node {DSPF_node} DSPF node name can be a sub-node, instance pin, or
probe text node. You can specify multiple
-delete_netpin options.
Argument Description
Argument Description
Description
Specifies a parasitic back-annotation file. multiple files can be specified using
this command multiple times. You can use a mixture of spf and spef formats.
Examples
In the command script file:
load_ba_file -file Parastic_net.spf
In a Spectre netlist:
Baoptions Options Xa_cmd="Load_ba_file -file Parastic_net.spf -
skipnet X1.in*"
See Also
map_ba_terminal, check_node_excess_rf
load_operating_point
Determines how the CustomSim tool handles a file containing initial conditions.
Syntax
load_operating_point [-file filename {filename}]
[-node_type node_type] [-type ic_type]
[-subckt subckt {subckt}] [-inst inst {inst}]
Argument Description
Examples
load_operating_point -file op-file -node_type latch -type nodeset
Reads initial conditions from the op-file file and applies them as nodeset to
latch nodes only.
load_operating_point -file op-file -inst xtop.analog
Reads initial conditions from the op-file file and applies them nodes in the
xtop.analog instance only, as defined in the file (.ic or .nodeset).
load_operating_point -file op-file -subckt latch_clr -node_type
latch
Reads initial conditions from the op-file file and applies them only to latch
nodes and to nodes in instances of the latch_clr subcircuit, as defined in
the file (.ic or .nodeset).
load_parameter_file
Lets you override instance parameter values in the netlist.
Syntax
load_parameter_file -file filename
Argument Description
-file filename Specifies the name of the file that contains the instance
parameter information.
Description
This command lets you specify a file that contains instance parameter values
that override the corresponding definitions in the netlist. All other instance
parameters keep their original values.
You can specify multiple lines in the file and use # to denote a comment. The
file format for each line is:
instance_name.parameter_name value
In the previous example the dtemp parameter value overwrites the values for
the x1.m1, x1.m2, x2.m1, and x2.m2 instances. The new dtemp value is -25
for the x1.m1 instance, 0 for the x1.m2 instance, 125 for the x2.m1 instance
and 25 for the x2.m2 instance. All other occurrences of dtemp keep their
original values defined in the netlist.
load_vector_file
Loads an HSPICE vector stimulus file or a VCD stimulus file. When VCD is the
stimulus file format, the -ctl flag must be used to name the VCD control file.
Syntax
load_vector_file -file filename
[-format format_specification]
VCD -ctl filename | vcd -ctl Specifies a value change dump file format.
filename The -ctl flag and filename are required.
EVCD [-ctl filename] | evcd You can also specify an extended value
[-ctl filename] change dump file format, as well as signal
control file. If you do not specify the signal
control file, the CustomSim tool follows the
EVCD port direction rule and the unknown
direction is ignored.
Examples
Example 5
#load HSPICE vector stimulus
load_vector_file -file input.vec -format VEC
Example 6
#load VCD stimulus
load_vector_file -file stimulus.vcd -format VCD -ctl mapfile
load_verilog_file
Loads a structural Verilog netlist. The CustomSim tool uses the connectivity
from Verilog netlist but does not support Verilog functions.
Syntax
load_verilog_file -file filename
Argument Description
Examples
#load a structural Verilog netlist
load_verilog_file -file top.v
map_ba_terminal
Specifies the terminal name mapping between the back-annotation file and the
terminal names recognized by the simulator.
Syntax
map_ba_terminal -name ba_file_term_name
[-alias] valid_terminal_name [-subckt subcircuit_name]
Arguments
The ba_file_term_name, valid_terminal_name, and
subcircuit_name arguments are user-defined.
Description
The CustomSim tool uses the first character, and optional subsequent
characters, to determine which terminal is represented. Table 4 shows the
terminal identification characters.
If the instance terminals in the back-annotation file contains names that are not
recognized based upon the characters shown in Table 4, the
map_ba_terminal command must be used.
Table 4 map_ba_terminal identification characters
2 G[A][T][E] B[A][S][E] B,
C[A][T][H][O][D][E],
M[I][N][U][S],
N[E][G][A][T][I][V]
[E]
Examples
In Example 7, UDRN is used for the drain connection in the back-annotation file.
The CustomSim tool does not recognize UDRN, so the following command
must be used to back-annotate correctly:
map_ba_terminal -name UDRN -alias D
See Also
load_ba_file, check_node_excess_rf
meas_post
Performs measurements using existing simulation results.
Syntax
meas_post -waveform file_name
Argument Description
Description
When you use meas_post in a command script file or with .option xa_cmd,
the CustomSim tool:
■
Only reads in the .measure commands with the related parameters in the
netlist (when the .measure commands uses parameters).
■
Performs the measurement specified in the netlist using the data in the
specified waveform file.
You can use only one meas_post in a simulation. If you specify more than one
command, the CustomSim tool uses the last one and ignores the previous one.
the CustomSim tool issues a warning in the log file to point out which
meas_post command was used and which ones were ignored.
When you run the CustomSim tool with meas_post, use the -o command line
option to redirect the new output data. This option avoids overwriting the
simulation log file.
You can use meas_post with a SPICE netlist that only includes .measure
commands. This convention does not support wildcard characters.
Examples
Suppose a previous CustomSim simulation generated the following files:
top.fsdb and top.log. To perform a measurement for the simulation
results, do the following steps:
1. Use a measurement command from a previous simulation or add a new one.
For example:
.meas tran delay trig v(clk) val=1.5 rise=1 targ v(d[1])
val=1.5 rise=1
2. Add the following command in the existing command script file, for example:
meas_post -waveform top.fsdb
3. Run the CustomSim tool:
xa original_netlist -c config -o measNewResults
Two new files are created: measNewResults.log and
measNewResults.meas.
probe_waveform_current
Creates current waveform output.
Syntax
probe_waveform_current -i | i1 instance_name {instance_name}
[-in instance_name {instance_name}]
[-iall instance_name {instance_name}]
[-isub | -x subckt_name.port {subckt_name.port}]
[-subckt subckt_name] [-limit level]
[-except_inst instance_name {instance_name}]
[-filetag file_tag]
Argument Description
-filetag file_tag Specifies a file tag to direct the signals probed with
this command to a separate waveform file. The
waveform file has the standard name with .filetag
inserted before the normal file suffix, for example,
xa.filetag.wdf.
Description
Probes the current through an instance pin. The current waveform is written to
the output file in the format specified by the post option in the netlist.
The CustomSim tool-supported wildcard characters ( * ) can be used in the
instance_name identifiers. The wildcard character can be used to match one
level—or all levels—of the hierarchy. See the set_wildcard_rule command.
The last example probes all instances down to the default level of hierarchy (3),
except those finishing with the clk pattern.
probe_waveform_current mrxdrv -subckt rxblock -filetag rx_block
See Also
probe_waveform_logic, probe_waveform_va, probe_waveform_voltage,
set_wildcard_rule
probe_waveform_logic
Generates logic values of specified nodes in the output waveform file.
Syntax
probe_waveform_logic -node node {node}
[-nN inst_name {inst_name}] [-nall inst_name {inst_name}]
[-loth low_threshold] [-hith high_threshold]
[-subckt subckt_name {subckt_name}] [-limit level]
[-except_node node_name {node_name}]
[-port enable_value] [-filetag file_tag]
Argument Description
-nN inst_name Specifies the name of the instance. The Nth terminal is
{inst_name} probed as a logic signal, where N is a positive integer. Note
that this option cannot probe subcircuit instance terminals.
-nall Specifies the name of the instance in which all terminals are
inst_name probed as a logic signal. Note that this option cannot probe
{inst_name} subcircuit instance terminals.
-loth Specifies the threshold voltage for the LOW logic state, 0.
low_threshold
-hith Specifies the threshold voltage for the HIGH logic state, 1.
high_threshold
Argument Description
-limit level Specifies the hierarchy level down to which the logic values
of the specified node are probed. This option is useful for
limiting output when you use the * wildcard character. The
top level of the netlist is 0. The default level is 3.
-filetag Specify a file tag to direct the signals probed with this
file_tag command to a separate waveform file. The waveform file
has the standard name with .filetag inserted before the
normal file suffix, for example, xa.filetag.wdf.
Description
The default settings for -loth and -hith are derived from
set_logic_threshold. By default, -loth is set to 30% of the low voltage, and
-hith is set to 70% of the high voltage. The CustomSim tool uses a search
algorithm to determine the high/low voltage for a given node if there are
multiple supply domains:
■ If only -loth is specified, a voltage <= the low_threshold signal is 0,
else 1.
■
If only -hith is specified, a voltage >= the high_threshold signal is 1,
else 0.
■
If -loth and -hith are both specified:
• If -loth >= -hith, error out.
• If voltage < low_threshold, the signal is 0.
• If voltage >= high_threshold, the signal is 1.
• If low_threshold < voltage < high_threshold, the signal is U
(unknown).
Different signals can use different logic thresholds; but for a single signal, there
can be only one logic threshold, even if the signal is being probed to several file
tags as specified by the -filetag option.
Note: You can only apply the -nN and -nall arguments to primitive
instances.
Examples
probe_waveform_logic -node data -loth 0.6
This example prints the logic state of the data node in the waveform file. If
data has a voltage of <=0.6V, the logic state is 0; otherwise, the logic state is
1.
See Also
probe_waveform_current, probe_waveform_va, probe_waveform_voltage,
set_wildcard_rule
probe_waveform_va
Probes the values of Verilog-A variables or parameters and writes them to the
plot file.
Syntax
probe_waveform_va -var variable_name {variable_name}
[-subckt subckt_name] [-limit level]
Argument Description
Description
Note that probe_waveform_va:
■
Probes the value of Verilog-A variables or parameters and writes them to the
plot file. It does not probe Verilog-A ports or electrical nodes. Use the
probe_waveform_voltage command to probe electrical signals.
■
Scopes only to Verilog-A instances/modules. It does not print SPICE MOS
model parameters.
The output to the waveform file is the hierarchical path and the variable name.
There are no signal access functions such as v() or i() for the voltage and
current signals. The separator between the hierarchical path and the variable
name is the hierarchical separator for the simulation as defined by the
set_sim_hierid command or the .hier command (Eldo format only).
The CustomSim tool-supported wildcard characters ( * ) can be used in the
variable_name identifier. The wildcard character can be used to match one
level, or all levels, of the hierarchy. See the set_wildcard_rule command.
Examples
probe_waveform_va -var x1.count
Probes the variable count in the x1 module. The variable appears in the
waveform file as x1.count.
probe_waveform_va -var x1.count
Probes the variable count in the x1 module. The variable appears in the
waveform file as x1:count.
probe_waveform_va -var x1.*
probe_waveform_voltage
Creates a voltage waveform output.
Syntax
probe_waveform_voltage -v node_name {node_name}
[-vn instance_name {instance_name}]
[-vall instance_name {instance_name}]
[-vsub subckt_name.port {subckt_name.port}]
[-subckt subckt_name] [-limit limit_val]
[-level level_val] [-except_node node_name {node_name}]
[-port enable_value] [-ba_net net_name {net_name}]
[-filetag file_tag]
Argument Description
-vsub subckt_name.port Probes the ports of the subcircuit using local port
{subckt_name.port} names. You can use wildcard characters. This probe
matches ports identically to an isub probe, except that
it reports voltage instead of current.
Argument Description
-ba_net net_name Probes the voltage waveforms for the SPF/SPEF pin
{net_name} names. You can specify a wildcard character in a net
name. Note that this argument only works in back-
annotation and is not applicable to the -subckt and
-limit arguments.
-filetag file_tag Specify a file tag to direct the signals probed with this
command to a separate waveform file. The waveform
file has the standard name with .filetag inserted
before the normal file suffix, for example,
xa.filetag.wdf.
Description
Probes the voltage on a node or on the pin of a primitive instance. The voltage
waveform is written to the output file in the format specified by the post option
in the netlist.
The CustomSim tool-supported wildcard characters ( * ) can be used in the
node_name and instance_name identifiers. The wildcard character can be
used to match one level—or all levels—of the hierarchy. See the
set_wildcard_rule command.
Probes specified by this command are in addition to the .probe statement in
the HSPICE or ELDO netlist files or save statements in the Spectre netlist files.
Long simulations, or simulations in which some nodes have a high level of
activity, can produce very large waveform files. To minimize waveform file
loading time in these files, you can direct signals to separate waveform files
and keep file sizes smaller.
To direct signals to a separate waveform file, use the -filetag argument. All
of the signals probed by that instance of the command are directed to a
separate waveform file. The file name has the same format as the standard
waveform file name, except for the suffix; for example, xa.mytag.wdf. All of
the settings made by set_waveform_option also apply to the tagged output
files. A signal can be directed to multiple files if it is probed with another
command that specifies a different file_tag. Additionally, multiple
Example 8
probe_waveform_voltage *
Example 8 probes all voltage nodes down to the default level of hierarchy,
which is 3.
Example 9
probe_waveform_voltage *.* -limit 4
Example 10
probe_waveform_voltage *.* -limit 0
Example 10 does not probe the voltage of any node. The asterisk characters
*.* refer to all of the nodes at the first level and below, but the -limit 0
argument limits the nodes (to be probed) to only the top level. The arguments
are, therefore, contradictory.
Example 11
probe_waveform_voltage * -except_node *clk
Example 11 probes all nodes down to the second level of hierarchy, except
those finishing with clk pattern.
Example 12
probe_waveform_voltage -ba_net clk*
Example 12 probes the voltage waveform from the SPF/SPEF instance pins for
any net name that matches clk.
Example 13
probe_waveform_voltage ctrl sig* -subckt mysub -limit 2
Example 13 specifies to probe the ctrl signal and all signals that begin with
sig in all occurrences of the mysub subcircuit. The -limit 2 option is
relative to the top level of the subcircuit and limits the depth of the wildcard
probe. Example 13 is equivalent to the following SPICE definition:
.subckt mysub
.probe v(ctrl)
.probe v(sig*) level=2
...
ends
Example 14
probe_waveform_voltage rx_data -subckt rxblock -filetag rx_block
Probes all of the ports in xtopsub and any subcircuits contained in topsub
down to the limit of 1. The following probes are in the waveform file: v(x0.t1),
v(x0.t2).
probe_waveform_voltgae -vsub x0.*
Probes all of the ports in x0 and any subcircuits contained in x0 down to the
limit of 1. The following probes are in the waveform file: v(x0.t1), v(x0.t2),
v(x0.x1.d1), and v(x0.x1.d2).
You can combine the vsub probe with the -subckt option. The vsub
instance.port becomes local to the subcircuit definition:
probe_waveform_voltage -vsub * -subckt topsub
This command probes all subcircuit ports in all instances of the named
subcircuit as well as the ports of any subcircuit instance in topsub down the
default limit of 3. This example probes: v(x0.t1), v(x0.t2), v(x0.x1.d1),
v(x0.x1.d2), v(x01.t1), v(x01.t2), v(x01.x1.d1), and v(x01.x1.d2).
To probe only the ports of the named subcircuit use -limit 0 to prevent
matching any deeper into the hierarchy:
probe_waveform_voltage -vsub * -subckt topsub -limit 0
This command probes all subcircuit ports in all instances of the named
subcircuit, topsub: v(x0.t1), v(x0.t2), and v(x01.t1), v(x01.t2).
probe_waveform_voltage -vsub * -subckt downsub -limit 0
Probes only the port voltages of all instances of the downsub subcircuit. The
following probes are in the waveform file: v(x0.x1.d1), v(x0.x1.d2),
v(x01.x1.d1), and v(x01.x1.d2).
When you use wildcard matching except patterns can be used to exclude some
nodes:
probe_waveform_voltage -vsub * -subckt downsub -limit 0 -
except_node x0.*
This command probe only the ports of all instances of the downsub subcircuit,
but excludes any instance of downsub in x0. The following probes are added
to the waveform file: v(x01.x1.d1), v(x01.x1.d2).
See Also
probe_waveform_current, probe_waveform_logic, probe_waveform_va,
set_wildcard_rule
pulse_oscillator
Applies a current kick to a specified node.
Syntax
pulse_oscillator -node node_name {node_name}
-pw pulse_width -time value [value ...]
[-amp amp_value] [-rt rt_value]
Argument Description
-node node_name Defines the node at which the current source is connected.
{node_name}
Argument Description
-time value Specifies the time at which the current pulse starts. You can
specify multiple pulses by listing multiple times.
-rt rt_value Specifies the rise and fall time of the current pulse.
Description
A current pulse with a pulse width of half the expected oscillation period is
usually sufficient to start oscillations, but sometimes you need to experiment
with the pulse amplitude.
If a circuit has a fully differential structure, then use two pulse_oscillator
commands: one connected to the positive and negative branch of the
differential structure and one applied with opposite polarity.
Examples
pulse_oscillator -node xosc.pl -pw 1n -time 10u -amp 1u
pulse_oscillator -node xosc.nl -pw 1n -time 10u -amp -1u
release_node_voltage
Releases the node voltages from the values fixed by force_node_voltage.
When you specify this command, the simulation results determine the node
voltages.
Syntax
release_node_voltage -node node_name {node_name}
[-time time_value] [-subckt subckt_name]
Argument Description
Examples
release_node_voltage vpump -time 150ns
The vpump signal previously forced to a given value is released at 150ns. The
simulation results determine the vpump voltage value until the end of the run
unless you use a new force_node_voltage command.
report_dangling_node
Reports dangling nodes in a separate file.
Syntax
report_dangling_node enable_value
Argument Description
enable_value By default, when this option is off, the CustomSim tool reports
dangling nodes in the log file. Turn this option on to report
dangling nodes in a separate file with the following format:
sim_output_file_name.dng.
report_model
Reports detailed model information. This command lets you generate reports
that contain detailed model information similar to what the Eldo™ format
provides in the .chi file.
Syntax
report_model -report report_value
[-generate enable_value] [-stop enable_value]
[-count model|subckt|all|none]
Argument Description
report_node_alias
Reports all the aliased nodes in the report files.
Syntax
report_node_alias -hierarchy enable_value | -short
enable_value
Argument Description
Description
This command prints the nodes that have aliased node names. A node might
have an alias because of:
■
Hierarchical alias names from instances of subcircuits.
■ Shorted alias names due to very small resistors or a DC voltage source of
0 volt connected to a node.
The primary node name is the node name that remains in the database. The
alias node name is the name that is removed from database. The alias output
file has two or more columns such as:
<primary_node_name> <alias_node_name_0> …
<alias_node_name_n>
Examples
report_node_alias –hierarchy 1
report_node_cap
Reports capacitance information for the specified nodes.
Syntax
report_node_cap -node node_name {node_name}
[-short_resistor value] [-group group_name]
[-limit limit_value] [-report basic|detail]
Argument Description
-node node_name Reports capacitance for the node names you specify. You can
{node_name} use wildcard characters in the node names.
-group group_name Creates a group name for the nodes you specify with -node.
If you specify this option, all nodes for a report_node_cap
command are grouped together. the CustomSim tool reports
the capacitance information based on this group.
Use this option only for a flat, postlayout design.
-report Specifies the type of report to print. Use the basic keyword
basic|detail (the default) to print only the basic capacitance information.
Use the detail keyword to print a detailed report.
Description
The reported node capacitance information includes total node capacitance,
wire capacitance, gate capacitance of a MOSFET, and junction capacitance of
a MOSFET. You can specify multiple commands in a simulation. the
CustomSim tool processes each command separately.
report_node_cap outputs the capacitance information in a *.cap# file.
In a prelayout design, capacitance is reported as:
Ctotal = Cgate + Cjunction + Cwire
Cgate = Cgd + Cgs + Cgb
Cjunction = Cdb + Csb
Cwire = Cdesign
In postlayout design, the CustomSim tool expands a single node from the
prelayout design into multiple nodes because of the RC parasitics. The
postlayout flow is divided into 2 scenarios:
■
A back-annotated postlayout.
■
A flat postlayout.
In the back-annotated postlayout flow, you can trace the connectivity back to
the prelayout design with the information from the prelayout netlist and the
back-annotation file:
*|NET na 0.00458507PF <-- Net Capacitance (CBAnet)
*|I (x02/mp:GATE x02/mp GATE I 4.8e-16 22.75 3.25) //
$llx=22.55 $lly=3.25 $urx=22.95 $ury=3.25 $lvl=5
*|I (x02/mn:GATE x02/mn GATE I 2.4e-16 22.75 1.05) //
$llx=22.55 $lly=0.6 $urx=22.95 $ury=1.05 $lvl=4
*|I (x01/mp:DRN x01/mp DRN B 0 8.45 3.25) // $llx=8.45
$lly=2.65 $urx=9.2 $ury=3.85 $lvl=7
*|I (x01/mn:DRN x01/mn DRN B 0 8.45 1.05) // $llx=8.45
$lly=0.75 $urx=9.2 $ury=1.35 $lvl=6
*|S (na:1 22.75 2.65) // $llx=22.55 $lly=2.65 $urx=22.95
$ury=2.65 $lvl=3
*|S (na:2 22.75 3.925) // $llx=22.55 $lly=3.85 $urx=22.95
$ury=4 $lvl=5
Cg1 na:1 0 4.33011e-17
Cg2 na:2 0 3.99892e-17
...
R158 na:1 x02/mp:GATE 4.8 $l=0.6 $w=0.4 $lvl=5
R159 na:1 na:3 30 $l=0.8 $w=0.4 $lvl=3
R160 x02/mp:GATE na:2 5.016 $l=0.675 $w=0.4 $lvl=5
R161 na:3 na:4 16.875 $l=0.5 $w=0.4 $lvl=3
R162 na:3 na:5 18.75 $l=0.5 $w=0.4 $lvl=3
R163 na:3 na:8 3.96 $a=0.04 $lvl=10
R164 na:4 na:6 3.96 $a=0.04 $lvl=1
...
In Figure 1, a prelayout node, BT, has been expanded into different nodes in
the postlayout. Because the postlayout netlist is flat, and there is no trace of
connectivity from the prelayout netlist and back-annotation flow, all nodes are
treated as unique and independent.
To accurately report the capacitance information, you need to tell the
CustomSim tool which nodes can be grouped together for report_node_cap
command to calculate the capacitance information. To group a list of nodes into
one group, use -group argument and list the names of nodes to be grouped:
BT_0, BT_1, BT_2, BT_3, BT_4, BT_5, BT_6, XPERI.BT_7, XCELL1.BTR,
XCELL2.BTR, XCELL3.BTR, and XCELL4.BTR and do the following steps:
1. Specify the following report_node_cap command.
report_node_cap -node BT_? XPERI.BT_7 XCELL?.BTR -group BT
This command groups all the specified node names into one group named
BT.
2. Assuming all parasitic capacitor has a value of 1 fF, the CustomSim tool
calculates the capacitance information is as:
report_operating_point
Determines how CustomSim exports initial conditions it computes in DC
analysis. It also defines how CustomSim reports the results of latch (and other
circuit types) detection. The initial conditions are dumped in a file named
prefix.time.ic. Note that you cannot specify multiple
report_operating_point commands.
Syntax
report_operating_point -time dc|end|time_value
{dc|end|time_value} [-report all|core]
[-file file_name] [-node_type node_type]
[-type ic_type] [-subckt subckt {subckt}]
[-inst inst {inst}]
[-node_details switch_value]
Argument Description
-report all|core Specify core (the default) to dump the subset of the core
nodes the CustomSim tool needs to determine the
operating point. Specify all to force all nodes to be written
to a file.
Argument Description
-file file_name Adds operating point information to the specified file. The
default file name is prefix.time.ic.
-inst inst {inst} Limits the application of initial conditions to the specified
instances. Wildcards are supported.
Examples
report_operating_point 0 -node_type latch -type nodeset
Writes out a 10n-op file containing initial conditions from time 10n as ic only for
latch nodes and nodes in instances of the latch_fast subcircuit.
report_operating_point -time 0 -node_details 1
Writes out a prefix.0.ic file containing initial conditions from time 0 as ic for
all nodes, including node details. The node details are in the
prefix.0.ic.op_table file.
report_power
Generates power consumption reports.
Syntax
Reporting by port name:
report_power -port port_name {port_name}
[-label label_name] [-twindow tstart [{tstop}]
{tstart [tstop]}]
[-limit level] [-subckt subckt]
[-avg enable_value] [-rms enable_value]
[-max enable_value] [-min enable_value]
[-probe enable_value] [-except_port except_pattern]
Reporting by node name:
report_power -by_node node_name {node_name}
[-label label_name] [-twindow tstart [{tstop}]
{tstart [tstop]}]
[-limit level] [-subckt subckt]
[-avg enable_value] [-rms enable_value]
[-max enable_value] [-min enable_value]
[-probe enable_value] [-except_port except_pattern]
[-report basic|detail]
Argument Description
-label label_name Specifies the text label for the report file.
-twindow tstart tstop Performs the check within the time window defined by
{tstart tstop} tstart tstop {tstart tstop}. The tstart and
tstop must come in pairs, except for the final window
where if tstop is not specified it is be assumed to be
the end of the simulation. The final tstop can also be
the end or END keyword.
Argument Description
-rms enable_value Specifies whether to report the rms value. The default
is 1 for printing the rms value. See the Common
Syntax Definitions section for details about the
enable_value argument.
Argument Description
Description
report_power produces a text report file that contains subcircuit port
currents. There are two methods for specifying the reporting ports: by the port
name or by connectivity. The report appears in the file.power file. The
-limit argument specifies the absolute hierarchical depth. The top level of
the netlist hierarchy is 0.
To specify reporting by port name, use the –port argument. A subcircuit port
name is defined by a subcircuit definition (.subckt subname portname1
portname2 … ). A leading “*” wildcard and “.” hierarchical delimiter are
optional. You can use the –subckt argument to scope specific subcircuits. You
can also use the –except_port argument to exclude some ports. Any port
names matching the exclude pattern are not reported.
To specify reporting by connectivity, use the –by_node argument. The ports/
terminals of the instances connected to the named nodes have their power
reported. The CustomSim tool automatically creates a port/terminal list based
on the connecting subcircuit and ideal voltage and current sources to the
specified nodes. The list of ports and terminals traverses the hierarchy based
on the –limit option. A power/current report is not generated for any
primitive element other than ideal voltage and current sources. MOS, BJT,
resistors, capacitors, and so on are excluded from the power/current report.
Subcircuit instances that the CustomSim tool detects as a MOS macro model
are also excluded. You can use the –except_port argument to exclude
some ports. Any port names matching the exclude pattern are not reported.
A warning is issued when any of the excluded elements do connect to the
specified node. The warning message is consistent with other CustomSim
warnings. By default, only the first 10 warning are printed and can be controlled
with the set_message_option command.
.subckt level1 a
R1 vdd a r=1k
R2 a vss r=1k
X2 a level2
.ends
.subckt level2 a
R1 vdd a r=1k
R2 a vss r=1k
X3 a level3
.ends
.subckt level3 a
R1 vdd a r=1k
R2 a vss r=1k
X4 a level4
.ends
.subckt level4 a
R1 vdd a r=1k
R2 a vss r=1k
.ends
.tran 1n 5n
.opt xa_cmd="set_sim_level 7"
.end
x1.vdd
If you specify the following command:
report_power –by_node vdd –limit 2
This command generates a power/current report of the following ports:
vdd
x1.vdd
x1.x1.vdd
x1.x2.vcc
x1.x2.vdd
x1.x3.vdd
x1.x2.x2.vdd
x1.x3.vdd
x1.x3.x1.vdd
x1.x3.xd.vdd
.ends
.subckt VREG IN OUT
…
.ends
.subckt LOAD IN OUT
…
.ends
.subckt top 1 2
Rtop1 1 z r=100
Rtop2 2 y r=100
Xbottom 1 y bottom
.ends
Xtop a b top
Xtop2 a b top
Xchip.Xreg.vee
Xchip.Xreg.vss
Xchip.Xreg.vss3v3
Xchip.Xreg.vss5v
Xchip.x1.vdd
chip.X1.vdd3v3
Xchip.X1.vdd5v
Xchip.X1.vaa
Xchip.X1.vcc
Xchip.X1.vee
Xchip.X1.vss
Xchip.X1.vss3v3
Xchip.X1.vss5v
Xchip.x3.vdd
Xchip.X3.vdd3v3
Xchip.X3.vdd5v
Xchip.X3.vaa
Xchip.X3.vcc
chip.X3.vee
chip.X3.vss
Xchip.X3.vss3v3
Xchip.X3.vss5v
Then report_power excludes ports that match *vee *vss* xchipx3*,
leaving:
Xchip.xreg.vdd
Xchip.Xreg.vdd3v3
Xchip.Xreg.vdd5v
Xchip.Xreg.vaa
chip.Xreg.vcc
chip.x1.vdd
Xchip.X1.vdd3v3
Xchip.X1.vdd5v
Xchip.X1.vaa
Xchip.X1.vcc
.subckt fee r
rr r 0 r=1k
.ends
.subckt bar p q
r1 p 0 r=10
iq q 0 dc=0.1m
fee p fee
.ends
.subckt foo a b c
ra a a1 r=10
a a1 0 dc=1u
b b b1 r=10
ib b1 0 dc=2u
rc c c1 r=10
ic c1 0 dc=0.5u
xbar a b bar
xbar2 a1 b bar
.ends
.subckt top 1 2 3
X1 1 1 1 foo
x2 2 3 3 foo
x3 3 3 3 foo
.ends
xcut 1 2 3 top
v1 1 0 dc=1
v2 2 0 dc=2
v3 3 0 dc=3
* xcut.x1.a
* xcut.x1.ia (power_element)
* xcut.x1.xbar.p
* xcut.x1.xbar2.p
See Also
set_wildcard_rule
set_active_net_flow
Triggers the automated active net flow.
Syntax
set_active_net_flow [-enable] enable_value [-vtol
numeric_value] [-twindow tstart tstop {tstart tstop}]
[-reuse_active_net enable_value]
[-reuse_ic enable_value] [-setup_cmd cmd_file]
Argument Description
Argument Description
-twindow tstart tstop Specifies the time windows to be checked for active
{tstart tstop} nodes. If you specify this argument, the check is limited
to the specified time windows.
The default for tstart is 0 and tstop is the end of
transient simulation time. The keywords end and END
are supported for tstop to specify the end of the
simulation. The time window has to be specified in a
pair, except for the last entry. If the last entry has only
one value, tstop defaults to END.
-reuse_active_net Instructs the CustomSim tool to reuse the active net file
enable_value information and avoid rerunning the first pass for a data
sweep. The default is 1, which specifies to reuse the
active net file. Set this option to 0 to rerun the entire flow
and regenerate the active net file. This reuse of the
active net file is also the default behavior for .alter/
bisection optimization flow.
Description
The active net flow automatically runs a prelayout simulation (ignores the
load_ba_file command) and generates the active net information to use in the
postlayout simulation. Its usage is limited to the back-annotation flow.
set_ams_view
Controls whether a SPICE subcircuit or a Verilog-A module definition (or “view”)
is used for the entire netlist, or for an instance or subcircuit when both SPICE
and Verilog-A definitions exist for that instance or subcircuit.
Syntax
set_ams_view -view VA|va|SPICE|spice
[-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name}]
Argument Description
Description
If your design has both SPICE subcircuit definitions and Verilog-A definitions,
you can switch between SPICE and Verilog-A depending on the type of
analysis you want to perform. This lets you achieve tradeoffs between the
speed and accuracy of the simulation for particular definitions. Use the
set_ams_view command to perform module- and instance-based partitioning
of the circuit definitions. You can switch to a Verilog-A module description for a
single SPICE subcircuit, or set of subcircuits, within a netlist.
If multiple definitions or “views” of a SPICE subcircuit or Verilog-A module exist,
the CustomSim tool defaults to use the view of the parent netlist. If you set the
entire netlist to use SPICE (set_ams_view -view SPICE), then any
subcircuit instance will use the subcircuit definition by default. If you set the
entire netlist to use Verilog-A (set_ams_view -view VA), then the Verilog-A
module definitions will be used by default; if the module definition does not exist
then the subcircuit view is used.
If you specify set_ams_view for a specific subcircuit or instance, then that
subcircuit or instance will use the definition you specify (SPICE or Verilog-A),
as shown in the following examples.
If set_ams_view references a view that does not exist, a warning message
appears and the other view is used. If neither a SPICE nor a Verilog-A
definition exist for the subcircuit, the CustomSim tool returns an error and the
simulation is terminated.
Examples
Example 20 shows an HSPICE netlist that will use the SPICE view by default.
Example 20 Netlist using SPICE definitions by default
.hdl mymodule.va
.subckt mymodule a b
...
.ends mymodule
X1 1 2 mymodule
X2 3 4 mymodule
X3 5 6 mymodule
The command in Example 21 sets the SPICE view for all subcircuits and
modules in a netlist.
Example 21
set_ams_view SPICE
The command in Example 22 sets the Verilog-A view for all subcircuits and
modules in a netlist.
Example 22
set_ams_view VA
In Example 23, the Verilog-A module definition will be used for all instances of
subcircuit my_module.
Example 23
set_ams_view VA -subckt mymodule
If the netlist contains the command in Example 24, the Verilog-A module
definition will be used for subcircuit instance X2 of my_module.
Example 24
set_ams_view VA -inst X2
See Also
“Netlist Syntax for Verilog-A in CustomSim” in the CustomSim User Guide
for details about how to include Verilog-A definitions in HSPICE, Spectre, or
Eldo netlists.
set_array_option
Provides user control over the effects of the CustomSim SPICE optimization for
array (SOFA) technology.
Syntax
set_array_option -array_detection enable_value
[-cell_gndcap_tol tol_value]
[-cell_subckt cell_subckt_name[.controlling_port]]
[-flash_array enable_value]
[-rc_optimize enable_value]
Argument Description
Argument Description
Description
The SOFA algorithm transforms a memory array cell to an optimized array
model to minimize their solve times while maintaining accuracy from the current
set_sim_level settings. set_array_option can be useful for debugging
simulations, or in other special circumstances when it is desirable to have the
ability to disable the array optimization.
set_ba_option
Adjusts how the CustomSim tool handles back-annotation.
Syntax
set_ba_option -short_pins switch_value
[-lump_c_only switch_value]
[-dpf_scale scale_value]
[-dpf_elem_type type {type}]
[-finger_prefix prefix_string]
[-active_net_file file_name {file_name}]
[-report_large_net value]
[-enable_error_net setting_value]
[-keep_prelayout_cap switch_value]
[-bus_delimiter left_char righ_char]
[-select_ipin_method method_value]
Argument Description
-dpf_elem_type type Lets you specify the types of elements you want to back-
{type} annotate from a DPF file. Table 5 shows the supported
element types.
Note that -dpf_elem_type mos is equivalent to the
-dpf_mos_only 1 option in the previous CustomSim
release.
Argument Description
Argument Description
-bus_delimiter Modifies the bus character only inside the SPEF file.
left_char righ_char You can specify the left_char and right_char to
match the prelayout node names. The supported bus
delimiters are [] and <>.
-min_res value Specifies the global lower threshold of the resistors from
the back-annotated DSPF/SPEF to be kept. All resistors
with an absolute value below the specified value are
shorted.
-max_res value Specifies the global upper threshold of the resistors from
the back-annotated DSPF/SPEF to be kept. All resistors
with an absolute value above the specified value are
treated as open-circuit.
Description
By default, the CustomSim tool uses load_ba_file for back-annotation. You can
use set_ba_option when you want to make adjustments to how the CustomSim
tool handles files to perform lumped capacitance back-annotation only, or when
you want to short out the SPF pins or apply the DPF scaling to the SPF files.
mos m* or M*
diode d* or D*
resistor r* or R*
bjt (BJT) q* or Q*
capacitor c* or C*
Examples
Given the following vss net call:
*|NET vss 0.00924425PF
*|I (x04/mn:BULK x04/mn BULK B 0 20.15 8.55)
*|I (x02/mn:BULK x02/mn BULK B 0 22.75 1.05)
*|P (vss B 0 0.325 0.151)
*|P (vss_1 B 0 20.15 8.55)
*|P (vss_2 B 0 22.75 1.05)
This command changes the bus delimiters in the SPEF file. For example:
xtop/xsram/xcol1/wl[0] becomes xtop/xsram/xcol1/wl<0>
xtop/xsram/xcol<1>/wl[0] becomes xtop/xsram/xcol<1>/wl<0>
xtop/xsram/xcol[1]/wl[0] becomes xtop/xsram/xcol<1>/wl<0>
set_ba_option -dpf_elem_type mos
Back-annotates only MOSFET DPF devices and ignores other devices in the
DPF section.
set_ba_option -dpf_elem_type mos resistor diode
Back-annotates only MOSFET and Xx instance DPF devices and ignores other
devices in the DPF section.
set_bus_format
Sets the bus delimiters.
Syntax
set_bus_format -open open_delimiter
[-close close_delimiter]
Argument Description
Description
You can specify two types of bus delimiters: both open delimiter and close
delimiter, or just the open delimiter. If you do not use a set_bus_format
command, by default the CustomSim tool uses [ ] as bus delimiters, for
example, a[0], a[1], a[2], and so on.
Examples
set_bus_format -open < -close >
set_capacitor_option
Lets you control capacitor handling at different phases of the simulation.
Syntax
set_capacitor_option -rule 1|2 [-min value]
[-report enable_value]
or
set_capacitor_option [-keep_negative_cap enable_value]
[-report enable_value]
Argument Description
Description
Table 6 shows the defaults for handling schematic capacitors in a simulation.
Table 6 Defaults for handling capacitors
0
max(rule2) min(rule2) min(rule2) max(rule2)
(min of rule1) < (min of rule2) and (max of rule1) > (max of rule2) for positive resistors and capacitors
(min of rule1) > (min of rule2) and (max of rule1) < (max of rule2) for negative resistors and capacitors
Figure 2 Using -rule 1 and -rule 2 for capacitors in the same simulation
See Also
load_ba_file
set_ba_option
set_inductor_option
set_resistor_option
set_ccap_level
Lets you override the default coupling capacitor tolerances.
Syntax
set_ccap_level -level ccap_level
[-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name}]
Argument Description
Description
During simulation, the CustomSim tool uses the default coupling capacitor
tolerances pre-set in each set_sim_level. You can use set_ccap_level to
override the default coupling capacitor tolerances. You can use this command
locally on specific instances or subcircuits.
Table 7 provides guidelines for when to use set_ccap_level and what level
to choose.
Table 7 Guidelines for using set_ccap_level
Level Description
Examples
set_sim_level 3
set_ccap_level 6
set_ccap_option
Use this command with set_ccap_level to get maximum performance
simulating designs with many small coupling capacitors.
Syntax
set_ccap_option -ccap_to_gcap ccap_threshold_value
[-ccap_to_scap switch_value]
Argument Description
Argument Description
Description
The set_ccap_level command controls how the CustomSim tool handles the
coupling capacitors. In general, this command provides a good performance/
accuracy tradeoff. However, in designs with many small coupling capacitors,
especially from a large back-annotation file, set_ccap_level might not provide
enough tuning capability to get maximum performance. set_ccap_option
provides more advanced controls.
The set_ccap_option command splits small coupling capacitors to ground
capacitors before theset_ccap_level takes effect, so specify
set_ccap_option before you use set_ccap_level. The set_ccap_option
command converts small coupling capacitors prior to the RC optimization.
Examples
set_ccap_option -ccap_to_gcap 1e-18
Splits all coupling capacitors to ground capacitors if the couple capacitor value
is less than 1e-18.
set_ccap_option -ccap_to_scap 1
set_dc_option
Controls DC convergence reporting.
Syntax
set_dc_option
[-method method_type [method_type ...]]
[-skip_dc value] [-cont_dc enable_value]
[-min_res min_res_value]
[-report report_type]
Argument Description
-report report_type
Argument Description
Description
This command controls options related to the DC solver. You can use it to
output a DC convergence report to aid in debugging a DC convergence
problem. The report is written to a .dc0 file in the same directory as the other
simulator output files. The converged and non-converging nodes are listed in
separate sections together with the node voltage, delta-v, delta-I, and the
element contributing the largest current to the node.
You can also choose the DC method or skip DC analysis to go straight to
transient analysis.
Note: If you specify multiple options for the -method argument, the
CustomSim tool starts with the most aggressive DC method and
proceeds to more conservative DC methods if necessary to
achieve DC convergence. The following guidelines apply to the -
method options.
Table 8 How To Choose a DC Convergence Method
auto Specifies the method to let the CustomSim tool choose the DC
convergence method automatically.
static Specifies the method that provides the best performance for
most circuits of any size.
Examples
set_dc_option –report always
set_duplicate_rule
Lets you process multiple subcircuit definitions with the same name, multiple
ports in a subcircuit with the same port name, or multiple model definitions with
the same name.
Syntax
set_duplicate_rule -select_subckt select_value
[-subckt sub_name {sub_name}]
[-select_model select_value
[-model model_name {model_name}]
[-subckt_port enable_value]
Argument Description
Description
This command controls the simulator behavior when duplicate model or
subcircuit definitions are found in the netlist. It also controls the behavior when
duplicate subcircuit port names in exist in a subcircuit definition. A duplicate
model or subcircuit definition raises an error unless this command is used. It
can be used to specify if the first or last definition of a subcircuit or model is
used and can be issued multiple times. The last command issued takes
precedence. As with other the CustomSim tool specifications, a global
command does not override a previously set local command.
Duplicate subcircuit port names are allowed by default in Eldo simulation mode.
In other netlist formats, duplicate subcircuit port definitions result in an error
unless you specify the -subckt_port argument to enable duplicate ports. All
duplicate ports are electrically shorted.
Examples
A global setting does not override a previously set local setting. In this example,
subcircuit B uses the first definition and the remaining duplicated subcircuits
use the last definition.
If a global setting is made, the CustomSim tool does not raise any parsing
errors for duplicated definitions. If only local settings are made the CustomSim
tool raise a parsing error for any other duplicate definition. If the netlist
contained:
.subckt A
*first a definition
...
.ends
.subckt A
*second A definition (expected)
...
.ends
.subckt D
...
.ends
.subckt D
* not intentional or expected
...
.ends
The CustomSim tool selects the last definition of subcircuit A, but raises an
error because subcircuit D has duplicate definitions.
set_flash_option
Sets options for the flash core cell.
Syntax
set_flash_option -delvto value
[-inst inst_name {inst_name}]|
[-subckt subcircuit_name {subcircuit_name}]
Argument Description
Description
This command specifies the initial change in threshold voltage to be applied to
flash cells. If -inst or -subckt is not used to specify specific instances the
command applies to all flash cells in the netlist. A delvto setting applied by
this command overrides the instance parameter delvto for a flash cell.
Examples
set_flash_option -delvto -0.5
Sets an initial vth change of -0.5V on all flash cells in the netlist.
set_flash_option -delvto 2 -inst x1.x2.x3.mcell
Sets an initial vth change of -1.5V on all flash cells in all memword_16
instances of the subcircuit.
set_floating_node
Sets the voltage value of floating nodes at the DC operating point or throughout
the transient simulation.
Syntax
set_floating_node -val value [-type gate|all]
[-format ic|vsrc] [-outfile enable_value]
Argument Description
Argument Description
Description
Behavior of floating nodes can vary considerably with simulation algorithms
and models. In a few cases, simulation results for a critical part of a circuit can
depend on the voltage value at one or more floating nodes in the circuit. This
can lead to hard-to-detect design issues and cause different results from
different simulators. Forcing such nodes to a known value by means of
set_floating_node can help isolate design problems.
Examples
Example 29 initializes all floating nodes at 0v in OP. No output file is generated.
Example 29
set_floating_node 0 -type all -format ic
Example 30 sets all floating gates to 3.3v throughout the simulation. the
CustomSim tool prints an output file with an extension .fnode0, containing data
in the form of voltage sources.
Example 30
set_floating_node 3.3 -type gate -format vsrc -outfile 1
set_hotspot_option
Controls which nodes are reported by check_node_hotspot.
Syntax
set_hotspot_option -factor value
Argument Description
Description
Nodes specified by the check_node_hotspot command are not reported when
the sum of the capacitive charging and discharging currents is less than the
value multiplied by the sum of the node with the largest capacitive currents.
Examples
check_node_hotspot –node *
set_hotspot_option –factor 0.3
These commands enable hot spot checks on all nodes, but only report the
nodes for which the sum of the capacitive charging and discharging current is
more than 0.3 multiplied by the sum of the node with the largest capacitive
current. The following example shows the format of the output file.
Node Name Cap(fF) Toggle Icin(uA) Icout(uA)
_______________________________________________________________
VDD 3.03e+05 0 1.825 3.187
_GND 2.646e+04 0 2.047 2.159
SAMPLINGA 307.1 6 1.553 1.562
set_inductor_option
Lets you control inductor handling at different phases of the simulation.
Syntax
set_inductor_option -rule 1|2 [-min value]
[-report enable_value]
Argument Description
Description
Table 9 shows the defaults for handling schematic inductors in a simulation.
Table 9 Defaults for handling inductors
See Also
set_capacitor_option
set_resistor_option
set_logic_threshold
Specifies a default logic high/low threshold value.
Syntax
set_logic_threshold -loth low_threshold_value
-hith high_threshold_value [-node node_names]
[-event_type value]
Argument Description
-loth Sets the logic low threshold value. The default unit is
low_threshold_value Volt.
-hith Sets the logic high threshold value. The default unit is
high_threshold_value Volt.
-node node_names Specifies the node names to apply the threshold value.
If this argument is not used, the default is all nodes. A
wildcard is supported. You can specify multiple nodes
separated by spaces.
Argument Description
Description
The node state is determined by the relationship between its voltage and the
high/low logic threshold value:
■ If a node voltage is equal to or larger than the high_threshold_value, its state
is ONE.
■
If the node voltage is between the high_threshold_value and
low_threshold_value, its state is undefined (U-state).
■
If a percentage sign (%) is applied to the high_threshold_value and
low_threshold_value arguments, a percentage value of the high/low voltage
is taken, rather than taking the absolute value.
When the set_logic_threshold command is not used, the default
high_threshold_value and low_threshold_value are 70% and 30%,
respectively.
set_measure_format
Sets the .measure file output format. If this command is not used, the default
.measure file output uses CustomSim formatting.
Syntax
set_measure_format -format hspice|xa -bisect_meas final|all
Argument Description
-bisect_meas final is the default and means the CustomSim tool only
final|all writes the .measure results of the bisection iteration (transient
simulation) that meets the goal of the bisection process. all
outputs the .measure results for each iteration of the
bisection process. This is useful for debugging the bisection
process/results.
Examples
set_measure_format -format hspice
set_message_option
Controls the number of warning messages the CustomSim tool prints.
Syntax
set_message_option -limit lim_val
or
set_message_option -action warn|stop|exit
or
set_message_option -pattern pat {pat} -limit lim_val
or
set_message_option -pattern pat {pat} -action warn|stop|exit
or
set_message_option -pattern pat {pat} -limit lim_val
-action warn|stop|exit
or
set_message_option -limit lim_val -action warn|stop|exit
Argument Description
-pattern pat {pat} If you specify a pattern, the settings of the current
command instance apply only to the specified warning
message. If the pattern contains white spaces, it needs to
be enclosed with a grouping delimiter, double quotes ("") or
braces ({}). You can specify multiple patterns.
Description
If you specify only the -limit argument, the CustomSim tool prints the
specified number of warning messages for every warning type. If you specify
both the -limit and -pattern arguments, the CustomSim tool prints the
specified number of messages that match the specified pattern. By default, the
messages that do not match the pattern are printed 10 times.
If you specify both the -pattern and -action arguments, the CustomSim
tool applies the action when the specified pattern is matched in a warning
message: either continue, exit, or pause the simulation.
Examples
In Example 31, when the CustomSim tool finds an ignored option or command,
it stops the simulation and exits.
Example 31
set_message_option -pattern "Option/Command ignored" -action exit
In Example 32, for any warning that contains the "floating" or "not matched"
patterns, the CustomSim tool stops and exits the simulation.
Example 32
set_message_option -pattern "floating" -action exit
set_message_option -pattern "not matched" -action exit
In Example 10, the CustomSim tool reports up to 100 warnings for the "Option/
Command ignored" pattern and stops and exits the simulation if any messages
contains the "floating" pattern.
Example 33
set_message_option -limit 100 -pattern "Option/Command ignored"
set_message_option -pattern "Floating" -action exit
In Example 34, the CustomSim tool stops the simulation if it finds the "forward
biased" or "exceeding" patterns. It displays the following prompt:
Message with stop action has been met. Do you want to exit
the simulation? [y|n]
Example 34
set_message_option -pattern "forward biased" "exceeding" -action
stop
In Example 35, the CustomSim tool will tabulate and print at most 50
occurrences of warnings containing the pattern "unsupported" and then
exit with an error.
Example 35
set_message_option -limit 50 -pattern "unsupported" -action exit.
set_model_level
Overrides the automatic choice of table model or equation used for each
set_sim_level command. This command provides the arguments to either
choose the type of model used for other set_sim_level settings or override it
with a specific type of model.
Syntax
set_model_level -level model_level
[-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name}]
[-type model_type]
[-force 0|1]
Argument Description
-force 0|1 This option is only valid when you use -type. If you
specify-force 1, CustomSim forces all MOSFETs
to use the specific type of model specified with -
type.
Description
By default, XA chooses the type of table model or equation used for each
set_sim_level command. set_model_level overrides the automatic choice
of table model or equation used for each set_sim_level. It either chooses the
type of model used for other set_sim_level commands or overrides it with a
specific type of model.
Examples
set_sim_level 3
set_model_level 5
Overrides the model strategy of level 3 with level 5. All other strategies remain
as level 3.
set_sim_level 4
set_model_level -type analog
Overrides the model strategy of level 4 to force all the MOSFETs to use analog
(dynamic) table.
set_model_option
Controls the type of model, the enhanced table feature, the BSIM4 NQS
feature, the grid, MOS binning, and model parameter checking.
Syntax
set_model_option model_spec [-grid value]
[-grid_scale scale] [instance_spec]
where
model_spec ::= current_spec|charge_spec|stress_param_spec|
b4nqs_model|binning_spec|model_param_check_spec
instance_spec ::= [-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name}]
where
current_spec::= -current current_model | -i current_model
charge_spec ::= -charge charge_model | -q charge_model
stress_param_spec ::= -lod lod_value|-wpe wpe_value
b4nqs_model ::= -b4nqs b4nqs_value
binning_spec ::= -mos_bin_ratio tolerance
model_param_check_spec ::= -model_param_check check_value
where
current_model ::= full|table| ids|fast|none
charge_model ::= full|table| fast|lump|none
Argument Description
-wpe -lod Disables or ignores STI/LOD (for -lod) or WPE (for -wpe)
-0 | off effects.
Argument Description
-mos_bin_ratio Specifies the ratio tolerance for binning the MOS model. It
tolerance is an integer value between 0 and 500 and must always be
followed by a percent sign (%). The default is 0.
Post-layout simulations use extracted netlists with final
sizes for devices. The final sizes extracted from layout are
slightly different from the schematic sizes, so devices with
the same size in pre-layout (or schematic) netlist have
slightly different sizes in the post-layout netlist. The
difference is same but results in many devices each having
its own size parameters. As a consequence, the
CustomSim tool generates a large number of unique
models, which can increase the memory usage and run
time.
The purpose of this option is to create fewer models and
improve the memory usage and run time for post-layout
simulations. All devices with parameters that differ by less
than a given ratio share the same model. All parameters
are assumed to have the same importance and the same
ratio is used for all parameters.
-grid grid_value Sets the absolute LUT grid size in volts. You can only
specify this option globally.
Argument Description
Description
The CustomSim tool automatically chooses the appropriate current and charge
model. You can overwrite this automatic selection and take the following stress
effects into consideration:
■
Shallow trench isolation (STI), a compact way of separating transistors for
submicron geometries.
■ Length of oxide definition (LOD), a measure of transistor layout sizing, used
to modify device characteristics due to submicron effects.
■
Well proximity effect (WPE), a measure of device degradation due to
closeness of the transistor well or body to the transistor itself.
By default, the CustomSim tool builds a unique model (either an equation level
model or a look-up table model) for each unique transistor geometry. A different
model is required for a transistor even if the dimensions are the same as
another transistor, differing only in the STI/LOD/WPE value. In this way, the
CustomSim tool preserves all STI/LOD/WPE effects.
The CustomSim tool enables turning off the BSIM4 NQS parameter, if
TRNQSMOD=1, without modifying the model file, to see if performance is
impacted by using this parameter.
The CustomSim tool can also use an enhanced table model method, applied
for a given transistor dimension. This model uses derating factors to account for
STI/LOD/WPE effects during simulation. The algorithm provides performance
and memory capacity advantages with minimal loss of accuracy.
You set the -lod and -wpe values to 0 or off to ignore STI/LOD/WPE effects,
to 1 or on (default) to use preserve all stress effects, and to 2 to use the
enhanced table model method.
The CustomSim tool can also:
■
Control binning of MOS devices whose parameters fall within a given
percent ratio of one another.
■ Automatically choose the appropriate grid and grid scale. You can overwrite
this automatic selection.
■
Abort or continue when fatal model parameter checking errors occur.
Examples
The following example uses the full current model and full charge model.
set_model_option -i full -q full
The following example uses the enhanced look-up table for all effects.
set_model_option -lod 2 -wpe 2
The following example uses the mos binning ratio feature set to 10%.
set_model_option -mos_bin_ratio 10%
The following example uses the grid and grid_scale feature, set to 0.01V and
0.5, respectively.
set_model_option -grid 0.01
set_model_option -grid_scale 0.5
The following example uses the model parameter checking feature, set to 0 for
the simulation to continue with .reset model parameters that are fatal.
set_model_option -model_param_check 0
set_monte_carlo_option
Specifies how to run traditional Monte Carlo analysis for transient simulation.
Syntax
set_monte_carlo_option [-enable enable_value]
[-sample_output output_files]
[-parameter_file enable_value]
[-simulate_nominal enable_value]
[-dump_waveform enable_value]
Argument Description
-enable The default setting for this option is enabled and must be
enable_value set to process monte carlo samples. If this option is
disabled and the netlist contains a sweep monte
statement, the sweep monte statement is ignored with a
warning.
Description
You can run Monte Carlo analysis as an additional check to ensure that your
design functions as expected. The CustomSim tool only supports traditional
Monte Carlo analysis for transient simulations with the HSPICE netlist format.
For more information about traditional Monte Carlo analysis, see the Monte
Carlo - Traditional Flow and Statistical Analysis section in the HSPICE User
.mc.csv Contains all of the data in the .mc file, except the
histogram. You can read this .csv file in a spreadsheet
program.
Monte Carlo analysis generates the following output files on a per Monte Carlo
sample basis if you specify -sample_output:
Examples
meas_variable = out
nominal = 0.000000e+00
mean = 8.228455e-05
varian = 5.832803e-08
stddev = 2.415120e-04
avgdev = 1.893783e-04
min = -1.568056e-04
max = 6.508503e-04
median = 3.212345e-04
run_min = 4
run_max = 8
run_median = 7
The .mc_csv file in Example 38 contains the same data as the .mc file, except
for the ASCII histogram. It has CSV formatting. The first line is a header row:
Example 38 .mc_cvs File
meas_variable,nominal,mean,varian,stddev,avgdev,min,max,…
out,0.000000e+00,8.228455e-05,5.832803e-08,…
mc_index = 1
set_multi_core
Runs a multicore simulation.
Syntax
set_multi_core [-core num_cores] [-check_model value]
[-check_netlist value]
Argument Description
Argument Description
Examples
set_multi_core -core 4
Checks if models are internally tagged as thread-safe and errors out if they are
not tagged as thread-safe.
set_multi_rate_option
Enables the multi-rate technology mode.
Syntax
set_multi_rate_option -mode 1|2
Argument Description
set_oscillator
Applies the trapezoidal integration method to oscillator circuits.
Syntax
set_oscillator -inst inst_name|-subckt subckt_name
[-disable value] [-report value]
Argument Description
Description
Trapezoidal integration is often the best integration method for LC oscillator
circuits but can apply to other types of oscillators as well. If the characteristic
frequency on an inductive network is between 0.5Hz and 800 MHz, an
oscillator circuit is often identified automatically. Because the capacitors in an
LC oscillator have a critical impact on the oscillation frequency, this command
causes conservative treatment of the capacitors in the oscillator.
If the CustomSim tool fails to identify an oscillator automatically, you can use
the set_oscillator command to manually specify the trapezoidal
integration method. Trapezoidal integration is also applied to the regions
(partitions) that contain the designated oscillators. You can also use this
command for other circuit elements that require trapezoidal integration.
In a hierarchical netlist, apply trapezoidal integration to the inductor of the
oscillator or the lowest-level subcircuit that contains the oscillator. In a flat
netlist, apply it to the inductor.
Examples
The following example applies the trapezoidal integration method to an inductor
instance.
Example 40
set_oscillator -inst x1.xosc.L1
The following example disables automatic detection and applies the trapezoidal
integration method to the specified instance.
Example 45
set_oscillator -inst xxtal -disable 1
set_partition_option
Overrides the automatic setting for circuit partitioning.
Syntax
set_partition_option -sp enable_value [-ap enable_value]
[-print_power enable_value]
[[-rule] gate|channel|never]]
[-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name }]
Argument Description
-sp enable_value Turns static partitioning on (1, the default) or off (0).
Static partitioning is not instance specific and does
not affect the idealized power-net block region.
Argument Description
Description
You can use the set_partition_option command to enable/disable the
CustomSim tool partitioning algorithms. The CustomSim tool has two stages of
partitioning: static partitioning and advanced partitioning. The static partitioning
algorithm uses mature circuit heuristics to perform partitioning. The advanced
partitioning algorithm uses more aggressive partitioning methods to try to
further reduce partition sizes.
If -sp 0 is set all partitioning is disabled and the -ap setting is ignored. You
can disable the advanced partitioning with -ap 0 to isolate partitioning issues
or to assist in tightening simulation accuracy at a cost of simulation run time.
Disabling static partitioning disables all circuit partitioning in the CustomSim
tool. This is not recommended for large circuits because of the prohibitive
simulation runtime.
Examples
set_partition_option -ap 0
set_powernet_level
Controls the performance/accuracy tradeoff for IR drop simulation.
Syntax
set_powernet_level -level level_value
Argument Description
Description
The higher the set_powernet_level, the more parasitic elements are taken
into consideration for IR drop simulation. If the resistor connected to the power
supply is below the predetermined value for each set_sim_level, the resistor is
not taken into consideration for IR drop simulation.
The CustomSim tool automatically adjusts the resistance value based on the
simulation strategy. You can override the automatically chosen idealized power-
net strategy to meet your accuracy requirements, especially for IR-drop
simulations. The smaller the value, the better the accuracy for IR-drop
simulations.
The main usage for the set_powernet_level command is to use it along
with set_sim_level to speed up the IR drop simulation. Set set_sim_level
command based on the circuit types (see Table 12) and use a higher
set_powernet_level to override the pre-determined resistance value of
set_sim_level. Otherwise, the resistance value of set_powernet_level by
default matches the levels by set_sim_level. For a more detailed IR drop
simulation, set a higher set_powernet_level to take more parasitic
resistors connected to an idealized power-net block for simulation.
Table 12 Guidelines for Appropriate Circuit Types for Each set_sim_level
7 X X X X
6 X X X X X X
5 X X X X X X
4 X X X X X X
3 X X X X X
Examples
set_sim_level 3
set_powernet_level 6
In the previous example, the CustomSim tool overrides only the idealized
power-net resistor tolerances used in set_sim_level 3 with the tolerances used
in set_sim_level 6. All resistors connected to power supply with values larger or
equal to 1 ohm are taken into the simulation. set_sim_level 3 is suitable for IR
drop simulation for digital, memory or low-sensitivity analog designs.
set_powernet_option
Controls how resistors are partitioned into the idealized power-net block.
Syntax
set_powernet_option -ideal_rmax res_value
[-collapse_node node {node}]
[-id enable_value]
Argument Description
-id enable_value Enables advanced power net identification. The default is off.
Description
This command controls how resistors are partitioned into the idealized power-
net block. Power-net elements and nodes connected to ground through low-
impedance elements (such as voltage sources and resistors smaller than the
specified value) are put into the idealized power-net block. Table 13 shows the
defaults used at the different accuracy levels.
Table 13 Default set_powernet_option Values
set_sim_level 3 10 ohms
set_sim_level 5 5 ohms
set_sim_level 6 1 ohms
In some cases the CustomSim tool might automatically adjust the resistance
value based on the simulation strategy. You can override the automatically
chosen idealized power-net strategy to meet your accuracy requirements,
especially for IR-drop simulations. The smaller the value, the better the
accuracy for IR-drop simulations.
set_probe_option
Controls probing options.
Syntax
set_probe_option -probe_undefined_node enable_value
[-variable_separator separator_char]
[-netlist_probe_control control_value]
[-skip_flat_pl_node control_value]
Argument Description
Description
When you specify -probe_undefined_node the CustomSim tool creates a
signal in the plot file with a constant value of 0V for any explicitly probed node.
This feature is only available for Eldo syntax netlists.
Examples
set_probe_option -probe_undefined_node 1
set_probe_option -netlist_probe_control 1
Ignores all probe statements and other statements that may trigger probing.
set_probe_window
Defines a printing window that reduces the waveform output file size.
Syntax
set_probe_window -window {time_start_value time_end}
time_start_value [time_end]
where:
time_end ::== time_end_value | end
Argument Description
Argument Description
Description
This command affects only the output waveform file. It does not have any effect
on any measure/extract or any other diagnostic command. If you specify
multiple set_probe_window commands, the last one takes precedence.
Multiple commands do not cause print windows to accumulate.
If the final time_end value is not specified it is assumed to be end. If multiple
windows are specified, they cannot overlap. The window end time must be
greater than the start time. The window times must be greater than 0.
The CustomSim tool supports the tstart option of HSPICE, Eldo, and TI-
SPICE, as well as the outputstart option of Spectre. set_probe_window
can be used to set the print window.
Examples
set_probe_window 1u
The previous example overrides the .tran statement because it occurs last.
Printing starts at 500ns.
.opt xa_cmd="set_probe_window 500n"
.tran 1n 1u 200n
In the previous example, the .tran statement overrides the xa_cmd. Printing
starts at 200ns.
set_probe_window 500n
The previous example prints from 100ns to 300ns and 400ns to 1us.
set_probe_window 100n 300n 400n
The previous example prints from 100ns to 300ns and 400ns to 1us.
set_probe_window –window 10n 20n
set_probe_window 30n 40n
set_resistor_option
Lets you control resistor handling at different phases of the simulation.
Syntax
set_resistor_option -rule 1|2 [-min value] [-max value]
[-report enable_value]
or
set_resistor_option [-keep_negative_res enable_value]
[-report enable_value]
Argument Description
Argument Description
Description
Table 14 shows the defaults for handling schematic resistors in a simulation.
Table 14 Defaults for handling resistors
Examples
set_resistor_option -rule 1 -min 0.1 -max 1e10
Sets the minimum and maximum threshold to 0.1 and 1e10 for all schematic
resistors. By default, all the schematic resistor values between -0.1 and 0.1 are
shorted by -rule 1. All the schematic resistors with values less that or equal
Sets the minimum and maximum threshold to 0.1 and 1e10 for all schematic
resistors. The minimum threshold for back-annotation resistors is set to 0.01 by
set_ba_option. By default, all the schematic resistor values between -0.1 and
0.1 are shorted by -rule 1. All the schematic resistors with values less that or
equal to -1e10, or greater than or equal to 1e10 are open by -rule 1.
set_resistor_option -rule 1 -min 0.1 -max 1e10
set_ba_option -min_res 0.01
load_ba_file -file ba1.spf
load_ba_file -file ba2.spf -min_res 1 -min_cap 1e-20
Sets the minimum and maximum threshold to 0.1 and 1e10 for all schematic
resistors. The minimum threshold for back-annotation resistors is set to 0.01 by
set_ba_option. The load_ba_file -res_min command overrides the minimum
threshold for the ba2.spf file to 1. By default, all the schematic resistor values
between -0.1 and 0.1 are shorted by -rule 1. All the schematic resistors with
values less that or equal to -1e10, or greater than or equal to 1e10 are open by
-rule 1.
set_resistor_option -rule 1 -min 0.5
set_resistor_option -rule 2 -min 10
load_ba_file -file ba.spf
All the schematic resistor values between -0.5 and 0.5 are shorted according
to -rule 1. All the schematic resistors with values less that or equal to -1e12,
or greater than or equal to 1e12 are open according to -rule 1. All the
schematic resistor values between 0.5 and 10 and -10 and 0.5 are shorted
according to -rule 2.
Figure 3 shows the relationships between -rule 1 and -rule 2 in the
same simulation.
0
max(rule2) min(rule2) min(rule2) max(rule2)
(min of rule1) < (min of rule2) and (max of rule1) > (max of rule2) for positive resistors and capacitors
(min of rule1) > (min of rule2) and (max of rule1) < (max of rule2) for negative resistors and capacitors
Figure 3 Using -rule 1 and -rule 2 for resistors in the same simulation
See Also
load_ba_file
set_ba_option
set_restore_option
Restarts the saved run at time 0, regardless of the saved time.
Syntax
set_restore_option -time 0
Argument Description
set_sample_point
Use this command when you need to make very precise periodic
measurements, such as in FFT applications.
Syntax
set_sample_point -period period_value
[-twindow {start_time stop_time} start_time [stop_time]]
Argument Description
-twindow {start_time Sets the start and stop time of the first sampling
stop_time} start_time point.
[stop_time]
Description
Very precise measurements such as those made during FFT analysis can be
adversely affected by sampling the simulator output waveforms, if the sample
points interpolate between time points solved by the simulator. This command
forces the simulator to synchronize all partitions and solve each time point that
will be sampled during a post-processing measurement. This prevents any
interpolation errors and maximizes the precision of a measurement.
Examples
Assume you are simulating a DAC and need to analyze the spectral output by
computing an FFT. The following example starts the first sample at 10
microseconds and sets the sampling rate to 10 mega samples per second.
That is, a sample point occurs at 10μ, 10.1μ, 10.2μ, 10.3μ, and so forth.
set_sample_point -period 100n -twindow 10u
Assume you are simulating a DAC and need to analyze the spectral output by
computing an FFT. In the following example, the first sample is at 10μ sampling
at a rate of 100Msps. The end of the sampling time is 20μ.
set_sample_point -period 100n -twindow 10u 20u
set_save_state
Saves a partial simulation run to be restarted later.
Syntax
set_save_state [-time t_val {t_val}] |
[-period time_period ] | [-period_wall_time wall_time]
[-save_on_kill enable_value]
{[-time t_val {t_val}] | [-period time_period ] |
[-period_wall_time wall_time]
[-save_on_kill enable_value]}
[-type op|OP] [-file file_name]
Argument Description
-time t_val Saves the simulation at the time or times you specify. For
{t_val} ... each t_val time you specify the CustomSim tool creates a
file with .t_val#.ic extension. The dc (for time 0) and end
(for last transient point) keywords are valid values for t_val.
-period Saves the simulation at the time period you specify. The
time_period image is saved in a file with a .time.ic extension.
-period_wall_time Saves the simulation in a single file at the "wall time" period
wall_time you specify. The image is saved with a .save.ic extension.
The file is overwritten at each specified period time interval.
You must specify the wall time period in hours, and decimal
points are accepted.
-file file_name Specifies the names of the saved files. The saved files have
.ic and .ic.sup. extensions. If you specify multiple
filenames, the last one is used for all saved files.
Description
The set_save_state command generates two files, one with a .time.ic
extension and one with a .time.ic.sup extension for each saved time you
specify with the -time or -period option.
When you specify -period_wall_time, two files are created with a
.save.ic and .save.ic.sup extension. The files are overwritten at each
wall time period. When you specify -save_on_kill, two files are created with
a .save.ic and .save.ic.sup extension.
Note: Do not delete the .ic or .ic.sup files. You need both files to
restore a saved simulation. For more information abut restoring
a saved simulation, see the CustomSim User Guide.
Saves the simulation when the run is killed with the UNIX kill -15
command.
set_save_state -period 200n -type OP
set_save_state -time 10n 20n -type OP
set_sim_case
Controls case-sensitivity in a netlist.
Syntax
set_sim_case -case upper|lower|sensitive
Argument Description
Description
set_sim_case lets you control the case-sensitivity of the CustomSim tool for
all the supported netlist formats. When the -case upper|lower argument is
set, the CustomSim tool is case- insensitive and converts all names to
uppercase or lowercase, respectively. The -case sensitive argument
enables the CustomSim tool to be case-sensitive for all netlist formats.
Note: The temper and hertz keywords are always case insensitive
when evaluating expressions.
Examples
* Example 2 : HSPICE format
R1 port1 0 10
R2 porT1 0 10
r3 Port1 0 10
set_sim_hierid
Specifies the hierarchical separation character.
Syntax
set_sim_hierid -hierid sep_char
Argument Description
Description
If you specify both the Eldo .hier option and the set_sim_hierid
command in the netlist file, the set_sim_hierid command takes
precedence. The same precedence applies if the set_sim_hierid command
is in the CustomSim command file.
Examples
set_sim_hierid /
set_sim_level
Controls the speed and model complexity trade-off.
Syntax
set_sim_level -level level instance_spec
Description
See the Common Syntax Definitions section for details about the
instance_spec argument.
Controls the simulator speed and model complexity tradeoff. This command
can be applied to the entire netlist, or to specific subcircuits or instances. The
default level is 3, if this command is not specified.
Examples
Example 46 sets the simulation level to 5 on the entire netlist:
Example 46
set_sim_level 5
set_sram_characterization
Specifies the performance/accuracy settings for simulating SRAM designs.
Syntax
set_sram_characterization [-enable] enable_value
[-app[lication] timing|power|pwra]
[-acc[uracy] 1|2|3|4|5]
[resistor_rule 1|2] [capacitor_rule 1|2]
Argument Description
Argument Description
resistor_rule 1|2 You can specify one of the following values to control how
the CustomSim tool processes resistors:
■
1 (default) to specify that resistor optimizations are
done during parsing.
■
2 to specify that resistor optimizations are done during
front-end optimization. Specify this option when you
want to protect the resistors that are probed.
capacitor_rule 1|2 You can specify one of the following values to control how
the CustomSim tool processes capacitors:
■
1 (default) to specify that capacitors optimizations are
done during parsing.
■
2 to specify that capacitor optimizations are done
during front-end optimization. Specify this option
when you want to protect the capacitors that are
probed.
Description
For details about how to use the set_sram_characterization command
to simulate SRAM designs, see the CustomSim User Guide.
Examples
set_sram_characterization 1 -application timing
set_sram_characterization 1
set_synchronization_level
Controls the synchronization settings between the gate/channel/bulk of the
elements.
Syntax
set_synchronization_level -level level_value
[-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name }]
Argument Description
Description
You use the set_synchronization_level command with set_sim_level to
speed up or to increase the accuracy of a simulation. For example, in some
designs that use set_sim_level 5, you can get better performance, and close to
the same accuracy, with set_synchronization_level 3.
set_synchronization_option
Provides flexibility to control the synchronization between blocks.
Syntax
set_synchronization_option -rule gate|never
[-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name }]
Argument Description
Description
This command is often used with the set_partition_option command. When
manual partitioning is applied to an instance, different partitions might need to
be synchronized to improve the accuracy, or un-synchronized to speed up the
simulation. You can apply this command can be applied globally or locally.
set_tolerance_level
Provides flexibility for tuning the CustomSim tool relative tolerance level to the
set_sim_level setting. The relative tolerance level controls the sensitivity of the
simulator to small voltage changes.
Syntax
set_tolerance_level -level tolerance_level [instance_spec]
Argument Description
instance_spec See the Common Syntax Definitions section for details about
the instance_spec argument.
Description
set_tolerance_level provides more flexibility to tune the CustomSim tool
to specific simulation requirements, similar to set_tolerance_option. It lets you
adjust the relative tolerance level appropriate to the corresponding
set_sim_level level.
The set_tolerance_level command is helpful when:
■
A CustomSim simulation is functionally correct at a lower set_sim_level
setting, but a higher set_sim_level setting is needed to achieve the required
accuracy. There are cases when you can use a lower set_sim_level setting
with a higher tolerance_level to obtain the desired accuracy with better
performance.
For example, if a data converter is functional at set_sim_level=5 and
higher, but the FFT requirements are only met at set_sim_level=7. You
might find that set_sim_level=5 and set_tolerance_level 7
achieves the required accuracy with significantly better performance than
set_sim_level=7.
■
An CustomSim simulation meets the accuracy requirements, but runs
slowly. You can set tolerance_level to a lower value below the
corresponding set_sim_level setting to gain better performance with
This example applies a set_sim_level of 6 setting to the entire circuit. For the
a2d subcircuit, the tolerance parameters are overwritten with a more
conservative setting of set_tolerance_level 7.
set_tolerance_option
Lets you control the simulation tolerance independent of the set_sim_level
command for more flexibility in tuning performance/accuracy.
Syntax
set_tolerance_option -tol tol_value [-tol_rule 0|1]
[-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name}]
Argument Description
-tol tol_value Specifies the tolerance value. The most significant impact of
this value is to adjust the time step of the simulation. However,
the specified tolerance value also has secondary impacts on
the MOS look-up table granularity and RC reduction. Table 15
shows the default tolerance values.
Argument Description
Description
By providing more flexibility in tuning a CustomSim simulation to specific design
requirements, set_tolerance_option lets you control the simulation
tolerance independent of the set_sim_level command. You can apply
set_tolerance_option globally or locally.
The tolerance value (-tol) controls the sensitivity of the simulation to small
voltage changes. This value is arbitrary and is not based on a unit. Valid values
are 0.1 to 800. Note that a value of 800 is extremely aggressive in favor of
performance, and most circuits are not functional with this setting.
The default tolerance values for each set_sim_level setting are shown in
Table 15.
Table 15 Default Relative Tolerance Values
set_sim_level 4 -tol=150
set_sim_level 5 -tol=100
set_sim_level 6 -tol=50
set_vector_option
Allows the plotting of a logic signal to represent the "output expected" signal for
any specified output variable inside the VEC/VCD file.
Note: Only the WDF, FSDB, WDB, OUT and VPD formats support this
feature.
Syntax
set_vector_option [-node node_name {node_name}]
[-check_u_state value] [-check_z_state value]
[-check_method value] [-define_x_state state_value]
[-vec_mode mode] [-print_expected switch_value
[-node node_name {node_name}]]
Argument Description
-check_u_state value Checks the U-state between the signals in the VCD
and CustomSim VEC files against the actual state of
the nodes. You can specify a value of 0 or 1:
■ 0 (default) specifies that if a node is in a U-state, it
passes the vector checking regardless of the value
in the VCD or CustomSim VEC files. In addition, if
U-state is specified in the VCD or CustomSim
VEC files, a node passes checking regardless of
its state.
■
1 specifies that the node state level must match
the expected U-state specified in the CustomSim
VEC file. If a VCD file is used, the
check_u_state check is ignored and no
checking is preformed.
-check_z_state value Checks the Z-state between the signals in the VCD
and CustomSim VEC files against the actual state of
the nodes. You can specify a value of 0 or 1:
■
0 (default) specifies that the floating status for
nodes is not checked.
■
1 specifies that floating status for nodes must
match the floating status specified in VCD and
CustomSim VEC files.
Argument Description
-node node_name Multiple nodes are allowed with multiple node names.
{node_name} Without this option,
-print_expected is a global option.
Examples
set_vector_option -print_expected 1
Generates the expected output signal in the waveform file for visual comparison
with the actual output signal waveform.
set_vector_option -print_expected 1 -node d[0]
Generates the expected output for the following signal names: d[0], d[1],
d[2], and s[0].
set_vector_option -check_z_state 1 -check_u_state 1
Instructs the CustomSim tool to report the mismatch of the high impedance
state (Z) and U-state between simulated node states and the states specified in
the VEC/VCD file.
set_waveform_format
Specifies the fsdb file format.
Syntax
set_waveform_format -format version
Default and latest version of FSDB will be selected. Output file will be FSDB Version 5.0
Argument Description
set_waveform_option
Sets the output waveform options. You can specify the file format, file-split size,
voltage resolution, current resolution and flush percentage.
Syntax
set_waveform_option [-grid_v grid_val] [-grid_i grid_val]
[-compress_v compress_val] [-compress_i compress_val]
[-tres time_resolution_value]
[-flush flush_time | flush_percentage_value%]
[-format format] [-file split | merge]
[-size max_file_size_MB] [-disk_full space_in_MB]
Argument Description
Argument Description
Argument Description
Description
The format switch can be used to set the waveform output file format.
The waveform format can be specified in several ways. The order of
precedence for specifying the waveform output file format is:
1. -wavefmt option on the command line
2. set_waveform_option command in a command script file (the command
script file is evaluated as if the file were used on the final line of the netlist)
3. The last .opt post=format or .opt
xa_cmd="set_waveform_option ..." command that appears in the
netlist
The size switch can be used to force the splitting of the waveform output file to
a more convenient size. The value is specified in megabytes. The minimum file
size for the formats that support file splitting is 10Meg. See Table 16 for the
Output -compress_v -compress_i -grid_v -grid_i -tres -flush Split 32- 64-
Format (-size) bit1 bit1
tr0 1uV 1pA N/S N/S 0.1p N/S N/S N/A N/A
psfbin 1uV 1pA N/S N/S 0.1p N/S N/S N/A N/A
during the simulation. If this command is not specified, the default setting is
every 10%.
The disk full option alerts you that the output disk is nearing capacity. If the
disk becomes completely full, unpredictable behavior may result. The -
disk_full option can be used to raise warnings when the disk is nearing
capacity (2x the set or default value) and to stop when the disk is nearly full
(space is less than the set value). This may help to preserve the integrity of
output files, but their integrity cannot be guaranteed.
If the -disk_full option is not specified the CustomSim tool only raises
warnings when the disk has less than 200MB (2x the default value of 100MB).
If this option is specified, the CustomSim tool stops with a disk full error if the
disk space is detected to be less than the specified threshold.
The default value of disk full is 100MB. If the disk full option is not explicitly set
the CustomSim tool starts to issue warnings when the disk has less than
200MB of space, but it does not stop with an error:
Warning: The available disk space 175MB is less than
200MB. Ctrl-C can suspend a simulation. Use the
set_waveform_option command to adjust the disk full
threshold.
If you specify:
set_waveform_option -disk_full 1000
The CustomSim tool issues a warning when the disk space is less than 2Gig
and stops when it is less than 1G.
Examples
set_waveform_option -format out -size 1000 -grid_i 1n -grid_v 1n
-tres 1p -flush 5%
Sets the output format to out, a split size of 1000Meg, current grid to 1nA,
voltage grid to 1nV, and writes to the waveform output file every 5% of the
simulation time. The time resolution is set to a minimum of 1ps.
set_waveform_option –flush 100n
The previous example causes the CustomSim tool to update the waveform file
after every 100ns of simulation time.
set_waveform_option –flush 150ns
The previous example causes the CustomSim tool to update the waveform file
after every 150ns of simulation time.
The previous example causes the CustomSim tool to update the waveform file
after every 10% of the simulation time. If the transient end time is 2us, in this
example the CustomSim tool updates the waveform file after at least every
200ns.
See Also
enable_print_statement
Supported Waveform Formats in “Running the Simulator” in the CustomSim
User Guide.
set_wildcard_rule
Enables the CustomSim tool to match all levels of the hierarchy—or only one
level—depending on your specifications. By default, the CustomSim tool
follows HSPICE behavior, which matches all levels of the hierarchy.
Syntax
set_wildcard_rule -match* all | one
Argument Description
Description
Sets rules for wildcard * matching in instance and node hierarchical names.
If the one argument is set, the CustomSim tool matches the asterisk ( * )
character to one level of the hierarchy; otherwise, all levels of the hierarchy are
matched.
Examples
set_wildcard_rule -match* one
See Also
probe_waveform_current, probe_waveform_logic,
probe_waveform_voltage, report_power
set_zstate_option
Sets the conducting rules for the check_node_zstate command.
Syntax
set_zstate_option -idsth value_1 [-vbeth value_2]
[-rule rule_value {rule_value}] [-diode_vth value]
[-va_rule value] [-xdummy value]
Argument Description
Argument Description
Description
This command specifies the conducting rules so that the CustomSim tool can
diagnose specified nodes staying in a high-impedance (floating) state for a
specific period of time. The detected nodes are reported to an error file with
suffix of .errz.
A node stays in a high-impedance state if there is no conducting path from any
voltage source to the node. A conducting path consists of conducting elements.
An element is conducting if that specific element meets the following criteria:
Device Rule
NMOS Vgs > Vth (rule=1) || Ids > idsth (rule=2) || Vg > VDD-0.1
(rule=3)
The default for idsth is 1e-8A. The default rule is 1 & 2.
PMOS Vgs < Vth (rule=1) || Ids > idsth (rule=2) || Vg < 0.1 (rule=3)
The default for idsth is 1e-8A. The default rule is 1 & 2.
Device Rule
Examples
skip_circuit_block
Provides the equivalent effect of commenting out instances without editing
netlist files.
Syntax
skip_circuit_block instance_spec
Description
Be careful how you use this command, because it can affect the circuit
connectivity. It checks for floating nodes, gates, and dangling nodes after the
circuit block has been removed and issues appropriate warnings.
Examples
Example 49
skip_circuit_block -inst x1.xregulator
Example 50
skip_circuit_block -subckt pdetect
Example 51
skip_circuit_block -inst d1 -subckt nmosmac
source
source is a native TCL command, not a CustomSim-specific command. You
use it to include other command script files.
Syntax
source file_name
Description
This command reads and references another command script file. Use it with
the -c command line option, not the .opt xa_cmd option.
Examples
Example 52
#Test case-specific file
set_sim_level 4
#Load common settings
source xa_common_settings.tcl
iset_break_point
iset_diagnostic_option
iset_interactive_option
iset_save_state
iset_zstate_option
alias
Creates an alias name for the interactive commands. When arguments are
specified, an alias is defined for each alias_name for whose actual_name is
given.
Syntax
alias alias_name actual_name
Argument Description
Examples
Example 53
alias pns iprint_node_info
Example 54
alias ipe iprint_elem_info -index
icheck_node_zstate
Performs a high-impedance node check in interactive mode.
Syntax
icheck_node_zstate -node node_name {node_name}
[-fanout <0|1|2>]
[-rule rule_value {rule_value}]
[-subckt subckt_name {subckt_name}]
[-except_subckt subckt_name {subckt_name}]
[-diode_vth value]
[-idsth ids_value]
[-vbeth vbeth_value]
[-except_node node {node}]
[-file file_name]
[-report report_value {report_value}]
Argument Description
Argument Description
-diode_vth value Sets the forward bias threshold for diodes. A diode with
v(a,c) greater than value is considered conducting for a
high impedance check. A value less than 0 causes diodes
to be always considered non-conducting.The default value
is 0.2V.
-file file_name If you specify a file name the output is written to that file
instead of standard output. If you specify an existing file
name, that file is overwritten.
Description
This interactive command enables the CustomSim tool to diagnose specified
nodes staying in a high-impedance (floating) state.
Device Rule
■
PMOS Vgs < Vth (rule=1)
■
Ids > idsth (rule=2)
■ Vg < 0.1 (rule=3)
For more information about the rule values, see
iset_zstate_option.
Diode Forward-biased.
iclose_log
Closes the interactive mode log file that was opened by the iopen_log
command. The log file contains all records of interactive mode commands and
the results reported by the commands entered between iopen_log and
iclose_log.
Syntax
iclose_log
See Also
iopen_log
icontinue_sim
Continues the transient simulation from the initial stop point to the following
stop point. If time and unit are specified, the simulation stops and enters the
interactive mode at time t+(time)(unit). The -to option specifies the
absolute time to which the simulation proceeds, then enters interactive mode.
Syntax
icontinue_sim -i time[unit] [-to time[unit]]
Argument Description
Examples
icontinue_sim 10n
This example runs the simulation to 10ns and returns to interactive mode,
assuming current time is less than 10ns.
idelete_break_point
Removes the stop points.
Syntax
idelete_break_point -point all|stop_point1
[stop_point2 ... stop_pointn]
Argument Description
Examples
XA> ilist_break_point
1: break at time: 1 ns
2: break at time: 10 ns
XA> idelete_break_point 2
XA> ilist_break_point
1: break at time: 1 ns
Example 55
idelete_break_point -point 2
iforce_node_voltage
Forces the specified nodes to stay at the specified constant voltage. The node
voltage stays at the same value from the current time until either the end of
simulation or when the constant node voltage status is released by
irelease_node_voltage.
Syntax
iforce_node_voltage -node node_name {node_name}
-v[oltage] voltage_value [-slope t_value]
Argument Description
-slope t_value Forces the voltage with a ramp of t_value (in seconds
per volt). The default is 1ps and must be positive a positive
value.
Examples
XA> iforce_node_voltage -node cn -voltage 2
The cn node is forced at 2 V starting at the current time. It remains at this value
until the end of the simulation unless you use irelease_node_voltage command
for the same node.
ilist_break_point
Lists the existing stop points.
Syntax
ilist_break_point -list [number]
Argument Description
Examples
XA> ilist_break_point -at 1n
XA> iset_break_point -at 10n
XA> ilist_break_point
1: break at time: 1 ns
2: break at time: 10 ns
Example 56
ilist_break_point -list
ilist_force_node
Lists all nodes you specified with force_node_voltage.
Syntax
ilist_force_node -file file_name
Argument Description
-file file_name Specifies the file name that contains the list
of forced nodes.
Description
If you specify the -file argument, the forced node list is written to the
specified file. Otherwise the list is echoed to the standard output.
Note that a node forced with force_node_voltage is not listed in the output of
this command unless the simulation time advanced since the node was forced.
Examples
XA> iforce_node_voltage xbuffer.pd_d -v 1.2
XA> iforce_node_voltage xbuffer.sigi -v 0
XA> ilist_force_node
XA> icont 1n
XA> ilist_force_node
xbuffer.pd_d (4) = 1.2
xbuffer.sigi (3) = 0
imatch_elem
Prints a list of the element indexes and hierarchical element names that match
the specified pattern.
Syntax
imatch_elem -pattern pattern ...
Argument Description
Examples
XA> imatch_elem *x1*
5 x1.r1
6 x1.r2
7 x1.x1.r1
imatch_node
Prints a list of the node indexes and node names that match the specified
pattern.
Syntax
imatch_node -pattern pattern ... [-limit level] [-port
enable_value]
Argument Description
Argument Description
Description
imatch_node prints a list of matched nodes. The CustomSim tool first reports
the value of
-limit applied, then lists the node index and node name matched with one
item per line. Finally, the CustomSim tool reports the total number of matched
nodes.
The iset_interactive_option command settings apply to this command. The "*"
wildcard can be set to match or not to match the hierarchical delimiter. The "*"
wildcard * only matches primary node names, unless you specify the -port
argument. When you specify -port, the "*" wildcard also matches alias node
names.
Examples
XA> imatch_node *a
1 a
2 x1.a
3 x1.fa
pattern *a matched 3 nodes
This example finds all nodes ending in a at the top-level of the netlist, level 0.
XA> imatch_node *out -limit 4 -port 1
15 x0.x1.x2.aout
15 x0.x1.x2.x3a.out
16 x0.x1.x2.bout
16 x0.x1.x2.x3b.out
This example finds all nodes ending in out down to the hierarchical depth of 4
and also reports ports.
See Also
iset_interactive_option
iopen_log
Opens the interactive mode logfile_name, which contains the record of the
interactive mode commands and the results reported by these commands until
the log file is closed by the iclose_log command. Only one log file can be
opened at one time.
Syntax
iopen_log -file logfile_name [-mode append|write]
Argument Description
Examples
iopen_log -file logfile
iprint_connectivity
Prints the detailed node connectivity information for the given node names or
indices. The elements are categorized into channel-connected, gate-
connected, and other elements.
Syntax
iprint_connectivity -node node_name {node_name}
[-print gc|cc|o|all] [-on current_value]
[-file file_name] [-file_append file_name]
Argument Description
-node node_name {node_name} Specifies the node name, which can contain
wildcard characters.
Examples
iprint_connectivity -node xspine_0.xdqr_0.xl850.osc_2
iprint_connectivity xspine_0.xdqr_0.xl850.osc_2 -print cc
iprint_connectivity -index 3
See Also
iprint_node_info
iprint_dcpath
Finds and prints the DC path information.
Syntax
iprint_dcpath -ith ival [-node node_name {node_name}]
[-at tval {tval}] [-file file_name]
or
iprint_dcpath -ith ival [-node node_name {node_name}]
[-period period_value [-start start_time]
[-end end_time]] [-file file_name]
Argument Description
ith ival Sets the current threshold value. The default is 50uA.
-node node_name Specifies the terminal node names of the DC current path.
{node_name} The DC path search starts from any node specified in this
node list and ends when it reaches either another node in
the list or a DC voltage source node. If you do not specify
a node, the CustomSim tool reports DC current paths
between any pair of voltage source nodes.
-at tval {tval} Specifies the specific time points at which the path
checking occurs.
Argument Description
-start start_time Specifies the first time that periodic path checking occurs.
If you do not use -start periodic checking starts at the
current time.
You can only use -start with the -period argument.
Description
The iprint_dcpath command searches for and reports DC paths. The DC
path search starts from any specified node and ends when the search reaches
either another node in the list or a DC voltage source node. If you do not
specify a node, the CustomSim tool reports the DC current paths between any
pair of voltage source nodes. The path is only reported through MOS and
resistor elements.
Examples
XA> iprint_dcpath -ith 1e-6
iprint_elem_info
Prints the detailed element information for the given element names at the
specific time of activation.
Syntax
iprint_elem_info -elem element_name {element_name}
[-report brief] [-file file_name]
or
iprint_elem_info -index elem_index {elem_index}
[-report brief] [-file file_name]
Argument Description
Description
You can also provide a subcircuit instance as an element. In this case, the
CustomSim tool prints the subcircuit name, the list of its ports, and the voltages
on each port. The detailed element information includes:
■
Element name, element type, and model name
■
Element terminal connectivity
■
Element parameters and values
■
Element terminal voltages
MOSFET-specific information:
■ MOS logic state (ON/OFF)
■
MOS effective length and width (Leff and Weff)
■
MOS conductance (gds and gm)
■ MOS threshold voltage (Vth)
■
MOS Voltage-dependent diode capacitance (cbs and cbd)
■
MOS Voltage-dependent gate capacitance (cgs, cgb, and cgd)
■
MOS Ids current (Ids)
Examples
XA> iprint_elem_info [email protected]
Example 57
iprint_elem_info -elem x1.x2.m1
Example 58
iprint_elem_info -index 1 3 2
Example 59
XA>iprint_elem_info x1
Elem=x1 Type=subckt subckt=mysub1
PORT 1 port=a - 11 (1) v=1
PORT 2 port=b - 12 (2) v=1
PORT 3 port=c - 13 (3) v=2.65
PORT 4 port=d - 14 (4) v=1
iprint_exi
Prints elements with excessive currents.
Syntax
iprint_exi -inst inst_name {inst_name} [-ith ivalue]
[-file file_name] [-report report_value {report_value}]
Argument Description
Description
iprint_exi reports the current through any device terminal that exceeds the
threshold. The following device types are checked and reported:
■
MOS
■
Resistor
■
BJT
■
Diode
Examples
The output format for elements found that exceed the current threshold is the
same as iprint_elem_info. If you specify a list of subcircuit names with the
-report argument, the hierarchical element instance names have the
following general format:
Elem=X0.X1.X2...Xn.modelname
Subckt: X0=x0name X1=X1name X2=x2name ... Xn=Xnname
For example:
XA> iprint_exi -ith 1n xmos.m* -report subname
Elem=Xmos.mn (6) Type=NMOS Model=nch.7
D=vdd (5) G=g (3) S=Xmos.n1 (16) B=vb (4)
Vd=3 Vg=1.81293e-90 Vs=-0.00837316 Vb=1.81293e-90
M=1
Weff=2.016u Leff=0.948223u PD=2.365u PS=2.365u AD=0.351792u^2
AS=0.351792u^2 SA=0u SB=0u
Vt=0.19898 OFF
Ids=0.26352u
gds=5.38557e-10 gm=0
cgs=4.30157f cgd=0.416708f cgb=3.65854f cbs=1.20401f
cbd=0.487088f
id=0.26352u ig=-0.0663667u is=-0.00752308u ib=-0.189631u
Subckt: Xmos=mymos
iprint_flash_cell
Prints information for flash core cell elements.
Syntax
iprint_flash_cell -dvth value -inst inst_name
{inst_name} [-file filename] [-save save_filename]
Argument Description
Argument Description
Description
iprint_flash_cell identifies and reports the flash core cell instances from
specified instance names having a threshold voltage shift (-dvth) with either
of the following parameters:
■
Greater than or equal to the specified value if it is positive or zero.
■
Less than or equal to the specified value if it is negative or zero.
The reported Vth value is the current threshold voltage of the cell. The dVth
value is the change in threshold voltage and the delvto value is the initial
change in threshold voltage for the cell. The delvto value should correspond to
the delvto value from the instance parameter or from the set_flash_option
command.
Examples
XA> iprint_flash_cell -dvth 0 -inst *
XF0.MCELL, Vth=-1.0986, dVth=-2.8487, delvto=0.5
XF1.MCELL, Vth=-0.74198, dVth=-2.4921, delvto=-0
XF2.MCELL, Vth=-0.92028, dVth=-2.6704, delvto=0.25
iprint_help
Displays the syntax and a brief description of the specified interactive
commands.
Syntax
iprint_help -cmd command_name1 ... command_namen
Argument Description
Examples
iprint_help iprint_node_info
iprint_node_info
Prints the node voltage, node index, and simulation time for the given node
names. Each value is evaluated at the current simulation time, when the node
voltage is last updated.
Syntax
iprint_node_info -node node_name {node_name}
and
iprint_node_info -index node_index {node_index}
Argument Description
Examples
XA> iprint_node_info x1.sout
Node=X1.SOUT (225)
V=1.69417 V dV/dt=-0.00244323 V/ns t=1 ns
Example 60
iprint_node_info -node xalu3.xlatch2.q
Example 61
iprint_node_info -index 1 3 2
iprint_subckt
Prints the list of hierarchical instance names for all instances of the specified
subcircuit. Note that this command does not support wildcard characters.
Syntax
iprint_subckt subckt_name
Argument Description
Examples
XA> iprint_subckt nand2
x1.x2.x3.xnand1
x1.x2.x3.xnand2
x1.x5.xnand1
iprint_time
Prints the current simulation time.
Syntax
iprint_time
Argument Description
N/A
Examples
iprint_time
iprint_tree
Prints information about the hierarchical instance tree. Only subcircuit
instances are displayed. If the instance list is omitted, it is assumed to be an
asterisk ( * ). The output can also be dumped to a file.
Syntax
iprint_tree -inst inst_list [-limit val]
[-a enable_value] [-def enable_value] [-file filename]
Argument Description
Examples
XA > iprint_tree -limit 0 -a 1 -def 1
x1 (dco_xtl)
x2 (dco)
iprobe_waveform_voltage
Creates a voltage waveform output.
Syntax
iprobe_waveform_voltage -v node_name {node_name}
[-vn instance_name {instance_name}]
[-vall instance_name {instance_name}]
[-subckt subckt_name] [-limit level]
[-port enable_value] [-index index {index}]
[-delete enable_value]
Argument Description
-limit level Specifies the hierarchy level down to which the voltage is
probed. When -subckt is specified, the -limit level is
relative to where the particular node is located in the
hierarchy. A value of 0 specifies the top level of the
subcircuit. The default for level is 3.
-delete If enabled, removes the specified signals from the plot list.
enable_value
Argument Description
-index index Writes the signals that match the specified indexes to the
{index} plot file.
Description
Probes the voltage on a node or on the pin of a primitive instance. The voltage
waveform is written to the output file in the format specified by the post option
in the netlist. Note that only the fsdb and wdf formats support adding new
waveforms to the file on the fly.
You can use wildcards (*) with the -v, -vn, and -vall arguments. When used
with -v, the port alias matching is controlled by the -port argument or the
iset_interactive_option setting. A -port specified with the command takes
precedence. The set_wildcard_rule setting also applies.
Probes specified by this command are in addition to the .probe statement in
the HSPICE or ELDO netlist files or save statements in the Spectre netlist files.
Long simulations, or simulations where some nodes have a high level of
activity, can produce very large waveform files. To minimize waveform file
loading time in these files, you can direct signals to separate waveform files
and keep file sizes smaller.
If you use Custom WaveView to display the waveform file, you must close and
reopen the file to be able to see the voltages you have added.
Examples
Example 62
XA> iprobe_waveform_voltage x1.*
Example 62 adds probes for all nodes in instance x1. Wildcard matching is
influenced by set_wildcard_rule and iset_interactive_option.
Example 63
XA> iprobe_waveform_voltage * -delete 1
Example 64
XA> iprobe_waveform_voltage x1.* -level 2
Example 64 adds voltage probes for all nodes in instance X1 down to level 2 of
the hierarchy.
iquit_sim
Terminates the simulation.
Syntax
iquit_sim
Argument Description
N/A
Examples
iquit_sim
irelease_node_voltage
Releases the node voltages from the values fixed by iforce_node_voltage.
When you specify this command, the simulation results determine the node
voltages.
Syntax
irelease_node_voltage -node node_name {node_name}
Examples
XA> irelease_node_voltage cn
The cn signal previously forced to a given value is released at the current time.
The simulation results determine the cn voltage value until the end of the run
unless a new iforce_node_voltage command is specified.
ireport_node_cap
Reports capacitance information for the specified nodes.
Syntax
ireport_node_cap -node node_name {node_name}
[-group group_name] [-limit limit_value]
[-report basic|detail]
Argument Description
-node node_name Reports capacitance for the node names you specify. You can
{node_name} use wildcard characters in the node names.
-group group_name Creates a group name for the nodes you specify with -node.
If you specify this option, all nodes for a report_node_cap
command are grouped together. The CustomSim tool reports
the capacitance information based on this group.
Use this option only for a flat, postlayout design.
-report Specifies the type of report to print. Use the basic keyword
basic|detail (the default) to print only the basic capacitance information.
Use the detail keyword to print a detailed report.
Description
The reported node capacitance information includes total node capacitance,
wire capacitance, gate capacitance of a MOSFET, and junction capacitance of
a MOSFET. You can specify multiple commands in a simulation. The
CustomSim tool processes each command separately.
report_node_cap outputs the capacitance information in a *.cap# file.
In a prelayout design, capacitance is reported as:
Ctotal = Cgate + Cjunction + Cwire
Cgate = Cgd + Cgs + Cgb
Cjunction = Cdb + Csb
Cwire = Cdesign
In postlayout design, the CustomSim tool expands a single node from the
prelayout design into multiple nodes because of the RC parasitics. The
postlayout flow is divided into 2 scenarios:
■
A back-annotated postlayout.
■
A flat postlayout.
In the back-annotated postlayout flow, you can trace the connectivity back to
the prelayout design with the information from the prelayout netlist and the
back-annotation file:
*|NET na 0.00458507PF <-- Net Capacitance (CBAnet)
*|I (x02/mp:GATE x02/mp GATE I 4.8e-16 22.75 3.25) //
$llx=22.55 $lly=3.25 $urx=22.95 $ury=3.25 $lvl=5
*|I (x02/mn:GATE x02/mn GATE I 2.4e-16 22.75 1.05) //
$llx=22.55 $lly=0.6 $urx=22.95 $ury=1.05 $lvl=4
*|I (x01/mp:DRN x01/mp DRN B 0 8.45 3.25) // $llx=8.45
$lly=2.65 $urx=9.2 $ury=3.85 $lvl=7
*|I (x01/mn:DRN x01/mn DRN B 0 8.45 1.05) // $llx=8.45
$lly=0.75 $urx=9.2 $ury=1.35 $lvl=6
*|S (na:1 22.75 2.65) // $llx=22.55 $lly=2.65 $urx=22.95
$ury=2.65 $lvl=3
*|S (na:2 22.75 3.925) // $llx=22.55 $lly=3.85 $urx=22.95
$ury=4 $lvl=5
Cg1 na:1 0 4.33011e-17
Cg2 na:2 0 3.99892e-17
...
R158 na:1 x02/mp:GATE 4.8 $l=0.6 $w=0.4 $lvl=5
R159 na:1 na:3 30 $l=0.8 $w=0.4 $lvl=3
R160 x02/mp:GATE na:2 5.016 $l=0.675 $w=0.4 $lvl=5
R161 na:3 na:4 16.875 $l=0.5 $w=0.4 $lvl=3
R162 na:3 na:5 18.75 $l=0.5 $w=0.4 $lvl=3
R163 na:3 na:8 3.96 $a=0.04 $lvl=10
R164 na:4 na:6 3.96 $a=0.04 $lvl=1
...
R186 na:18 x01/mn:DRN 5.38888 $a=0.09 $lvl=12
R187 na:19 na:20 0.992002 $l=0.8 $w=0.5 $lvl=2
R188 na:19 na:21 13.1234 $l=6.45 $w=0.3 $lvl=2
In Figure 4, a prelayout node, BT, has been expanded into different nodes in
the postlayout. Because the postlayout netlist is flat, and there is no trace of
connectivity from the prelayout netlist and back-annotation flow, all nodes are
treated as unique and independent.
To accurately report the capacitance information, you need to tell the
CustomSim tool which nodes can be grouped together for report_node_cap
command to calculate the capacitance information. To group a list of nodes into
one group, use -group argument and list the names of nodes to be grouped:
BT_0, BT_1, BT_2, BT_3, BT_4, BT_5, BT_6, XPERI.BT_7, XCELL1.BTR,
XCELL2.BTR, XCELL3.BTR, and XCELL4.BTR and do the following steps:
1. Specify the following report_node_cap command.
report_node_cap -node BT_? XPERI.BT_7 XCELL?.BTR -group BT
This command groups all the specified node names into one group named
BT.
2. Assuming all parasitic capacitor has a value of 1 fF, the CustomSim tool
calculates the capacitance information is as:
ireport_operating_point
Writes the circuit operating point at the current time to the specified file.
Syntax
ireport_operating_point -file filename
[ -type ic | nodeset ] [-node node_name {node_name}]
Argument Description
-node node_name Specifies that only those nodes matching the pattern are
{node_name written to the file. You can specify wildcards in the node
names. The wildcard match behavior is determined by the
alias matching rules. See the iset_interactive_option -port.
description.
Examples
Example 65
XA> ireport_op op_100us.ic
The previous example writes the op_100us.ic file with .ic statements for
the default nodes available in the database.
Example 66
XA> ireport_op op_200us.nodeset -type nodeset
Example 67
XA> ireport_op file1 -node add*
The previous example writes the file1 file with .ic for those nodes matching
the add* pattern from the default node set.
isearch_node
isearch_node searches nodes in the netlist and reports various attributes.
Syntax
isearch_node -v [voltage_value]|-dv [dv_value]|
-dt [dt_value]|-conn [conn_value]
Argument Description
Argument Description
Description
This command searches the nodes in the netlist and reports nodes with:
■
The highest voltage.
■ All nodes with a voltage that exceeds the specified value.
■
The highest voltage change.
■
All nodes with a voltage change that exceeds the specified value.
■ The nodes with the minimum time step.
■
All nodes with a time step less than the specified value.
■
The most connected node in the netlist.
isearch_node only counts connections to elements. A connection to a
dangling subcircuit port does not count as a connection. In the following
example, node c is connected only once to the vc voltage source.
.subckt dangling a
.ends
vc c 0 dc=1
xc c dangling
xc2 c dangling
The connected node output provides the name of the subcircuit that contains
the node, the primary node name and node index, the number of connections,
and a flag to indicate if a voltage source is connected to the node. For example:
XA > isearch_node -conn
The previous example prints the node with the maximum voltage.
XA> isearch_node -v 2.5
V=3 at node x8.qb
V=3 at node x8.CKn
V=3 at node vcc
V=3 at node d[2]
The previous example reports all nodes with a voltage absolute value greater
than 2.5V.
XA> isearch_node -dv
Maximum DV=0.276185 at node x2.x1.n2
The previous example reports the node with the largest voltage change.
XA> isearch_node -dv 1e-3
DV=0.00243276 at node x3.x9.n1
DV=0.00230895 at node x3.x8.n1
The previous example reports all nodes with a voltage change greater than
1mV.
XA> isearch_node –dt
Minimum time_step=33ps at node x4.x1.n2 , DV=0.272122
The previous example reports the node with the minimum time step.
The previous example reports the nodes with a time step smaller than 2000ps.
XA > isearch_node -conn
Highest connectivity node: Subckt=con20 Node=a (1) #Conn=21 Vsrc=0
The previous example reports the most connected node in the circuit.
XA > isearch_node -conn 10
High connectivity node: Subckt=TLC Node=0 (0) #Conn=14 Vsrc=1
High connectivity node: Subckt=TLC Node=a (1) #Conn=10 Vsrc=1
High connectivity node: Subckt=con20 Node=a (1) #Conn=21 Vsrc=0
High connectivity node: Subckt=con20 Node=c (3)#Conn=21 Vsrc=0
The previous example reports all nodes that have 10 or more connections in
the circuit.
iset_break_point
Pauses the simulation at the specified time.
Syntax
iset_break_point -at time[unit]
Argument Description
Examples
iset_break_point -at 10n
iset_diagnostic_option
Lets you abort a simulation in progress and output the power report up to the
current simulation time.
Syntax
iset_diagnostic_option -report_power enable_value
Argument Description
Examples
report_power -label vdd_1u_2u -by_node vdd -from 1u -to 2u
xa net.sp -c cmd -intr 1u
XA> iprint_time
1us
XA> cont 500n
XA> iprint_time
1.5us
XA> iset_diagnostic_option -report_power 1
XA> iquit
The CustomSim tool completes the vdd_1u_2u power report using the 1.5us
as the window end time. the CustomSim tool needs to report the time value that
was used to close the window for the calculation.
iset_interactive_option
Controls the wildcard matching behavior in interactive mode for hierarchy and
signal alias names. In interactive mode, this command overrides the wildcard-
matching hierarchy set by the set_wildcard_rule on page 169 batch mode
command.
Syntax
iset_interactive_option -match* one|all
[-port enable_value] [-tcl enable_value]
[-tclbuf enable_value]
Argument Description
Examples
XA> imatch_node x1.*
7 X1.g
8 X1.ha
9 X1.x2.b1
0 X1.6
0 X1.0
1 X1.a
1 X1.3
2 X1.4
3 X1.5
7 X1.g
8 X1.ha
iset_save_state
Save a simulation at the specified time point.
Syntax
iset_save_state -time time_value
Argument Description
iset_zstate_option
Sets the conducting rules for the icheck_node_zstate command.
Syntax
iset_zstate_option [-rule rule_value {rule_value}]
[-diode_vh value]
[-idsth ids_value]
[-vbeth vb_value]
[-report report_value {report_value}]
Argument Description
Description
This interactive command specifies the conducting rules so that the
CustomSim tool can diagnose specified nodes staying in a high-impedance
(floating) state.
Device Rule
■
PMOS Vgs < Vth (-rule 1)
■
Ids > idsth (-rule 2)
■ Vg < 0.1 (-rule 3)
Diode Forward-biased.
convert2out
Converts .wdf or .fsdb waveform files to .out format.
Syntax
convert2out -i input_filename {[-s signal_filename]
[-o output_dir/[output_filename]]} [-compress z|gz|0]
or
convert2out [-h|-help] [-v|-version]
Argument Description
Argument Description
-s signal_filename Specifies the signal file names. Each signal file contains a
list of signals to be converted. By default, all the signals in
the input file are converted. Table 17 describes the signal
file format.
This argument is order-dependent. All signals specified in
a signal file are converted in an output file specified by the
–o argument. If you do not specify a –o argument, the
default file name is:
input_filename.signal_filename.out.
You can specify wildcards in the signal names. See the
Using Wildcards section for the supported patterns. The "*"
wildcard character follows the rule defined by the
set_wildcard_rule command. You can specify one
set_wildcard_rule command in a signal file.
You can use the set_sim_case command to control case
sensitivity:
set_sim_case [-case upper|lower|sensitive]
upper specifies to convert all nodes to upper case in the
.out file.
lower specifies to convert all nodes to lower case in the
.out file.
sensitive specifies to keep the same case as in the
FSDB or WDF waveform file.
The default behavior is to output the same case as in the
FSDB or WDF waveform file. Note that you must specify
set_sim_case and set_wildcard_rule before the signal list
in the signal file.
Argument Description
-o output_dir/ Specifies the name of the output directory and output file
output_filename name. The output file contains the signals specified in the
signal file in .out waveform format. Note that you cannot
repeat the same file name in one convert2out
command. The default output file name is:
input_filename.signal_filename.out.
The default of output directory is the current running
directory. If the specified output directory does not exist,
convert2out creates it.
-compress z|gz|0 Specifies the type of compression applied to the .out file:
■ z enables compression with the UNIX compress utility.
■
gz enables compression with the GNU gzip utility.
■ 0 disables compression.
Compression applies to all output files and cannot be used
for individual files.
Description
All of the specified signals to be converted must be presented as they exist in
the waveform file. The convert2out utility does not support arithmetic
functions. Any necessary arithmetic functions need to be done in the waveform
viewer tool.
Table 17 shows the signal file format.
Table 17 Signal File Format
Examples
Example 68
convert2out –i waveform.wdf –s sig1 –o out1.out –s sig2 –o out2.out
Converts the signals in the sig1 file to an out1.out file and the signals in the
sig2 file to an out2.out file.
Example 69
convert2out –i test.fsdb
Converts all the signals in the test.fsdb input file to a test.fsdb.out file.
Example 70
convert2out -i test.fsdb –s testsig1 –s testsig2 –s testsig3 –o
testout.out –s testsig4
Example 71
convert2out –i pll.wdf –s sig1 –s sig2 –o sig2.out –o out.out –
o out1.out
Converts: all the signals in the sig1 to pll.wdf.sig1.out, all the signals in
sig2 to sig2.out, all the signals in pll.wdf to out.out, and all the signals
in pll.wdf to out1.out.
Example 72
convert2out –i test.fsdb –o out1.out –o out1.out
Generates an error messages because two output files have the same name
(out1.out).
Example 73
convert2out –i test.fsdb –o TEST/
Example 74
convert2out –i test.fsdb –o TEST/test.out
Example 75
convert2out –i waveform.wdf –s sig1 –o out1.out –s sig2 –o out2.out
–compress z
Converts: all the signals in the sig1 file to a out1.out.out file and all the
signals in the sig2 file to a out2.out.z file.
A iprint_tree 198
absolute voltage 207 iquit_sim 201
isearch_node 207
alias 176, 182, 201, 206
iset_break_point 210, 211, 213
load_ba_file 37
B load_vector_file 44
back-annotation map_ba_terminal 45, 47
commands 7 netlist control 7
controlling connectivity error responses 12, 15, output control 7
16, 19, 22, 26, 29, 32, 176 post-layout and back-annotation 7
specifying a file for 37 probe_waveform_current 48
terminal name mapping 45, 47 probe_waveform_logic 51
break points probe_waveform_voltage 54, 199
listing 183, 184, 185 report_power 70
removing 182 set_ams_view 86, 88, 89, 94
setting 210, 211, 213 set_ccap_level 95, 98, 100, 110, 141
set_dc_option 101
C set_duplicate_rule 105, 107
set_floating_node 108, 110, 112
case-sensitivity 1
set_measure_format 113, 129, 131
circuits, open 146 set_message_option 114
commands
set_resistor_threshold 146
alias 176, 182, 201, 206
set_sample_point 146, 150
categories 6
set_sim_level 152, 156, 158
common definitions 4
set_wildcard_rule 169
diagnostic 6
speed control 7
enable_ba_error_net 12, 15, 16, 19, 22, 26, 29,
use_mos_instpar 137, 139
32, 176
using a script file 2
enable_print_statement 35
using Tcl mode 3
enable_value 4
vector stimulus 7
iclose_log 180
icontinue_sim 180 complexity vs. speed trade-off 152, 156, 158
idelete_break_point 182 connectivity errors, controlling 12, 15, 16, 19, 22,
ilist_break_point 183, 184, 185 26, 29, 32, 176
including in netlist 2 connectivity information 188
interactive mode 3 coupling capacitor tolerance, setting 95, 98, 100,
with Tcl 3 110, 141
iopen_log 187 customer support xi
iprint_connectivity 188
iprint_elem_info 190, 193, 194 D
iprint_help 195
debugging mode 2
iprint_node_info 196, 197
iprint_time 197 diagnostic commands 6
223
Index
E
E isearch_node 207
Eldo iset_break_point 210, 211, 213
.option statement 2
print statement 35 L
element information 190, 193, 194
load_ba_file 37, 43
enable_ba_error_net 12, 15, 16, 19, 22, 26, 29,
load_vector_file 44
32, 176
LOD models, handling 137, 139
enable_print_statement 35
log file 187
enable_value, possible values for 4
controlling the number of messages 114
enhanced look-up table 137, 139
look-up table methods 137, 139
H M
help for interactive commands 195
map_ba_terminal 45, 47
hierarchical instance tree 198
.measure file output format 113, 129, 131
HSPICE
.option statement 2 measurements, precise sampling points 146, 150
print statement 35 models, multiple definitions 105
vector stimulus file 44 module definition, using Verilog-A 86, 88, 89, 94
MOFSET-specific information 191
I
iclose_log 180 N
icontinue_sim 180 netlist control commands 7
idelete_break_point 182 netlist, including commands in 2
ilist_break_point 183, 184, 185 node connectivity information 188
inst_name 5 node information 196, 197
instance definition, using Verilog-A 86, 88, 89, 94
instance tree 198 O
instance_spec values 4 open circuits, threshold for 146
-inter flag 3 .option statement 2
interactive commands options statement 2
creating aliases for 176, 182, 201, 206
output control commands 7
help 195
output file format 113, 129, 131
interactive debugging 2
interactive mode 3
closing the log file 180 P
log file 187 partitioning instance/module definitions 86, 88, 89,
with Tcl 3 94
iopen_log 187 periodic measurements 146, 150
iprint_connectivity 188 post-layout commands 7
iprint_elem_info 190, 193, 194 post-layout, specifying a back-annotation file 37
iprint_help 195 power consumption 70
iprint_node_info 196, 197 print statements in Eldo or HSPICE netlists 35
iprint_time 197 probe_waveform_current 48
iprint_tree 198 probe_waveform_logic 51
iquit_sim 201 probe_waveform_voltage 54, 199
224
Index
R
225
Index
W
226