(CCK) CustomSim CMD Ref Xa Userguid
(CCK) CustomSim CMD Ref Xa Userguid
Reference
Version L-2016.06-SP1, July 2016
Copyright and Proprietary Information Notice
© 2016 Synopsys, Inc. This Synopsys software and all associated documentation are proprietary to Synopsys, Inc. and may only be
used pursuant to the terms and conditions of a written license agreement with Synopsys, Inc. All other use, reproduction,
modification, or distribution of the Synopsys software or the associated documentation is strictly prohibited.
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.
Third-Party Links
Any links to third-party websites included in this document are for your convenience only. Synopsys does not endorse
and is not responsible for such websites and their practices, including privacy practices, availability, and content.
Synopsys, Inc.
690 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_gndcap_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
load_operating_point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
load_parameter_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
load_vector_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
load_verilog_file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
map_ba_terminal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
meas_post . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
probe_waveform_current . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
probe_waveform_ixba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
probe_waveform_logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
probe_waveform_va. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
probe_waveform_voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
pulse_oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
release_node_voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
report_dangling_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
report_floating_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
report_model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
report_node_alias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
report_node_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
report_operating_point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
report_power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
report_sim_activity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
set_active_net_flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
set_analysis_core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
set_array_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
set_ba_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
set_bus_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
set_capacitor_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
set_ccap_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
set_ccap_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
set_circuit_flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
iv
Contents
set_current_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
set_dc_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
set_duplicate_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
set_flash_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
set_floating_node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
set_hotspot_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
set_identification_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
set_inductor_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
set_interactive_stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
set_latch_control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
set_logic_threshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
set_meas_dump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
set_meas_format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
set_message_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
set_model_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
set_model_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
set_monte_carlo_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
set_multi_core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
set_multi_rate_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
set_oscillator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
set_parameter_value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
set_partition_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
set_postlayout_meas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
set_powernet_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
set_powernet_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
set_probe_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
set_probe_window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
set_ra_functional_resistor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
set_ra_net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
set_ra_net_type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
set_ra_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
v
Contents
set_ra_pwnet_driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
set_ra_pwnet_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
set_ra_reuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
set_rc_network_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
set_resistor_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
set_restore_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
set_sample_point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
set_save_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
set_sim_case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
set_sim_hierid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
set_sim_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
set_sram_characterization. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
set_synchronization_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
set_synchronization_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
set_tolerance_level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
set_tolerance_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
set_va_view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
set_vector_char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230
set_vector_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
set_waveform_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
set_waveform_sim_stat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
set_wildcard_rule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
set_zstate_option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
skip_circuit_block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
vi
Contents
idelete_break_point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
iforce_node_voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
ilist_break_point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
ilist_force_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
imatch_elem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
imatch_node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260
iopen_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
iprint_connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
iprint_dcpath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
iprint_elem_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
iprint_exi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
iprint_flash_cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
iprint_help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271
iprint_node_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
iprint_subckt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
iprint_time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
iprint_tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
iprobe_waveform_current. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
iprobe_waveform_voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
iquit_sim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
irelease_node_voltage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
ireport_node_cap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
ireport_operating_point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
isearch_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
iset_break_point. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
iset_diagnostic_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
iset_env . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
iset_interactive_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
iset_interactive_stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
iset_save_state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
iset_zstate_option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
DC Interactive Mode Commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295
exit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
iclose_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
icontinue_dc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
idelete_node_ic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
imatch_elem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
imatch_node. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
iopen_log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300
vii
Contents
iprint_connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
iprint_elem_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
iprint_exi. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
iprint_help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
iprint_node_info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
isearch_node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
iset_node_ic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
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.
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"
-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
Arguments
Argument Description
Description
Commands such as set_sim_level and set_va_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
Argument Description
Argument Description
For example:
set_model_level -level 5 -inst cismod::*
Sets the model level to 5 for all instances in the cismod module.
The same syntax enhancement that supports the IC module label reference
also applies to probing in an HSPICE netlist:
Syntax
.print V([ic_module_label::]node_pattern)
.print I([ic_module_label::]instance_pattern)
Arguments
Argument Description
For example:
.probe v(cismod::*)
This command probes all node voltages under the scope of the cismod IC
module.
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
report_sim_activity
set_hotspot_option
set_sample_point
set_zstate_option
Post-layout / load_ba_file
Back-annotation map_ba_terminal
set_ba_option
report_floating_node
report_model
report_node_alias
report_node_cap
report_operating_point
report_power
report_sim_activity
set_active_net_flow
set_analysis_core
set_array_option
set_ba_option
set_bus_format
set_capacitor_option
set_ccap_level
set_ccap_option
set_circuit_flash
set_current_option
set_dc_option
set_duplicate_rule
set_flash_option
set_floating_node
set_hotspot_option
set_identification_rule
set_inductor_option
set_interactive_stop
set_latch_control
set_logic_threshold
set_meas_dump
set_meas_format
set_message_option
set_model_level
set_model_option
set_monte_carlo_option
set_multi_core
set_multi_rate_option
set_oscillator
set_parameter_value
set_partition_option
set_postlayout_meas
set_powernet_level
set_powernet_option
set_probe_option
set_probe_window
set_ra_functional_resistor
set_ra_net
set_ra_net_type
set_ra_option
set_ra_pwnet_driver
set_ra_pwnet_option
set_ra_reuse
set_rc_network_option
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_va_view
set_vector_char
set_vector_option
set_waveform_option
set_waveform_sim_stat
set_wildcard_rule
set_zstate_option
skip_circuit_block
source
check_node_excess_rf
Performs an excessive rise/fall timing check.
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 242.
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.
-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.
Argument Description
-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.
-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.
Argument Description
-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.
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.
Same as the previous example, but adds a start time of 50ns and stop time of
1000ns.
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.
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.
check_node_hotspot -node node_name {node_name}
Argument Description
-node node_name Specifies the node names to check for hot spots.
{node_name}
This command checks for hot spots in a design and reports the
information in an output file with suffix 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 rise/fall time check and reports rise/fall times less than the user-
defined threshold.
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 242.
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.
Argument Description
-rtime rise_time Defines the rise time threshold 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). If the calculated rise time less
than this threshold, the command considers it a violation
and reports it. The default value is 1 ns.
-ftime fall_time Defines the fall time threshold 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). If the calculated fall time
less than this threshold, the command considers it a
violation and reports it. 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.
-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.
Argument Description
-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.
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
specified by the set_logic_threshold command if the same node name is
applied to both commands.
Examples
check_node_quick_rf -node output -title quick_rf_check1 -rtime \
2ns -ftime 2ns
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.
Same as the previous example, but adds a start time of 50ns and stop time of
1000ns.
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.
Sets up a quick rise/fall time check with output signal with title name
quick_rf_check1 and reports a violation if the rise time is less than 2ns or
fall time is less than 2ns.
check_node_zstate
Checks for nodes in a high-impedance state.
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
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
The following table shows the conducting rules for Spectre® bsource elements.
resistor conducting
conductance conducting
capacitor non-conducting
inductor conducting
vsource conducting
phi non-conducting
q non-conducting
The conduction rule of independent current sources can be controlled with the
set_zstate_option -isrc_rule command.
check_timing_edge
Performs an edge timing check.
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.
-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.
Argument Description
-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.
-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}, which means both the
tstop} reference node time (Tref) and the checked node event
time (Tsig) for a timing violation have to be within the time
window. The tstart and tstop must come in pairs,
except for the final window where if tstop is not specified
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 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.
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.
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.
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.
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]
[-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.
Argument Description
-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}, which means both the
tstop} reference node time (Tref) and the checked node event
time (Tsig) for a timing violation have to be within the time
window. The tstart and tstop must come in pairs,
except for the final window where if tstop is not specified
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.
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
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.
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.
-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.
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}, which means both
tstop} event times (t1, t2) of a pulse’s two edges for a pulse width
violation have to be within the time window. 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
-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.
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 –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 as the first example, but the out signal is applied to only node inside the
subcircuit digital_ram.
check_timing_setup
Performs a setup timing check.
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}, which means both the
tstop} reference node time (Tref) and the checked node event
time (Tsig) for a timing violation have to be within the time
window. The tstart and tstop must come in pairs,
except for the final window where if tstop is not specified
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
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.
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.
enable_print_statement -switch enable_value
See the Common Syntax Definitions section for details about the
enable_value argument.
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.
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.
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.
keep_top_element -inst instance_name
Argument Description
This command works with the -top 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 postlayout back-annotation file.
load_ba_file [-file] filename
[-xba 0|1]
[-min_res value]
[-max_res value]
[-min_cap value]
[-min_ind value]
[-skipnet net_name {net_name}]
[-rcnet net_name {net_name}]
[-ccnet net_name {net_name}]
[-cnet net_name {net_name}]
[-ccap_to_gcap cap_value]
[-dpf switch_value]
[-add_netpin_by_xy_file file_name]
[-add_netpin DSPF_netname DSPF_node {DSPF_node}]
[-add_netpin_file netpin_file_name]
[-add_instpin_file file_name]
[-delete_netpin DSPF_netname DSPF_node {DSPF_node}]
[-delete_netpin_file netpin_file_name]
[-what_if cmd_file]
[-report_no_ba value]
[-layout_only_device_models model_name {model_name}]
Argument Description
Argument Description
-rcnet net_name {net_name} Specifies the nets to use for full RC back-
annotation. By default (when the -rcnet
argument is not specified) all nets are back-
annotated as full RC. If you specify -rcnet,
then all other nets not specified by this
argument only use lumped capacitance back-
annotation. The lumped capacitance value
uses the net capacitance value in the *|NET
line.
This argument works in both SPF and SPEF
formats and accepts wildcard characters.
Argument Description
-ccnet net_name {net_name} Specifies for the nets to use Cg+Cc back-
annotation (remove all resistors from a given
net). All the nets not specified by this argument
use full RC back-annotation (assuming the net
itself contains RCs).
This argument works in both SPF and SPEF
formats and accepts wildcard characters.
Also, you cannot use this argument with the
-lump_c_only argument of the
set_ba_option command.
Argument Description
-add_netpin DSPF_netname Adds a new net pin. The first value is a DSPF
DSPF_node {DSPF_node} net name, followed by one or more DSPF node
names. The DSPF node name can be a sub-
node, instance pin, or probe text node. You can
specify multiple
-add_netpin options.
Argument Description
-delete_netpin DSPF_netname Deletes a net pin. The first value is a DSPF net
DSPF_node {DSPF_node} name, followed by one or more DSPF node
names. The 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
Argument Description
■
Node names specified by *|NET statement in the SPF file ( / is replaced by
.).
■ Device names in the instance section of the SPF file.
You can only use those names in the analysis statement.
In a Spectre netlist:
baoptions options Xa_cmd="load_ba_file -file parastic_net.spf
-skipnet X1.in*"
Enables the XBA flow and specifies net the VDD for full RC back-annotation.
See Also
map_ba_terminal, check_node_excess_rf
load_gndcap_file
Lets you add ground capacitors to a node without modifying the netlist.
load_gndcap_file [-file] gcap_file {gcap_file}
Argument Description
gcap_file Specifies the name of the capacitor file. This file contains the node
names where the ground capacitors and values are added. It has
the following format:
node_name1 cap_value1 [occ|otc]
node_name2 cap_value2 [occ|otc]
...
node_namen cap_valuen [occ|otc]
You can specify anode name multiple times (with multiple entries),
and the keyword of the first entry is used for all entries with the
same node names.
By default if no keyword is specified, the CustomSim tool adds a
ground capacitor to the node. The occ keyword overwrites the
constant capacitance. The otc keyword overwrites the total
capacitance of the node.
The CustomSim tool adds different values of capacitors to the specified nodes
based on the content of the capfile file. If you do not specify a capfile file,
the total capacitance for out1 and out2 is:
totalc(out1) = c(c1) + c(c12) + c(mp1+mn1) = 5f + 8f + 0.5605f = 13.5605f
totalc(out2) = c(c2) + c(c12) + c(mp2+mn2) = 5f + 8f + 0.5605f = 13.5605f
If capfile contains:
out1 35f
out2 10f
The CustomSim tool adds an additional 35f ground capacitor to out1, and 10f
ground capacitor to out2:
totalc(out1) = c(c1) + c(c12) + c(mp1+mn1) + c(capfile:out1) = 5f + 8f + 0.5605f
+ 35f = 48.5605f
The CustomSim tool overwrites the constant capacitor of out1 with 35f, and
out2 with 10f:
totalc(out1) = c(capfile:out1) + c(c12) + c(mp1+mn1) = 35f + 8f + 0.5605f =
43.5605f
totalc(out2) = c(capfile:out2) + c(c12) + c(mp2+mn2) = 10f + 8f + 0.5605f =
18.5605f
If capfile contains:
out1 35f otc
out2 10f otc
The CustomSim tool overwrites the total capacitor of out1 with 35f, and out2
with 10f:
totalc(out1) = c(capfile:out1) = 35f
totalc(out2) = c(capfile:out2) = 10f
If capfile contains:
out1 35f otc
out2 10f occ
Since out1 is specified twice, the CustomSim tool only uses the keyword of the
first entry (otc) to apply to all other nodes with the same node name. In this
case, it overwrites the total capacitor of out1 with 45f:
totalc(out1) = c(capfile:out1) = 45f
load_operating_point
Determines how the CustomSim tool handles a file containing initial conditions.
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.
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).
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.
load_parameter_file -file filename
Argument Description
-file filename Specifies the name of the file that contains the instance
parameter information.
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.
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.
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.
map_ba_terminal -name ba_file_term_name
[-alias] valid_terminal_name
[-subckt subcircuit_name]
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.
meas_post -waveform file_name
Argument 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.
probe_waveform_current -i | i1 instance_name {instance_name}
[-in instance_name {instance_name}]
[-iall instance_name {instance_name}]
[-isub | -x subckt_instance_name.port
{subckt_instance_name.port}]
[-subckt subckt_name]
[-limit level]
[-level level_val]
Argument Description
Argument Description
■
-filetag
■
-limit
Examples
probe_waveform_current -i vdd vss vda
The last example probes all instances down to the default level of hierarchy (3),
except those finishing with the clk pattern.
isub(x1.in1)
isub(x1.in2)
isub(x1.x1.in)
isub(x1.x2.in)
isub(x1.x3.in)
isub(x1.x4.gn)
isub(x1.x4.gp)
isub(x1.x4.d)
isub(x1.x4.s)
Using the same netlist as the previous example, but with the following
probe_waveform_current command:
probe_waveform_current -isub * -subckt xor2 -except_port in*
Using the same netlist as the first example, but with the following
probe_waveform_current command:
probe_waveform_current -isub * -subckt xor2 -except_port in* -
except_inst x2
isub(x1.out)
isub(x1.x1.out)
isub(x1.x3.out)
isub(x1.x4.gn)
isub(x1.x4.gp)
isub(x1.x4.d)
isub(x1.x4.s)
isub(x2.out)
isub(x2.x1.out)
isub(x2.x3.out)
isub(x2.x4.gn)
isub(x2.x4.gp)
isub(x2.x4.d)
isub(x2.x4.s)
The following example probes all currents from hierarchy level 1 to level 3
inside subcircuit volgen.
probe_waveform_current x1.* -level 3 -subckt volgen
The following example probes all instances in the subcircuit named l2, except
those instances inside l2 and named r3.
probe_waveform_current * -subckt l2 -except_subckt l2.r3
The following example probes all instances the subcircuit named l2, except
those instances inside the subcircuits whose name matches ba*. All instances
in x1.x2b.x3 are excepted.
probe_waveform_current * -subckt l2 -except_subckt ba*
See Also
probe_waveform_logic, probe_waveform_va, probe_waveform_voltage,
set_wildcard_rule
probe_waveform_ixba
Probes the sum of the all the device terminal currents of the specified sub-
circuit instance touching the specified node. In the waveform file, the signal of
the command has the syntax of inst_name_to_spf .i(*:node).
probe_waveform_ixba -ipattern ipattern -node node_name
Argument Description
For example:
.probe ixba(x0.xx5.*:x0.a5)
.measure tran avg_xp avg ixba(x0.xx5.*:x0.a5)
In Figure 2, the green box represents the original subcircuit structure. The XBA
flow is enabled on instance xtop.x1.xa with load_ba_file -file
xafile.spf -xba 1.
...
Instance Section
X1/CLKD/X1/XCKGD1/MM1...
XI/CLKD/X1/XCKGD1/MM2...
XI/CLKD/X1/XCKGD1/MM3...
XI/CLKD/X1N/XPLL/XCLK/MM20...
X1/CLKD/MX20...
...
X1/CLKD/X2/X1NAND/MA...
X1/CLKD/X1N202[5]/MNO...
X1/CLKD/XXXTIEL/MH1...
...
The following command traces all the devices below the hierarchy of
xtop.x1.xiclkd touching the node a and probes the sum of all the device
terminal currents below the hierarchy xtop.x1.xiclkd.
probe_waveform_ixba -ipattern xtop.x1.xiclkd.* -node a
The CustomSim tool probes the sum of device current terminal of the following
devices.
Ixba(xtop.x1.xiclkd :a) = Iterminal(XI/CLKD/X1/XCKGD1/MM1)
+ Iterminal (XI/CLKD/X1/XCKGD1/MM2)
+ Iterminal (XI/CLKD/X1/XCKGD1/MM3)
+ Iterminal (XI/CLKD/XIN/XPLL/XCLK1/MM20)
+ Iterminal (XI/CLKD/MX20)
Where:
Iterminal (XI/CLKD/XIN/XPLL/XCLK1/MM20) =
Ig(XI/CLKD/XIN/XPLL/XCLK1/MM20)
+ Is(XI/CLKD/XIN/XPLL/XCLK1/MM20)
Isub(xtop.a) = Iterminal(XI/CLKD/X1/XCKGD1/MM1)
+ Iterminal (XI/CLKD/X1/XCKGD1/MM2)
+ Iterminal (XI/CLKD/X1/XCKGD1/MM3)
+ Iterminal (XI/CLKD/XIN/XPLL/XCLK1/MM20)
+ Iterminal (XI/CLKD/MX20)
+ Iterminal (M1a)
Isub(xtop.x1.a1) = Iterminal(XI/CLKD/X1/XCKGD1/MM1)
+ Iterminal (XI/CLKD/X1/XCKGD1/MM2)
+ Iterminal (XI/CLKD/X1/XCKGD1/MM3)
+ Ig (XI/CLKD/XIN/XPLL/XCLK1/MM20)
+ Ig (XI/CLKD/MX20)
The following command traces all the devices below the hierarchy of
xtop.x1.xiclkd.x2 touching the node xtop.x1.xiclkd.a11. Based on
the SPF file, there are six devices touching node xtop.xi.xa.a11, but there
is only one device below the hierarchy xtop.x1.xiclkd.x2.
probe_waveform_ixba -ipattern xtop.x1.xiclkd.x2.* -node
xtop.x1.xiclkd.a11
To probe currents from all devices under hierarchy xtop.x1.* (third level of
hierarchy) that are connected to node a.
See Also
load_ba_file, 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.
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
-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.
The -filetag option is not supported for the tr0 and psf
formats.
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.
probe_waveform_va -var variable_name {variable_name}
[-subckt subckt_name]
[-limit level]
[-level level_val]
Argument Description
Argument Description
Probes the variable count in the x1 module. The variable appears in the
waveform file as x1.count.
Probes the variable count in the x1 module. The variable appears in the
waveform file as x1:count.
probe_waveform_voltage
Creates a voltage waveform output.
probe_waveform_voltage -v node_name {node_name}
[-vn instance_name {instance_name}]
[-vall instance_name {instance_name}]
[-vsub subckt_instance_name.port
{subckt_instance_name.port}]
[-subckt subckt_name]
[-limit limit_val]
[-level level_val]
[-except_inst instance_name {instance_name}]
[-except_subckt subcircuit_name {subcircuit_name}]
[-except_node node_name {node_name}]
[-port enable_value]
[-ba_net net_name {net_name}]
[-filetag file_tag]
Argument Description
Argument Description
-ba_net net_name {net_name} Probes the voltage waveforms for the SPF/
SPEF pin 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.
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
probe_waveform_voltage commands can use the same file tag. The
other probing commands (voltage and logic) can also use the same file tag.
For example:
probe_waveform_voltage * -limit 0
Probes all nets at the top level only. It is the same as:
probe_waveform_voltage * -level 1
The following example probes all nets at the top level and 1 level of hierarchy
below.
probe_waveform_voltage * -limit 1
The following example shows no probes because limit 0 is the top level.
probe_waveform_voltage x1.* -limit 0
The following example shows no probes because limit 1 is the first level of
hierarchy from the top, and x1.x2.* is the second level of hierarchy, so a
minimum limit of 2 is required.
probe_waveform_voltage x1.x2.* -limit 1
The following example probes all nets in x1 (but does not probe in x1.x2,
x1.x3, and so on).
probe_waveform_voltage x1.* -level 1
The following example probes all nets in x1.x2 (but does not probe in
x1.x2.x1, x1.x2.x3, and so on).
probe_waveform_voltage x1.x2.* -level 1
Examples
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).
Example 16
probe_waveform_voltage x1.x2.* -level 4
Example 17
probe_waveform_voltage * -limit 2 -level 6 -subckt volgen
Probes all voltage nodes from hierarchy level 0 to level 2 inside subcircuit
volgen.
The following two examples use a netlist with:
x1 from subckt l1;
x1.x2b from l2 inside l1;
x1.x2b.x3 from base inside l2 then inside l1:
x1.x2b.x3.xb2 from base2 inside base then inside l2 then inside l1.
The following example probes all nodes the subcircuit named l2, except those
nodes inside l2 and starting with i1.
probe_waveform_voltage * -subckt l2 -except_subckt l2.i1*
The following example probes all nodes the subcircuit named l2, except those
nodes inside the subcircuits whose name matches b*. All nodes in
x1.x2b.x3 are excepted.
probe_waveform_voltage * -subckt l2 -except_subckt b*
See Also
probe_waveform_current, probe_waveform_logic, probe_waveform_va,
set_wildcard_rule
pulse_oscillator
Applies a current kick to a specified node.
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}
-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.
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.
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.
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_floating_node
Reports all floating nodes in a file with a .fnode extension, or .fgate if if you
only request floating gates.
report_floating_node [-type type]
[-format format]
[-limit limit]
[-file file_name]
Argument Description
-limit limit Specifies the hierarchy level down to which a floating node is
checked and reported. You can only use this option with
-format report. By default, all floating nodes are reported.
-file Specifies the name of the output file that contains the floating
file_name node information. It has a .fnode extension if you use -type
all and a .fgate extension if you use -type gate.
Examples
report_floating_node -type all -format report
Specifies a report that includes all floating nodes, including floating bulks. The
report is in the form of a table.
Specifies a report that includes all floating nodes, except floating bulks. The
report is in the form of a .ic statement.
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.
report_model -report report_value
[-generate enable_value]
[-stop enable_value]
[-count model|subckt|all|none]
Argument Description
Argument Description
report_node_alias
Reports all the aliased nodes in the report files.
report_node_alias -hierarchy enable_value | -short
enable_value
Argument 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_alias –short 1
report_node_cap
Reports capacitance information for the specified nodes.
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.
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
R189 na:20 na:24 0.744002 $l=0.6 $w=0.5 $lvl=2
R190 na:20 x01/mp:DRN 5.38888 $a=0.09 $lvl=12
...
In back-annotated post-layout flow, the capacitance information is reported as:
Ctotal = Cgate + Cjunction + Cwire
Cgate = Cgd + Cgs + Cgb
Cjunction = Cdb + Csb
Cwire = CBAnet + Cdesign
Based on the previous back-annotation file example:
Ctotal = Cgate + Cjunction + Cwire
Cgate = Cgate(x02/mp) + Cgate(x02/mn)
Cjunction = Cjunction(x01/mp) + Cjunction(x01/mn)
Cwire = CBAnet (0.00458507PF) + Cdesign
In a flat postlayout flow, the CustomSim tool treats all nodes as unique and
independent. To accurately calculate the capacitance information, you need to
group the nodes and then run report_node_cap. For example, see Figure 3.
In Figure 3, 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:
Ctotal = Cgate + Cjunction + Cwire
Cgate = Cgate(XPERI.MA1)
Cjunction = Cjunction(M2) + Cjunction(XCELL1.M1) +
Cjunction(XCELL2.M1)
+ Cjunction(XCELL3.M1) + Cjunction(XCELL4.M1) +
Cjunction(XPERI.MA1)
Cwire = (12 * 1 fF) + Cdesign
Cdesign = 0 pF
report_operating_point
Determines how the CustomSim tool exports initial conditions it computes in
DC analysis. It also defines how the CustomSim tool 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.
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.
-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.
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.
Produces a file .0.ic file that contains an operating point at time 0 with
.ic for the core nodes and also generates a .0.ic.op_table file with node
initialization details.
report_power
Generates power consumption reports.
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.
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 tool
warnings. By default, only the first 10 warning are printed and can be controlled
with the set_message_option command.
If –by_node is applied, the report is generated for those subcircuits/elements
at that level of hierarchy, even if the hierarchal level is exceeded in the
–limit value. Additional levels of hierarchy are only included if they meet the
–limit value. If a wildcard is used in the -by_node pattern, the –limit
setting limits the hierarchical depth of the wildcard match. Power is reported as
if all matched nodes had been explicitly named. Thus the maximum port depth
in this scenario is the limit value +1.
If the -by_node is also the name of a port, its power is reported, as well as
that of any connected subcircuit ports further down in the circuit hierarchy. It
does not report any ports connected up in the hierarchy.
The –except_port argument excludes some ports from being reported. The
proper way to conceptualize this behavior is to first determine which ports
match the patterns specified by –port or –by_node and exclude any ports
that match the pattern. For more details about excluding ports, see the
following examples.
Examples
The following example shows sample report file content.
###### LABEL=x1_ports_0_1u FROM=0 TO=1e-06 #####
.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
report_sim_activity
Identifies performance problems in a simulation.
report_sim_activity -type report_type
[-node node_name {node_name}]
[-except_node node_name]
[-num max_nodes]
[-twindow tstart [{tstop}] {tstart [tstop]}]
[-file file_name]
[-flush interval[%]]
[-subckt subcircuit_name]
[-except_subckt node_name]
[-inst subcircuit_name]
[-except_inst node_name]
[-probe_format format]
[-profile 0|1]
[-limit limit_value]
[-max_conn value]
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.
-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.
If you specify more than one window in -twindow,
the windows must be in ascending order.
-file file_name Specifies the name of the file that contains the activity
information. The default file name is
prefix.cpa_time.
Argument Description
Argument Description
If you specify both the -twindow and -flush arguments, the activity
information is written only within the time window. If you use Ctrl+C to stop a
simulation, the activity information is written in a separate file (with a .cpa
extension).
If you specify multiple time windows and use Ctrl+C, the reported activity is
from the beginning of the last time window until the time use Ctrl+C. For
example, if you specify -twindow 10u 20u 50u 60u:
■
Ctrl+C at 15u (in the time window) writes activity information from 10u to
15u to the .cpa file.
■
Ctrl+C at 30u (out of the time window) writes activity information from 10u
to 30u to the .cpa file.
■ Ctrl+C at 70u (out of the time window) writes activity information from 50u
to 70u is written to the .cpa file.
Examples
report_sim_activity -type all -twindow 1e-3 1.5e-3 3e-3 5e-3 -
file MyAnalysis
Analyzes performance in the 1ms to 1.5ms and 3ms to 5ms time windows and
stores results in the MyAnalysis.cpa_1.5m and MyAnalysis.cpa_5m
files.
Enables the performance analyzer and flushes results every 6 minutes (1/10th
of an hour).
set_active_net_flow
Triggers the automated active net flow.
set_active_net_flow [-switch] switch_value
[-vtol numeric_value]
[-twindow tstart tstop {tstart tstop}]
[-reuse_active_net enable_value]
[-reuse_ic enable_value]
[-setup_cmd cmd_file]
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.
Argument 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.
Examples
set_active_net_flow 1 -vtol 100m
Invokes the active net flow. A net is active when its voltage variation is greater
than 100mV.
Invokes the active net flow. A net is active when its voltage variation is greater
than 100mV within the [1us, 2us] window.
Invokes the active net flow and reruns the entire flow to regenerate the active
nets. A net is active when its voltage variation is greater than 100mV within the
[1us, 2us] window or [4us,6us] window.
set_analysis_core
Assesses the CustomSim analysis module (AM) processing requirements and
can allocate up to two additional cores.
set_analysis_core -core [0|1|2]
Argument Description
set_array_option
Provides user control over the effects of the CustomSim SPICE optimization for
array (SOFA) technology.
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]
[-keep_cell_ccap enable_value]
Argument Description
Argument Description
set_ba_option
Adjusts how the CustomSim tool handles back-annotation.
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]
[-swap_port port1 port2 sub_name]
[-min_res value]
[-max_res value]
[-min_cap value]
[-report_trim_rlc enable_value]
[-rcnet net_name {net_name}]
Argument Description
-dpf_elem_type type Lets you specify the types of elements you want to
{type} back-annotate from a DPF file. Table 6 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 <>.
Argument Description
Argument Description
-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.
-spftlv enable_value Enables the top-level view of the SPF file for the
reliability analysis (RA) flow. The default is 0.
-position_file file Reads in a position file when multiple SPF files are
read in for RA.
Argument Description
mos m* or M*
diode d* or D*
resistor r* or R*
bjt (BJT) q* or Q*
capacitor c* or C*
Mapping Terminals
When parsing the prelayout netlist, the CustomSim tool finds all macro models
from the model libraries (.lib files) and picks up a device from the macro
model definition that represents a macro model. For each macro model, the
CustomSim tool provides subcircuit port-to-device pin mapping. This
information is used to generate corresponding map_ba_terminal commands to
map macro model ports to device pin names.
When you run the load_ba_file command, the -auto_map_ba_terminal
option automatically generates a map_ba_terminal command for macro
models that maps the terminal name used in the prelayout netlist to the pin
name in the postlayout netlist. This option provides correct back-annotation and
accurate simulation results. Also, for devices with interchangeable terminals
such as MOSFETs, resistors, capacitors and inductors, a corresponding
set_ba_option -swap_port command is automatically generated to
define swappable device terminals. Without this functionality you need to
provide mapping manually.
Table 7 show the devices that are supported in macro model definitions with
their pin names used for mapping.
Table 7 Swappable Device Pins
MOSFET D, G, S, B D and S
JFET D, G, S D and S
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.
schematic netlist:
M1 a b c d NCH l=45e-9 w=180e-9
SPF:
M1 a b c d NMOS l=45-9 w=90e-9 ...
M1@2 a b c d NMOS l=45e-9 w=90e-9 ....
set_bus_format
Sets the bus delimiters.
set_bus_format -open open_delimiter
[-close close_delimiter]
Argument 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_bus_format -open /
set_bus_format -open #
set_capacitor_option
Lets you control capacitor handling at different phases of the simulation.
Argument Description
Argument Description
Figure 4 shows the relationships between -rule 1 and -rule 2 in the same
simulation.
-min(rule1) min(rule1)
0
-min(rule2) min(rule2)
Figure 4 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.
set_ccap_level -level ccap_level
[-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name}]
Argument Description
Level Description
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.
set_ccap_option -ccap_to_gcap ccap_threshold_value
[-ccap_to_scap switch_value]
[-ccap_threshold ccap_low_threshold_value]
Argument Description
Argument 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_circuit_flash
Specifies a single, easy-to-use command to simulate flash designs.
set_circuit_flash -app func|power -type 0|1
Argument Description
-type 0|1 Specify -type 0 to get good accuracy for a flash circuit
with charge pumps and oscillators. Specify -type 1 for
a dynamic power simulation.
Specifies a functional simulation for a flash circuit with a known block that has a
charge pump. Note that for this example you can also use the setting in the
previous example. However, the setting in this last example gives you better
performance because it uses -type 1, so you have a local command for the
charge pump to satisfy the high accuracy requirement for this block.
set_current_option
Adds an extra control for the current accuracy in addition to the set_sim_level
setting.
set_current_option [-level] option_value
Argument Description
set_dc_option
Controls DC convergence.
set_dc_option
[-method method_type [method_type ...]]
[-skip_dc value] [-cont_dc enable_value]
[-min_res min_res_value]
[-report report_type]
[-iteration iter_value]
[-loop_solve loop_solve_val]
[-max_v max_val]
[-min_v min_val]
[-latch latch_value]
{-cck_filepath directory_path]
Argument Description
Argument Description
Argument Description
-max_v max_val If you set this value greater than or equal to 0, it clamps
voltage in DC analysis. The default value is 1000000.
-min_v min_val If you set this value less than or equal to 0, it clamps
voltage in DC analysis. The default value is -1000000.
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 9 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.
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
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.
set_flash_option -delvto value
[-inst inst_name {inst_name}]|
[-subckt subcircuit_name {subcircuit_name}]
Argument Description
Sets an initial vth change of -0.5V on all flash cells in the netlist.
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. This command only works for floating
nodes that have no driving path.
set_floating_node -val value [-type gate|all]
[-format ic|vsrc]
[-outfile enable_value]
[-dev_type n|p]
Argument Description
Argument Description
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.
You need to use the -outfile 1 option to generate the .fnode report.
Examples
set_floating_node 0 -type all -format ic
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.
Applies an initial value of 0V to the gate of all n devices and connects pmos
gates to a value of 2volt.
Applies an initial value of 0V to the gate of all n devices and connects pmos
gates to a value of 2volt. It also sets an initial value of 0 for all other (non-gate)
floating nodes.
set_hotspot_option
Controls which nodes are reported by check_node_hotspot.
set_hotspot_option -factor value
Argument Description
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_identification_rule
Sets front-end identification rules, which set simulation strategies to maximize
performance with good accuracy.
set_identification_rule
-type force_digital|digital|mixed|analog|force_analog
[-detect_source_coupled_fet digital|mixed|analog]
[-force_parasitic_diode digital|mixed|analog]
[-detect_current_mirror digital|mixed|analog]
[-detect_diode digital|mixed|analog]
[-less_diode_connected enable_value]
[instance_spec]
Argument Description
Argument Description
Argument Description
Argument Description
While the default CustomSim rules and strategies work well most of the
time, there are cases when they can impact performance. So it is
necessary for the CustomSim tool to provide some additional user
controls to allow modifications to the front-end identification rules to gain
better performance.
Figure 5 shows examples of the topologies that are relevant to the CustomSim
rules and strategies: DC means diode-connected, CM means current-mirror,
and SC means source-coupled. (Note that the actual identification rules
implemented in the CustomSim tool are more complicated than those shown in
Figure 5.)
Examples
set_identification_rule -detect_source_coupled_fet mixed
Forces the diode identification rule such that all diodes are marked as parasitic
diodes.
Applies the mixed-signal type of rules to current mirror detection so there are
fewer current mirrors detected compared with the CustomSim default detection
rules.
set_inductor_option
Lets you control inductor handling at different phases of the simulation.
Argument Description
See Also
set_capacitor_option
set_resistor_option
set_interactive_stop
Enables the node voltage monitoring/checking capability.
Argument Description
-max vmax If any monitored signal rises above the upper limit you
specify within the specified time window, the CustomSim
tool interrupts the transient simulation and enters interactive
mode to facilitate debugging.
-min vmin If any monitored signal falls below the lower limit you specify
within the specified time window, the CustomSim tool
interrupts the transient simulation and enters interactive
mode to facilitate debugging.
Note that for monitored signals you should specify at least
one -max or -min argument.
-twindow tstart Specifies the time periods for the signals to be monitored in
tstop {tstart the simulation.
tstop}
-cmf Specifies the script file to be run when the CustomSim tool
script_file_name enters interactive mode due to a violation at the upper or
lower limits of -max or -min.
Note that the commands in the script file must be interactive
commands.
If any monitored signal rises above the upper limit or falls below lower
limit, the CustomSim tool interrupts the transient simulation and enters
interactive mode. You can also use this command to specify a script file to
run when entering interactive command due to either an upper/lower limit
violation, or specified time with the -at argument. The secondary use of this
command is to specify a time to re-enter interactive mode using the -at
argument.
Examples
set_interactive_stop -at 150us
Stops the transient simulation and enters interactive mode at 150us and runs
the commands in cmd_file.
Stops the transient simulation and enters interactive mode when v(net1) is
greater than 1.2V and runs the commands in cmd_file.
set_latch_control
Detects latch nodes to prevent meta-stable states during power-up simulation.
set_latch_control -twindow t0 t1
or
set_latch_control [-check 1]
Argument Description
-twindow t0 t1 Specifies the power ramp-up period when force and release
commands are applied to detected latch nodes.
Argument Description
Latch node voltages are controlled during the power-up period from 1.5ms to
1.7ms.
set_latch_control -check 1
Generates a .metainfo file, which lists detected memory cell latch nodes that
can potentially lead to meta-stable states during power-up simulation. Only one
out of the two back-to-back latch nodes is reported in the .metainfo file. In
addition to the latch nodes, related power nodes are also reported. When the
detected power nodes are external PWL VSRC, or DC VSRC, their VSRC
definitions are also reported.
If the power nodes are internal, only their names are reported.
The following example shows a .metainfo file generated by
set_latch_control -check 1.
set_logic_threshold
Specifies a default logic high/low threshold value.
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.
Argument Description
-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.
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_meas_dump
Specifies whether to dump the .ma file used by the Measure Analyzer tool. The
default is 0.
The output .ma file includes information about measurements, such as the
original netlist statement, file and line number, numerical values of parameters
involved, hierarchical dependencies of measurements, and dependent signals.
set_meas_dump [0|1]
set_meas_format
Sets the .measure file output format. If this command is not used, the default
.measure file output uses CustomSim formatting.
set_meas_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_meas_format -format hspice
set_message_option
Controls the number of warning messages the CustomSim tool prints.
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.
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 26, when the CustomSim tool finds an ignored option or command,
it stops the simulation and exits.
Example 26
set_message_option -pattern "Option/Command ignored" -action exit
In Example 27, for any warning that contains the "floating" or "not matched"
patterns, the CustomSim tool stops and exits the simulation.
Example 27
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 28
set_message_option -limit 100 -pattern "Option/Command ignored"
set_message_option -pattern "Floating" -action exit
In Example 29, 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 29
set_message_option -pattern "forward biased" "exceeding" -action
stop
In Example 30, the CustomSim tool tabulates and print at most 50 occurrences
of warnings containing the pattern "unsupported" and then exit with an
error.
Example 30
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.
set_model_level -level model_level | -type model_type
[-force 0|1]
[-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name}]
Argument Description
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.
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
set_sim_level 4
set_model_level -type analog -force 1
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.
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
-mos_bin_closest model_name
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 prelayout (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.
mos_bin_closest Enables the use of the closest bin for a device that does not
model_name fit any of the given model bins. This feature applies to all
device models specified by the model_name, where only
the designated models have the feature applied, and all
other models do not. You can specify a wildcard character
("*") to apply this feature to all models.
For more information about this option, see the Using
mos_bin_closest section.
-grid grid_value Sets the absolute LUT grid size in volts. You can only
specify this option globally.
-grid_scale scale Scales the dynamic table model grid size by the square of
the specified scale value. Setting the scale too small can
lead to a very small grid size, which can use up a lot of
memory and slowdown overall simulation. You can only
specify this option globally. The default value is 1.
Argument Description
Using mos_bin_closest
For a MOS device with width (W) and length (L) specified on the instance line,
where W and/or L do not fit any of the given model bins, the closest bin is
defined by the following, in which Lmin, Lmax, Wmin, and Wmax are the
minimum L, maximum L, minimum W, and maximum W, respectively, of a bin
as shown in Table 10.
Table 10 Definition of Closest Bin
No W bin, L bin exists Lmin <= L < Lmax, if W > maximum Wmax of Lmin, Lmax
bin else W <= minimum Wmin of Lmin, Lmax bin
W bin, no L bin Wmin <= W < Wmax, if L > maximum Lmax of Wmin, Wmax
bin else L <= minimum Lmin of Wmin, Wmax bin
No W bin, no L bin If W > maximum available Wmax and (L > maximum Lmax
of maximum available Wmax bin or L <= minimum Lmin of
maximum available Wmax bin) else W <= minimum
available Wmin and (L <= minimum Lmin of minimum
available Wmin bin or L > maximum Lmax of minimum
available Wmin bin)
In the following example Table 11 gives the available bins and Table 12
illustrates the closest bin selection for a given device. size:
Table 11 Example Bins
1 2u 3u 50u 60u
1 3u 4u 50u 60u
3 6u 7u 40u 80u
4 6u 7u 80u 90u
If you use -mos_bin_closest a warning appears in the log file that the MOS
device with its W, L dimensions does not fit any given model bin. Also, the
closest bin information (Lmin, Lmax, Wmin, Wmax) used for the respective
MOS device is noted in the log file.
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
The following enables the closest bin selection feature for all models.
set_model_option -mos_bin_closest *
The following example enables the closest bin selection feature for all moscap*
models only. All other models do not use the closest bin selection feature.
set_model_option -mos_bin_closest moscap*
set_monte_carlo_option
Specifies how to run traditional Monte Carlo analysis for transient simulation.
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.
Argument 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 Guide: Simulation and Analysis.
Traditional Monte Carlo defines a random variable with a distribution function.
You can assign a random variable just as in HSPICE. The CustomSim tool
supports the same distribution functions as HSPICE:
■ UNIF(nominal_val, rel_variation [, multiplier])
■ AUNIF(nominal_val, abs_variation [, multiplier])
■
GAUSS(nominal_val, rel_variation, num_sigmas [, multiplier])
■ AGAUSS(nominal_val, abs_variation, num_sigmas [, multiplier])
■
LIMIT(nominal_val, abs_variation)
Whenever a parameter defined by one of these functions is assigned, a new
unique random variable is generated. For more information distribution
.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 33 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 33 .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.
set_multi_core [-core num_cores]
[-check_model value]
[-check_netlist value]
Argument Description
Argument Description
Examples
set_multi_core -core 4
set_multi_core -check_netlist 2
set_multi_core -check_model 1
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.
set_multi_rate_option -mode 1|2
Argument Description
set_oscillator
Applies the trapezoidal integration method to oscillator circuits.
set_oscillator -inst inst_name|-subckt subckt_name
[-disable value]
[-report value]
Argument Description
Examples
The following example applies the trapezoidal integration method to an inductor
instance.
Example 35
set_oscillator -inst x1.xosc.L1
The following example disables automatic detection and applies the trapezoidal
integration method to the specified instance.
Example 40
set_oscillator -inst xxtal -disable 1
set_parameter_value
Lets the CustomSim tool change the value of a specified parameter for
selected instances without modifying the netlist. This command supports only
the delvto parameter for MOSFET instances.
set_parameter_value -name delvto
-value delvto_value
instance_spec
Argument Description
Examples
set_parameter_value -name delvto -value 0.5 x1.*
Changes the delvto value for all MOSFET devices inside x1 to 0.5.
set_partition_option
Overrides the automatic setting for circuit partitioning.
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 }]
[-footer_switch 0|1]
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
set_postlayout_meas
Checks all the back-annotated signals used in the .meas statements and
reports the earliest or latest signals.
set_postlayout_meas mname
-trig [early|late] | [min|max]
-targ [early|late] | [min|max]
Argument Description
-trig min|max When you specify -trig min, the CustomSim tool
picks the smallest of all rise/fall times among all the
SPF signals of the trig net within the time window
defined by the .meas statement.
When you specify -trig max, the CustomSim tool
picks the largest of all rise/fall times among all the
SPF signals of the trig net within the time window
defined by the .meas statement.
Argument Description
-targ min|max When you specify -targ min, the CustomSim tool
picks the smallest of all rise/fall times among all the
SPF signals of the targ net within the time window
defined by the .meas statement.
When you specify -targ max, the CustomSim tool
picks the largest of all rise/fall times among all the
SPF signals of the targ net within the time window
defined by the .meas statement.
Both the delay1 and delay2 measurements are honored, but only the first
one (Delay1) uses the set_postlayout_meas options, because only the A*
back-annotated nets are saved. The B1 and B2 back-annotated signal nets are
not saved with probe_waveform_voltage -ba_net, so the Delay2
measurement is done as usual. The set_postlayout_meas Delay2
command is ignored.
The CustomSim tool supports the Eldo .EXTRACT commands and generates a
.meas file identical to the .meas file generated by the HSPICE .meas
command. So the set_postlayout_meas command applies to the results of
the .EXTRACT measurement. For example, if the following Eldo command is in
the netlist:
.EXTRACT label=del1 tpddd(v(in), v(out), vth=1
After the simulation completes, a .meas file is created with the delay between
v(in) falling and v(out) falling with val=1V. If you specify the following
configuration file command:
set_postlayout_meas del1 -trig early -targ late
The measurement uses the early slope for the trig signal (v(in)) and the
late slope for the targ signal (v(out)).
Examples
In the case of rise/fall (also called slope or transition) time measurement, trig
and targ are the same signal, so the -trig and -targ arguments are
optional. The -trig and -targ values can be min or max. For example, the
following .meas statement measures the fall time (it's fall because trig value
is greater than targ value) of signal SUM0.
.meas tran fall1 trig v(SUM0) val='0.9*vdd' fall=1 from=1n to=2n
targ v(SUM0) val='0.1*vdd' fall=1 from=1n to=2n
The CustomSim tool measures all fall times for SUM0, that is:
Fall time for x0/x33/M2:SRC from 0.9vdd to 0.1vdd.
Fall time for x0/x33/M1:SRC from 0.9vdd to 0.1vdd.
The CustomSim tool then compares all the results. If set_postlayout_meas
-trig max is used, then the measurement reports the max value. If
set_postlayout_meas -trig min is used, then the measurement reports
the min value.
The following .meas statement in a netlist applies to a delay measurement:
.meas tran D1 trig v(X1.z) val=vdd/2 rise=1 from= 1n to= 2n targ
v(X2.c) fall=2 val=vdd/2 late from= 3n to= 4n
To determine the triggering signal, the CustomSim tool checks all SPF signals
related to X1.z. It picks the first rising signal reaching vdd/2 between 1ns and
2ns. To determine the target signal, the CustomSim tool checks all SPF signals
related to X2.c. It picks the last falling signal reaching vdd/2 between 3ns and
4ns. Note that the CustomSim tool ignores the first occurrences of X2.c
signals falling, it picks the second occurrence of all X2.c signals falling
(because of fall=2).
The .meas0 file shows:
...
D1 = 1.8657638e-09 targ = 1.8657638e-09 trig = 0.0000000e+00
targ_signal=x2.c::x1.x3.mn2:gate
trig_signal=x1.z::x1.x3.mn1:drain
Temper = 2.5000000e+01
alter# = 1.0000000e+00
set_powernet_level
Controls the performance/accuracy tradeoff for IR drop simulation.
set_powernet_level -level level_value
[-node node_name {node_name}]
Argument Description
-node node_name Defines the node names to which the power network
{node_name} accuracy level is applied. It can be the node 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.
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 15) 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
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.
set_powernet_option -ideal_rmax res_value
[-collapse_node node {node}]
[-except_node node_name {node_name}]
[-report enable_value]
Argument 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 16 shows the defaults used at the different accuracy levels.
Table 16 Default -ideal_rmax res_value 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. To meet your accuracy requirements,
especially for IR-drop simulations, you can override the automatically chosen
res_value by using the -ideal_rmax res_value option. The smaller the
res_value the better the accuracy for ID-drop simulations.
set_probe_option
Controls probing options.
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
Argument Description
set_probe_option -variable_separator :
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.
set_probe_window -window -split value value
{time_start_value time_end} time_start_value [time_end]
where:
time_end ::== time_end_value | end
Argument Description
-split value {value} Sets the values at which at which to split output
waveform files and save separated waveform
files. The default is not to split waveform files as
separated outputs.
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
Example 41
.tran 1n 1u 200n
.opt xa_cmd="set_probe_window 500n"
Overrides the .tran statement because it occurs last. Printing starts at 500ns.
set_probe_window 500n
set_ra_functional_resistor
Specifies the model name for the design resistors to be processed by the
reliability analysis (RA) flow.
set_ra_functional_resistor -res_model model_name
[-layer layer_name]
[-map_w width_name_in_netlist]
Argument Description
Argument Description
Once you specify the model name of the resistors the RA flow
automatically creates a virtual SPF net to store the design resistors,
generate the current through those resistors, and propagate the current
information to Phase II RA analysis.
The following rules apply to the set_ra_functional_resistor command.
■
You can specify only one model name per command.
■
You can use one or more set_ra_functional_resistor commands to identify
design resistors with a different model name.
■
CustomSim-RA analysis requires a back-annotation setup. For EM analysis
on design resistors, the same requirement applies.
Examples
set_ra_option -sigra 1
set_ra_function_resistor -res_model rhsim_m
load_ba_file -file spf_file
Runs a SIGRA simulation that includes a design resistor with the model name
rhsim_m.
set_ra_option -sigra 1
set_ra_functional_resistor -res_model rhsim_m
set_ra_functional_resistor -res_model rhsim_p
load_ba_file -file spf_file
Runs a SIGRA simulation that includes design resistors with model names
rhsim_m and rhsim_p.
set_ra_option -sigra 1
set_ra_function_resistor -res_model rhsim_m -layer design_res
load_ba_file -file spf_file
Runs SIGRA simulation that includes a design resistor with model name
rhsim_m and a particular layer name, design_res, instead of the default
layer name.
set_ra_option -sigra 1
set_ra_function_resistor -res_model rhsim_m -map_w wn
set_ra_function_resistor -res_model rhsim_p -map_w wp
load_ba_file -file spf_file
Runs a SIGRA simulation that includes a design resistor with the model name
rhsim_m and rhsim_p. The netlist uses wp and wn to represent width for the
corresponding resistors.
set_ra_net
Specifies the nets to consider for RA.
set_ra_net [-selectnet net_names]
[-skipnet net_names]
Argument Description
Examples
set_ra_net -selectnet vdd*
set_ra_net_type
Specifies the net types for power net reliability analysis (PWRA) and signal net
reliability analysis (SIGRA).
set_ra_net_type [-pwnet net_names]
[-signet net_names]
Argument Description
The set_ra_net_type command selects the type of net that goes into the
RA flow. There are only two types of nets that can go into RA: power nets
or signal nets. If a net is selected as both power and signal, then the power
selection takes precedence.
When you do not specify a set_ra_net_type command, the CustomSim tool
uses internal ID methods to identify net types. When you specify one or more
set_ra_net_type commands, the automatic identification is disabled,
allowing you to control net types manually.
You can specify multiple set_ra_net_type commands. Only nets that are
selected by -pwnet or -signet are selected for RA (set_ra_option
-pwra 1 triggers PWRA and set_ra_option
-sigra 1 triggers SIGRA).
Examples
set_ra_net_type -pwnet vdd vddhd
set_ra_option
Specifies options for RA analysis.
set_ra_option [-pwra enable_value]
[-sigra enable_value]
[-waveform_split size]
[-rap2auto enable_value]
[-ratau ratau_value]
[-ratcl ratcl_name1 ratcl_name2 ...]
[-twindow time_points]
[-tmpdir directory_name]
Argument Description
Argument Description
-waveform_split size Sets the split size for the .rasim file. The
default split size is 2G. If the .rasim file size
exceeds this threshold, then additional .rasim
files are created with names .rasim#, for
example, .rasim1, .rasim2, and so on.
-ratau ratau_value Sets the RATAU (simulation step size) value for
Phase II RA. The default is 10ps.
Examples
set_ra_option -pwra 1 -ratcl ratcl_file
Runs both PWRA and SIGRA flows and stops after phase I completes.
Collects .rasim data (currents and voltages) in the time interval 5-10ns and
from 20ns until the end of transient simulation.
set_ra_pwnet_driver
Provides the driver pin information for the internal power net.
set_ra_pwnet_driver -net net_name
-driver_ipname instance_pin_names
Argument Description
Examples
set_ra_pwnet_driver -net vss -driver_ipname xx/xx/clk2@2:D
set_ra_pwnet_option
Lets you define the reference voltage and source external power supply node
for the internal power net.
set_ra_pwnet_option -net net_name
[-vref vref] [-src source_pwnet_node]
Argument Description
-src source_pwnet_node Specifies the source power net node (its netlist
name) that is supplying power into the internal
power net. This is a hierarchical node name
starting from the top level of the netlist. Wildcard
characters are not supported.
Defines the source node and reference voltage of the vdd_int net.
set_ra_reuse
Reuses previous simulation results to make the RA verification cycle more
efficient.
set_ra_reuse -rasim master_output_path
[-inst_pin_tol tol_value]
Argument Description
Argument Description
Reuses the RASIM result from the master run located in the output_master
directory.
set_rc_network_option
Controls options related to RC optimization.
set_rc_network_option [-mode mode_value]
[-tconst tconst_value]
Argument Description
-tconst tconst_value Sets the time constant value used by the -mode
2 RC heuristic algorithm. The nodes with a
tconst_value greater than the value
specified by this option are preserved. The
default is 1e-13.
set_resistor_option
Lets you control resistor handling at different phases of the simulation.
set_resistor_option -rule 1|2
[-min value] [-max value]
[-report 0|1]
or
set_resistor_option [-keep_negative_res enable_value]
[-report 0|1]
Argument Description
Argument Description
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
to -1e10, or greater than or equal to 1e10 are open by -rule 1.
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.
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.
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 6 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
-(min of rule1) > -(min of rule2) and -(max of rule1) < -(max of rule2) for negative resistors
Figure 6 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.
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.
Argument Description
-twindow {start_time Sets the start and stop time of the first sampling
stop_time} start_time point.
[stop_time]
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 is 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.
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.
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_sim_case
Controls case-sensitivity. Note that you must specify this command in the
CustomSim configuration file, not in the netlist.
set_sim_case -case upper|lower|sensitive
Argument 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.
set_sim_hierid -hierid sep_char [-add_spf sep_char]
Argument 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_hierid :
set_sim_level
Controls the speed and model complexity trade-off.
set_sim_level -level level instance_spec
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 42 sets the simulation level to 5 on the entire netlist:
Example 42
set_sim_level 5
set_sram_characterization
Specifies the performance/accuracy settings for simulating SRAM designs.
set_sram_characterization [-enable] enable_value
[-ver[sion] 0|1]
[-app[lication] timing|power]
[-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 You can specify one of the following values to control how
1|2 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.
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.
set_synchronization_level -level level_value
[-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name }]
Argument Description
set_synchronization_option
Provides flexibility to control the synchronization between blocks.
set_synchronization_option -rule gate|never
[-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name }]
Argument Description
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.
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.
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.
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 18
shows the default tolerance values.
The default tolerance values for each set_sim_level setting are shown in
Table 18.
Table 18 Default Relative Tolerance Values
set_sim_level 4 -tol=150
set_sim_level 5 -tol=100
set_sim_level 6 -tol=50
set_va_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.
set_va_view -view VA|va|SPICE|spice
[-inst inst_name {inst_name}]
[-subckt subckt_name {subckt_name}]
Argument Description
Examples
Example 45 shows an HSPICE netlist that uses the SPICE view by default.
Example 45 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 46 sets the SPICE view for all subcircuits and
modules in a netlist.
Example 46
set_va_view SPICE
The command in Example 47 sets the Verilog-A view for all subcircuits and
modules in a netlist.
Example 47
set_va_view VA
In Example 48, the Verilog-A module definition is used for all instances of
subcircuit my_module.
Example 48
set_va_view VA -subckt mymodule
If the netlist contains the command in Example 49, the Verilog-A module
definition is used for subcircuit instance X2 of my_module.
Example 49
set_va_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_vector_char
Provides a capability to overwrite the logic-high and logic-low voltages
specified in the vector file without the need to modify the original vector file. The
arguments supported in this command are used globally.
set_vector_char [-vih value]
[-vil value]
[-node node_name {node_name}]
Argument Description
-node node_name Specifies a node name inside a vector file. You can
{node_name} specify multiple node names with wildcard
characters. The default is to match all nodes specified
in the vector file.
Examples
set_vector_char –vih 3.0 –vil 0.8
Overwrites logic-high and logic-low voltage defined in the vector file by 3.0 and
0.8 respectively.
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, OUT and VPD formats support this
feature.
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.
Argument Description
-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.
Generates the expected output for the following signal names: d[0], d[1],
d[2], and s[0].
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_option
Sets the output waveform options. You can specify the file format, file-split size,
voltage resolution, current resolution and flush percentage.
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]
[-output_step step_size]
[-psf_lib_path absolute_path]
Argument Description
Argument Description
Argument Description
Argument Description
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
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.
The previous example causes the CustomSim tool to update the waveform file
after every 100ns of simulation time.
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
set_probe_window, enable_print_statement
Supported Waveform Formats in “Running the Simulator” in the CustomSim
User Guide.
set_waveform_sim_stat
Lets you display the CPU (or wall) time as a function of the transient simulation
time in the same WaveView window. This command helps you detect
bottlenecks when the CPU or wall time is increasing faster than the transient
simulation time.
set_waveform_sim_stat -type sim_stat_type {sim_stat_type}
Argument Description
Examples
set_waveform_sim_stat -type wall cpu pvm
Dumps the wall, CPU, and peak virtual memory as f(transient time) in the log
file and as Y-axis values, while the X-axis shows the transient time.
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.
set_wildcard_rule -match* all | one
[-node_alias enable_value]
[-match_ic* all|one]
Argument Description
-node_alias When you enable this option all node aliases are reported in
enable_value waveform files and the report_node_cap command also
reports the capacitance information for all node aliases. The
default is 0.
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.
set_zstate_option -idsth value_1
[-vbeth value_2]
[-rule rule_value {rule_value}]
[-diode_vth value]
[-va_rule value]
[-xdummy value]
[-isrc_rule value]
Argument Description
Argument Description
Argument Description
-isrc_rule value Controls the Hiz conducting rule for independent current
sources. By default, independent current sources are non-
conducting for the Hiz check. When you this set to 1
independent current sources are considered conducting
for the Hiz check. Spectre bsource elements of the form
i=constant are converted to independent current
sources and are subject to the -isrc_rule setting.
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. For subcircuit instances, it can also estimate their loads and
replace them with capacitive loads at the ports.
skip_circuit_block [-load] enable_value instance_spec
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.
The -load argument turns on and off instance-based load estimation. The
default is 0. If you specify -load 1, instead of commenting out the specified
instances, they are replaced with capacitive loads at the ports.
Examples
Example 50
skip_circuit_block -inst x1.xregulator
Example 51
skip_circuit_block -subckt pdetect
Example 52
skip_circuit_block -inst d1 -subckt nmosmac
Example 53
skip_circuit_block -load 1 -inst x1.xregulator
Example 54
skip_circuit_block -load 1 -subckt pdetect
Replaces all instances of the pdetect subcircuit with capacitive loads at the
ports.
source
source is a native TCL command, not a CustomSim-specific command. You
use it to include other command script files.
source file_name
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 55
#Test case-specific file
set_sim_level 4
#Load common settings
source xa_common_settings.tcl
Provides the syntax for all of the CustomSim interactive and DC interactive
mode commands.
ireport_operating_point
isearch_node
iset_break_point
iset_diagnostic_option
iset_interactive_option
iset_interactive_stop
iset_save_state
iset_zstate_option
The DC interactive mode commands are:
iclose_log
icontinue_dc
idelete_node_ic
imatch_elem
imatch_node
iopen_log
iprint_connectivity
iprint_elem_info
iprint_exi
iprint_help
iprint_node_info
isearch_node
iset_node_ic
■
imatch_elem
■
imatch_node
■
iopen_log
■
iprint_connectivity
■
iprint_dcpath
■
iprint_elem_info
■
iprint_exi
■
iprint_flash_cell
■
iprint_help
■
iprint_node_info
■
iprint_subckt
■
iprint_time
■
iprint_tree
■
iprobe_waveform_current
■
iprobe_waveform_voltage
■
iquit_sim
■
irelease_node_voltage
■
ireport_node_cap
■
ireport_operating_point
■
isearch_node
■
iset_break_point
■
iset_diagnostic_option
■ iset_env
■
iset_interactive_option
■
iset_interactive_stop
■
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 56
alias pns iprint_node_info
Example 57
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]
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
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 58
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]
[-time time_val]
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.
-time time_val Specifies the time when the nodes are forced. The default
is the current break point.
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 59
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
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]
or
iprint_connectivity -index node_index {node_index}
[-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.
Argument Description
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.
Argument Description
-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.
-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 x1.xi@1477.mpt1
Example 60
iprint_elem_info -elem x1.x2.m1
Example 61
iprint_elem_info -index 1 3 2
Example 62
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
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:
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
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.
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}
or
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 63
iprint_node_info -node xalu3.xlatch2.q
Example 64
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 [-file file_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_current
Creates device current waveform output.
Syntax
iprobe_waveform_current [[-i|i1] instance_name
{instance_name} [-in instance_name {instance_name}]
[-iall instance_name {instance_name}]
[-subckt subckt_name]
[-limit level]
[-delete enable_value]
Argument Description
Description
During interactive debugging, it is sometimes necessary to plot additional
device currents for viewing that were not specified for printing in the netlist, and
to remove other device currents. This command supports device current
probing in interactive mode.
Examples
In order to add/delete device current probes, you need to predefine the scope
for possible device current probes with the iprobe_waveform_current
command in the configuration file. Then, during the interactive mode, you can
add the device current probes that you defined in the configuration file.You can
delete the ones defined from the predefined scope and the ones defined in the
netlist. For example, if you want to probe and delete some of the device
currents under the xd sub-instance during the simulation, specify the following
scope in the configuration file:
iprobe_waveform_current xd*
In interactive mode, you can probe any device current under that scope. For
example:
iprobe_waveform_current xd.xcell0.*
Note: You need to set the scope using the -iall option in the
configuration file.
Adds current probes of devices under xd.* below two hierarchical levels.
iprobe_waveform_current xd.xcell0.m1i23
-delete 1
This command deletes all the current probes. It includes all the interactive
current probes (the probes added interactively) and the normal current probes.
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 65
XA> iprobe_waveform_voltage x1.*
Example 65 adds probes for all nodes in instance x1. Wildcard matching is
influenced by set_wildcard_rule and iset_interactive_option.
Example 66
XA> iprobe_waveform_voltage * -delete 1
Example 67
XA> iprobe_waveform_voltage x1.* -level 2
Example 67 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}
[-time time_val]
Argument Description
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
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
R189 na:20 na:24 0.744002 $l=0.6 $w=0.5 $lvl=2
R190 na:20 x01/mp:DRN 5.38888 $a=0.09 $lvl=12
...
In back-annotated post-layout flow, the capacitance information is reported as:
Ctotal = Cgate + Cjunction + Cwire
Cgate = Cgd + Cgs + Cgb
Cjunction = Cdb + Csb
Cwire = CBAnet + Cdesign
Based on the previous back-annotation file example:
Ctotal = Cgate + Cjunction + Cwire
Cgate = Cgate(x02/mp) + Cgate(x02/mn)
Cjunction = Cjunction(x01/mp) + Cjunction(x01/mn)
Cwire = CBAnet (0.00458507PF) + Cdesign
In a flat postlayout flow, the CustomSim tool treats all nodes as unique and
independent. To accurately calculate the capacitance information, you need to
group the nodes and then run report_node_cap. For example, see Figure 7.
In Figure 7, 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 68
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 69
XA> ireport_op op_200us.nodeset -type nodeset
Example 70
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
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
Highest connectivity node: Subckt=con20 Node=a (1)
#Conn=21 Vsrc=0
Reports all nodes with a voltage absolute value greater than 2.5V.
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_env
Use this command when you want to see the entire result of your interactive
command at once.
Syntax
iset_env -filter|-filter output_filter
Argument Description
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 242 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_interactive_stop
Enables the node voltage monitoring/checking capability.
Syntax
iset_interactive_stop -check v(node_name) {v(node_name)}
[-max vmax]
[-min vmin]
[-twindow tstart tstop {tstart tstop}]
[-cmf script_file_name]
Argument Description
Argument Description
-twindow tstart tstop Specifies the time periods for the signals to
{tstart tstop} be monitored in the simulation.
Description
If any monitored signal rises above the upper limit or falls below lower limit, the
CustomSim tool interrupts the transient simulation and enters interactive mode.
You can also use this command to specify a script file to run when entering
interactive command due to either an upper/lower limit violation.
Examples
XA> iset_interactive_stop -check v(net1) -max 1.2 -cmf cmd_file
XA> cont
Continues the transient simulation and stops when v(net1) is greater than
1.2V and applies the commands in cmd_file.
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
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.
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)
Diode Forward-biased.
Device Rule
You can also specify the HSIM DC interactive mode command syntax as shown
in Table 20. For information about the HSIM DC interactive mode commands,
see the HSIM Reliability Analysis Reference Manual.
Table 20 HSIM and CustomSim DC Interactive Commands
exit exit
closelog iclose_log
dccont icontinue_dc
ric idelete_node_ic
matche imatch_elem
matchn imatch_node
openlog iopen_log
nc iprint_connectivity
ev iprint_elem_info
exi iprint_exi
help iprint_help
nv iprint_node_info
dn isearch_node
fic iset_node_ic
exit
Stops and exits the simulation.
Syntax
exit
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_dc
Continues a DC simulation until it completes, stops at a specified iteration, or is
interrupted by Ctrl-C.
Syntax
icontinue_dc [-iter addl_iteration] [-to iteration]
[-to end]
Argument Description
Examples
XA DC> icontinue_dc -iter 20
idelete_node_ic
Releases initial condition values.
Syntax
idelete_node_ic [-node] node_name
or
idelete_node_ic -index node_index
Argument Description
Description
This command releases the initial condition value from the .ic statement or
iset_node_ic statement at DC interactive mode. This command does not work
on voltage source nodes or vector files.
Examples
XA DC> idelete_node_ic -node n2 n5
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 DC> 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
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.
This example finds all nodes ending in a at the top-level of the netlist, level 0.
XA DC> imatch_node *out -limit 4 -port 1
15 x0.x1.x2.aout
20 x0.x1.x2.x3a.out
35 x0.x1.x2.bout
48 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
XA DC> 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]
or
iprint_connectivity -index node_index {node_index}
[-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
XA DC> iprint_connectivity -node xspine_0.xdqr_0.xl850.osc_2
XA DC> iprint_connectivity xspine_0.xdqr_0.xl850.osc_2 -print cc
XA DC> iprint_connectivity -index 3
See Also
iprint_node_info
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 DC> iprint_elem_info x1.xi@1477.mpt1
Example 71
XA DC> iprint_elem_info -elem x1.x2.m1
Example 72
XA DC> iprint_elem_info -index 1 3 2
Example 73
XA DC> 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 DC> 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_help
Displays the syntax and a brief description of the specified interactive
commands.
Syntax
iprint_help -cmd command_name1 ... command_namen
Argument Description
Examples
XA DC> iprint_help iprint_node_info
iprint_node_info
Prints the node voltage, node index, iteration, and initial conditions (if any) for
the given node names. Each value is evaluated at the current iteration, when
the node voltage is last updated.
Syntax
iprint_node_info -node node_name {node_name}
or
iprint_node_info -index node_index {node_index}
Argument Description
Examples
XA DC> iprint_node_info x1.sout
Node=X1.SOUT (225)
V=1.69417 V, dV=-0.00244323, iter=1, ic=0.5 V
Example 74
XA DC> iprint_node_info -node xalu3.xlatch2.q
Example 75
XA DC> iprint_node_info -index 1 3 2
isearch_node
Searches nodes in the netlist and reports various attributes.
Syntax
isearch_node -v [voltage_value]|-dv [dv_value]|
-conn [conn_value]
-hiz enable_value
Argument Description
-hiz enable_value When set to ’0’ prints all hiz nodes (default).
When set to ’1’ prints all hiz nodes with
fanouts.
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.
■
High impedance nodes.
■
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 DC> isearch_node -conn
Highest connectivity node: Subckt=con20 Node=a (1)
#Conn=21 Vsrc=0
Reports all nodes with a voltage absolute value greater than 2.5V.
iset_node_ic
Changes initial condition values.
Syntax
iset_node_ic [-node] node_name -val value
or
-index node_index -val value
Argument Description
Description
This command changes initial condition value for the specified nodes. The
specified nodes stay at the specified constant voltage. The node voltage stays
at the same value from the current iteration until either DC convergence or
when the constant node voltage status is released by the idelete_node_ic
command.In the interactive mode, the this command does not work on voltage
source nodes or vector files.
Examples
XA DC> iset_node_ic -node pump -val 6.5
The voltage at the pump node stays at 6.5V from the current iteration on.
cck_excess_ipath
Checks for excessive current paths from the specified starting nodes to the
specified ending nodes. You can specify multiple cck_excess_ipath
commands in a single simulation. Along the current path, CustomSim can
support resistor, inductor, diode, MOSFET, and bipolar devices.
Syntax
cck_excess_ipath -label lname [scope] [-ith value]
[-ith2 value] [-tth value] [twindow] [from_node]
[to_node] [-at time {time}] [-file merge|split]
Argument Description
-label label_name Specifies the label name that appears in the report file,
which makes it easier to search the report.
-inst inst_pattern Scopes to the named instances. You can use wildcard
{inst_pattern} characters in the instance names according to the rules
specified by the set_wildcard_rule command.
Argument Description
-twindow {tstart Instructs CustomSim to perform the check within the time
tstop} tstart tstop window defined by tstart tstop {tstart tstop}. The
-tstep tstep_val tstart and tstop must come in pairs, except for the
final window where: if tstop is not specified, it is assumed
to be the end of the simulation. The final tstop can also
be the end or END keyword.
-at time {time} Performs discrete checking at the specified time points.
When you specify this argument, the output from the
measurement is redirected to another file
(.cckexipath_label) where label is the label name
of the statement.
-file merge|split Enables file merging or splitting. When set to merge (the
default), all outputs are merged into one output file (named
prefix.cckexipath).
When set to split, all the outputs are split into different
files (named prefix.cckexipath_label).
Description
If you do not specify -from_node and -to_node, cck_excess_ipath
searches the DC paths with all combinations of all voltage sources (VSRCs). To
avoid a long simulation time, specify the starting nodes and ending nodes.
At the end of the simulation, violations are reported to an output file,
*.cckexipath.
Examples
Example 76
cck_excess_ipath -label test1 -ith 10u -tth 0.6n -from_node vdd
xam.d1 -to_node gnd -twindow 10n 100n
Monitors the paths from vdd or xam.d1 to gnd between 10 –100 ns. If all the
elements in these paths have currents greater than 10 uA, and last for more
than 0.6 ns, a violation is reported.
cck_post
Post processes results from the cck_soa and the cck_signal commands.
cck_soa and cck_signal commands support voltage and current checking.
Syntax
cck_post -switch enable_value [-waveform file_name]
Argument Description
-waveform file_name Reads the waveform file and runs postprocessing. If the
waveform file does not exist, CustomSim issues an error
message. Note that split waveforms are not supported
for cck_soa and the cck_signal postprocessing.
Description
The cck_post command runs all the diagnostic circuit checks performed at
the end of the simulation based on a waveform file. It supports the
postprocessing results from the cck_soa and the cck_signal commands.
cck_signal
Checks the state of an arbitrary collection of signals that can be part of the
checks for node and instance probes. The cck_signal command also
supports current signals.
Syntax
cck_signal -label lname [scope] [-numv num_val]
constraint [twindow] [-flush auto | auto2]
[-limit level] [-filterAlert 0|1][-portalert
enable_value][-numvd num_value][-report conn|subinfo]
Argument Description
-label label_name Specifies the label name that appears in the report file,
which makes it easier to search the report. If on-the-fly
reporting is enabled, the label forms part of the report
filename.
-inst inst_pattern Scopes to the named instances. You can use wildcards in
{inst_pattern} instance names as specified by the CustomSim
set_wildcard_rule command. Wildcard behavior is
determined by the set_wildcard_rule command.
Argument Description
Argument Description
-limit level Specifies the hierarchy level to which the scope is applied.
When you specify -subckt, the -limit is relative to
where the subcircuit is located in the hierarchy. A value of
0 specifies the top level of the subcircuit. The default is for
all levels. This option is effective only when scoping
includes wildcard characters.
Argument Description
-numvd num_val Limits the number of violations per device or node that are
reported. The default is 1. To print all violations, specify the
all keyword. To turn off violation reporting, specify 0.
If the check expression is device based, that is,
-check {v(c1)- v(c2)<= 0.2}, then the -numvd
option specifies the number of violations per device.
If the check expression is node based, that is
-check {v(node1) <= 0}, then the -numvd option
specifies the number of violation per node.
Description
You can use the "*" wildcard character in the check expression in a voltage
access function if the other terms of the expression have a constant value. The
following scenarios are supported:
v(*)
“v(*) - 3.0”
“v(top.x1.*.port.*)/2”
The following scenarios are not supported because they contain a second
signal access function:
“v(*) – v(node1) + 1.2”
“v(*) – v(node1) + 1.2”
Table 21 lists the conditions for the -logic safe and violation keywords.
Table 21 -logic conditions
You can use cck_signal to scope to specific instances using the -inst,
-subckt, -except_inst, and -expect_subckt arguments. You can use
wildcards only with the -inst and-except_inst arguments. Wildcard
characters are not supported for the –subckt and –except_subckt
arguments.
The rule between –except_subckt and –except_inst arguments
accumulates in a logical OR. If you use the –except_subckt argument with
–except_inst, the checks exclude all the instances inside the named
subcircuit by the –except_subckt argument and all named instances by
–except_inst.
When you specify the –flush argument, on-the-fly auto-reporting is enabled.
Each cck_signal command for which auto-flushing is enabled writes its
output to a unique file. These files are named as prefix.ccksoa.label,
where prefix is the input netlist filename prefix, or the name specified with –o
on the command line. The label is the command label specified by –label
argument of that command. Each file is updated as violations are detected.
Examples
Example 7 checks two windows: the first is from 1– 2 us, and the second is
from 3 – 4 us.
xcmod0 1 2 3 log_ctrl
xcmod1 4 5 6 log_ctrl
xcmod2 7 8 9 log_ctrl
xcmod3 10 11 12 dummy_ctrl
xcmod4 … dummy_ctrl
…
xcmod15 … dummy_ctrl
.ends
.subckt log_ctrl a b c
ro vout c r=10
…
.ends
.subckt dummy_ctrl a b c
ro vout c r=10
evout vout 0 vcvs a b 0.5
.ends
■
xctrl_top.xcmod2.vout
■
xctrl_top.xcmod3.vout
xctrl_top a b c d …. ctrl_top
.subckt ctrl_top
xcmod0 1 2 3 log_ctrl
xcmod4 ….. dummy_ctrl
.ends
.subckt log_ctrl a b c
ro vout c r=10
…
.ends
.subckt dummy_ctrl a b c
*does not contain any noted vout
ro cout c r=10
evout cout 0 vcvs a b 0.5
.ends
In example 12, the wildcard in -inst scopes to xcmod0 and xcmod4, but the
vout signal does not exist in xcmod4, so CustomSim raises a zero scope
error.
cck_soa
Runs a safe operating area check.
Syntax
cck_soa -label lname [scope] [-numvd num_val]
constraint
[twindow] [-flush auto|auto2] [report]
[-numd num_val] [-filteralert 0|1]
[-portalert enable_value] [-limit value]
Argument Description
-label label_name Specifies the label name that appears in the report file,
which makes it easier to search the report. If on-the-fly
reporting is enabled, the label forms part of the report
filename.
Argument Description
-inst inst_pattern Scopes to the named instances. You can use wildcards in
{inst_pattern} instance names as specified by the CustomSim
set_wildcard_rule command. Wildcard behavior is
determined by the set_wildcard_rule command.
Argument Description
-numvd num_val Limits the number of violations per device that are
reported. The default is 1.
To print all violations, specify the all keyword. To turn off
violations, specify 0.
Argument Description
-numd num_value Limits the total number of violated devices reported. The
default is 300.To print all violated devices, specify the all
To turn off violation reporting, specify 0.
Argument Description
-limit value Specifies the hierarchy level down to which the scope is
applied. When you specify -subckt, the -limit is
relative to where the subcircuit is located in the hierarchy.
A value of 0 specifies the top level of the subcircuit. The
default is for all levels. This option is only effective when
scoping includes wildcard characters.
Description
This command checks primitive devices for safe operating area conditions.
Violations are reported to an output file, *.ccksoa.
cck_soa checks the following elements:
■ MOSFETs
■
BJTs
■
JFETs
■ Diodes
■
Resistors and capacitors
■
Verilog-A modules
The constraint expression is a required argument that specifies the check to be
performed. You can construct the expression with a single or group of
constraint functions (listed in Table 24,) with either arithmetic operators (+, -, *, /
) or logical operators (>, <, >=, <=, &&, ||, ==, !=). It can be a real-value
constraint or a logical constraint.
A real-value constraint expression only involves arithmetic operators. The
expression return value is a normal decimal real value. A violation is reported if
the normal decimal real value is outside a safe operating area specified by
-min and -max arguments. However, a logical constraint expression involves
logical operators. The expression evaluation return is either logical true (1) or
false (0). A logical expression that evaluates to logical false (0) is reported as a
violation.
Table 24 lists the keywords that are used for accessing common instance
conditions.
Table 24 Constraint Functions
W Width of a MOSFET
L Length of a MOSFET
Table 25 lists the mathematical functions that are supported to construct the
constraint expressions.
Table 25 Mathematical Functions
ceil(x) Returns the integer that is greater than or equal to the value of
x
floor(x) Returns the integer that is less than or equal to the value of x
You can use cck_soa to scope to specific instances using the -model,
-inst, -subckt, -except_inst, -expect_subckt, and -instparam
arguments. You can use wildcards only with the -inst and-except_inst
arguments. Wildcard characters are not supported for the –model, –subckt,
and –except_subckt arguments. If you use the –subckt argument with
the –inst argument or the –model argument, the named instances or named
models are local to the specified subcircuits.
The rule between –except_subckt and –except_inst arguments
accumulates in a logical OR. If you use the –except_subckt argument with
–except_inst, the checks exclude all instances inside the named subcircuit
by the –except_subckt argument and all the named instances by –
except_inst.
You can specify resistors, capacitors, and diodes for the
–model argument, by using the reserved keywords all_resistors,
all_capacitors, and all_diodes respectively. All resistors are checked if
the –model all_resistors argument is specified; all capacitors are
checked if the –model all_capacitors argument is specified; and all
diodes are checked if –model all_diodes argument is specified. The names
of the resistors, capacitors, and diodes models can also be specified in the in
the –model argument if only certain models are to be checked.
The Verilog-A module also is supported by specifying the names of the Verilog-
A module in the –model argument. It uses v (portname) to monitor the port
voltage of the Verilog-A module in the –check argument.
If you specify the –instparam argument, the check is limited to only MOS
devices whose width and length meet the instance parameter expression. You
can construct the instance parameter expression with a single or a group of
instance parameter functions with logical operators (>, <, >=, <=, &&, ||, ==, !=).
These two instance parameter functions can be used to create an instance
parameter expression.
Table 26 Instance Parameters
Example 13 checks for the voltage difference between drain and source of
MOSFET and JFET. A violation is reported if the voltage difference is out of
safe operating range of 0.3 V – 0.5 V.
Example 14 shows a logical expression. If vds > 0.3 and vds < 0.5, and
vgs > 0 and vgs < 0.5, the return value is logical true (1), and no violation
is reported. Otherwise a violation is reported.
Example 15 shows a logical violation. If vgs < 0, the return value is logical
true (1), and a violation is reported.
Example 16 applies the check only to the x1 instance of the mysub subcircuit.
All other instances are excluded from the check.
Example 17 applies the check to all MOS devices named, nch and having
length less than 0.1 um.
In example 18, you can exclude instances from scoping using the –
except_inst and –except_subckt arguments. When the –except_inst
argument and –except_subckt argument are used in the same command,
the checks exclude the instances specified by the –except_inst argument
and all the instances inside the subcircuit specified by –except_subckt. This
example applies the check to all the devices with model name nch, except for
those instances of x1.x2 instance and all the instances inside the dummy_cell
subcircuit.
Example 96 Verilog- A
cck_soa instparam –model mos_va –check { v(port1) > 10 }
cck_substrate
Checks for a forward-bias bulk condition on MOS devices.
Syntax
cck_substrate -label lname [scope] [-numv num] [twindow] [-
vth value] [-ith value] [-tth value][-flush auto] [report]
Argument Description
-label label_name Specifies the label name that appears in the report file,
which makes it easier to search the report. If on-the-fly
reporting is enabled, the label forms part of the report
filename.
-inst inst_pattern Scopes to the named instances. You can use wildcards in
{inst_pattern} instance names as specified by the CustomSim
set_wildcard_rule command. Wildcard behavior is
determined by the set_wildcard_rule command.
Argument Description
-numv num_val Limits the total number of violations reported. To print all
violations, specify the all keyword. To turn off violation
report checking, specify 0. The default is 300.
-vth vth Specifies that the bulk must be forward biased by the
specified amount before a violation is reported. The
default is 0.5 V.
-ith ith Specifies that the bulk current must exceed the specified
value for a violation to be reported. Note, if you want to
apply the bulk current as a substrate violation criteria, it is
recommended to set higher accuracy model level (such as
model level 6 or 7) in order to obtain an accurate bulk
current value. There is no default value for this control
option. If this option is not specified, the command will
disable the bulk current check.
Argument Description
-flush auto Reports the violations that are reported after the
completion of the simulation, if you do not specify this
argument. To enable Auto-flushing, specify the auto
keyword that specifies to report violations as they occur
on-the-fly in the simulation.
Description
The cck_substrate command checks for a forward-bias bulk condition on
MOS devices. A violation is reported when a MOSFET meets the following
conditions:
Example 26 checks only MOS instances of the model nchfor forward biased
bulk conditions. The check is performed from t = 0 to the end of the simulation.
cck_substrate –label bulk_check_550_600 –twindow 550n 600n
Example 26 checks all MOS instances for forward biased bulk conditions only
during the time window 550– 600 ns.
cck_toggle_count
Checks toggling activity on the specified nodes.
Syntax
cck_toggle_count -label lname [report_type] [scope]
[twindow] [-flush value%] [-report_most_toggle value]
[-report_zero_toggle value| all]
[-report_multi_toggle period [num_toggle]]
Argument Description
-label label_name Specifies the label name that appears in the report file,
which makes it easier to search the report. If on-the-fly
reporting is enabled, the label forms part of the report
filename.
-loth | -vol vlth Specifies the low voltage threshold if the detail report is
enabled. The default follows the value specified in the
set_logic_threshold command.
-hith | -voh vhth Specifies the high voltage threshold if the detail report is
enabled. The default follows the value specified in
set_logic_threshold command.
-node node_pattern Scopes to the named nodes. You can use wildcard
{node_pattern} characters in the node pattern. Wildcard behavior is
determined by the set_wildcard_rule command.
Argument Description
Description
You can use cck_toggle_count to scope to specific instances using the
-node, -subckt, -except_node, and -expect_subckt arguments. You
can use wildcards only with the -node and -except_node arguments.
Wildcard characters are not supported for the –subckt and
–except_subckt arguments. If you use the –subckt argument with the
–node argument, the named nodes are local to the specified subcircuits.
The rule between –except_subckt and –except_node arguments
accumulates in a logical OR. If you use the –except_subckt argument with
–except_node, the checks exclude all the nodes inside the named subcircuit
by the –except_subckt argument and all the named nodes by
the –except_node argument.
In Figure 10, the colored areas illustrate undershoots (red) and overshoots
(green). The time average values are obtained from dividing the colored areas
by time t.
The rise time is the time span of the green area; while the falling time is of the
red area. The green areas can be defined by two time points when the voltage
is rising, where:
■ t1 is the first moment when v(t)>vlth
■
t2 is the first moment when v(t)>vhth after t1
The red areas are also defined by two time points when the voltage is falling,
where:
■
t1 is the first moment when v(t)<vhth
■ t2 is the first moment when v(t)<vlth after t1
See Figure 11.
The probability of high is obtained by dividing the whole simulation time by the
total time of the green areas. If the denominator is replaced by the total time of
the red areas, then the probability of low is obtained. See Figure 12.
Multiple toggling means a node toggles multiple times within a given time
period. A time period starts at the point when the first toggle occurs and lasts
for a user-specified time. The next time period starts when the next toggle
occurs. See Figure 13.
Examples
Example 103
cck_toggle_count -label test1 -node x1.sout -flush 10%
Example 104
cck_toggle_count -label test2 -except_node n*
Example 28 checks the toggling activity on all nodes, except for nodes with
names that start with n. A basic report is printed at the end of the simulation.
Example 105
cck_toggle_count test4 -detail 1 -subckt dummy -node ain*
Example 29 checks the toggling activity on all nodes with names that start with
ain inside the dummy subcircuit. A detail report is generated at the end of the
simulation.
Example 106
cck_toggle_count test5 -report_most_toggle 2 -report_zero_toggle
3
Example 30 checks the toggling activity on all nodes. A basic report is printed
to an output file at the end of the simulation with additional information on the
two most toggling nodes and three zero toggling nodes.
cck_analog_pdown
Detects unwanted currents due to floating MOS gates.
Syntax
cck_analog_pdown [-label] lname when_to_check [path]
[mos_control] [bjt_control] [diode_control] [-numv
numv|all][-rule 0|1|2|3][-HiZgate 0|1][-HiZvdd value]
[-except_subckt <scoping expression>][-except_inst
<scoping expression>]
Argument Description
-label Specifies the label name that appears in the report file,
which makes it easier to search the report.
Argument Description
-twindow {tstart Instructs CustomSim to perform the check within the time
tstop} tstart window defined by tstart tstop {tstart tstop}. The
[tstop] tstart and tstop must come in pairs, except for the
final window where: if tstop is not specified, it is assumed
to be the end of the simulation. The final tstop can also
be the end or END keyword. You must use this option along
with -tstep to perform discrete checking. Continuous
checking is not supported in cck_analog_pdown.
-tstep tstep_val Performs a discrete check at the time points that are
integer multiples of tstep_val. You must use this option
with the -twindow option. If there is only a -tstep option
without a-twindow setting, CustomSim generates an
error message and stops the simulation.
-at at_time Performs a discrete check at the specified time. The usage
{at_time} of -tstep and -at is mutually exclusive. If you specify
both options, CustomSim generates an error message
and stops the simulation.
Argument Description
-model_dvt mname Specifies the pairs of model name and its delta vt
mdvt {mname mdvt} threshold value. cck_analog_pdown uses its related dvt
value of defined model to apply to the checking rule for a
MOS.
Argument Description
-HiZgate 0|1 Specifies how CSIM will use the voltage of HiZ gate node.
If you specify 0, based on the simulated circuit state, CSIM
will use the voltage of the HiZ gate node for MOSFET Ids
(MOSFET drain-to-source current) calculation to search
DC paths.
If you specify 1, CSIM will re-evaluate the Ids values of the
HiZ gate driven MOSFET based on the following device
terminal conditions:
■
For P-MOSFET: Gate terminal with 50% of its
maximum supply voltage, drain (or source) terminal
with its maximum supply voltage, and source (or drain)
with 50% of its maximum supply voltage.
■ For N-MOSFET: Gate terminal with 50% of its
maximum supply voltage, drain (or source) terminal
with zero, and source (or drain) with 50% of its
maximum supply voltage.
Note:
■
To control and adjust 50% of maximum
supply, use the -HiZvdd argument.
■
-HiZgate 1 is effective only when -rule
2|3 is set.
-HiZvdd <value> If you specify the desired supply value using the -HiZvdd,
then 50% of specified value is applied to the MOSFET
gate terminal, instead of the drain (or source) terminal for
the Ids calculation.
Only valid when -HiZgate 1 and -rule 2|3 are set. By
default, the 50% of the maximum supply value of the
MOSFET gate terminal will be applied to its gate terminal
for Ids calculation, however if user specifies desired supply
value through -HiZvdd option then the 50% of specified
value will be applied to the MOSFET gate terminal for Ids
calculation instead.
Description
Unwanted currents in standby mode are typically checked by simulating the
circuit in standby mode and observing the supply current. cck_excess_ipath
can help with this task. However, unwanted currents due to floating MOS gates
cannot be reliably predicted because the voltage values of floating nodes
cannot be easily simulated (vector-dependence, very large time constant, and
so on). Figure 14 illustrates a situation that typically leads to unwanted current
on silicon, which may not be observed in transient simulation. Whether or not
the unwanted current through M5 and M6 can be observed depends on the
voltage of n3, which cannot be easily simulated. In general, designers want to
avoid this type of situation.
The following keywords are used in the cck_analog_pdown output file:
■
gateIsHiZ for a MOS element whose gate is a Hi-Z node
■
baseIsHiZ for a BJT element whose base is a Hi-Z node
■
conducting for a MOS element whose gate is not a Hi-Z node
conducting elements.
Table 27 Conductuing criteria for set_zstate_option and check_node_zstate
Device Rule
NMOS Vgs > Vth (zstate_rule=1) || Ids > idsth (zstate_rule=2) || Vg >
VDD-0.1 (zstate_rule=3)
The default for idsth is 1e-8A. The default rule is 1 and 2.
PMOS Vgs < Vth (zstate_rule=1) || Ids > idsth (zstate_rule=2) || Vg <
0.1 (zstate_rule=3)
The default for idsth is 1e-8A. The default rule is 1 and 2.
Diode I(diode) > diode_ith || V(a,c) > diode_vth The default for
diode_ith is 1e-8A.
Device
Device
BJT(NPN) (Vbe >= Vbeth || Base node is a hz node) && v(from) >= v(to)
BJT(PNP) (Veb >= Vbeth || Base node is a hz node) && v(from) >= v(to)
Examples
In the following example, the cck_analog_pdown command applies power
down conducting rule (-rule 2) to the MOSFET and re-calculates IDs on the
HiZ gate MOSFET without changing the state of the HiZ node (-HiZgate 1):
cck_analog_pdown -label test -at 120n -from_node vddd -to_node
vssd -rule 2 -HiZgate 1 -except_subckt *ram1*
cck_resistive_path_report
Due to embedded CSIM RC optimization methods some resistors in RC
network are trimmed. This impacts the quality of the report generated by the
dynamic CCK path analysis commands, cck_analog_pdown and
cck_excess_ipath as the expected resistors along the reported path are not
available. The cck_resistive_path_report command is used to retain the original
resistors thereby ensuring that there is no impact on the performance.
Syntax
cck_resistive_path_report -level <value>
Argument Description
Description
In the following example,
cck_resistive_path_report -level 1
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 29 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 29 shows the signal file format.
Table 29 Signal File Format
Examples
Example 107
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 108
convert2out –i test.fsdb
Converts all the signals in the test.fsdb input file to a test.fsdb.out file.
Example 109
convert2out -i test.fsdb –s testsig1 –s testsig2 –s testsig3 –o
testout.out –s testsig4
Example 110
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 111
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 112
convert2out –i test.fsdb –o TEST/
Example 113
convert2out –i test.fsdb –o TEST/test.out
Example 114
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_dcpath 264
absolute voltage 285, 308 iprint_elem_info 266
iprint_exi 268
alias 252, 313, 316, 319, 328, 340, 345, 353
iprint_flash_cell 270
iprint_help 271
B iprint_node_info 272
back-annotation iprint_subckt 272
commands 9 iprint_time 273
controlling connectivity error responses 13, 17, iprint_tree 273
18, 21, 25, 29, 32, 35 iprobe_waveform_current 274
specifying a file for 40 iprobe_waveform_voltage 277
terminal name mapping 56, 58 iquit_sim 279
break points irelease_node_voltage 279
listing 258 ireport_node_cap 280
removing 257 ireport_operating_point 284
setting 288 isearch_node 285
iset_break_point 288
C iset_diagnostic_option 288
iset_env 289
case-sensitivity 1
iset_interactive_option 290, 291
commands
iset_save_state 292
alias 252, 313, 316, 319, 328, 340, 345, 353
iset_zstate_option 293
categories 8
load_ba_file 40
common definitions 4
load_vector_file 55
diagnostic 8
map_ba_terminal 56, 58
enable_ba_error_net 13, 17, 18, 21, 25, 29, 32,
35 netlist control 8
enable_print_statement 38 output control 9
enable_value 4 post-layout and back-annotation 9
icheck_node_zstate 252 probe_waveform_current 59
iclose_log 255 probe_waveform_logic 70
icontinue_sim 256 probe_waveform_voltage 75
idelete_break_point 257 report_power 95
iforce_node_voltage 258 set_ccap_level 127, 130, 132, 135, 148, 153,
ilist_break_point 258 154, 156, 206
ilist_force_node 259 set_dc_option 136
imatch_elem 260 set_duplicate_rule 141, 143
imatch_node 260 set_floating_node 144, 147, 158
including in netlist 2 set_meas_format 159, 160, 179, 181, 183
interactive mode 2 set_message_option 160
with Tcl 3 set_sample_point 212, 216
iopen_log 262 set_sim_level 218, 224, 225
iprint_connectivity 263 set_va_view 116, 118, 126, 228
367
Index
D
set_wildcard_rule 242 enable_ba_error_net 13, 17, 18, 21, 25, 29, 32,
speed control 9 35
use_mos_instpar 193, 195 enable_print_statement 38
using a script file 2 enable_value, possible values for 4
using Tcl mode 3 enhanced look-up table 193, 195
vector stimulus 9 exit 296
complexity vs. speed trade-off 218, 224, 225
connectivity errors, controlling 13, 17, 18, 21, 25,
29, 32, 35
H
connectivity information 263, 301 help for interactive commands 271, 306
coupling capacitor tolerance, setting 127, 130, hierarchical instance tree 273
132, 135, 148, 153, 154, 156, 206 HSPICE
.option statement 2
customer support xi
print statement 38
vector stimulus file 55
D
DC commands I
exit 296
iclose_log 297 icheck_node_zstate 252
icontinue_dc 297 iclose_log 255, 297
idelete_node_ic 297 icontinue_dc 297
imatch_elem 298 icontinue_sim 256
imatch_node 299 idelete_break_point 257
iopen_log 300 idelete_node_ic 297
iprint_connectivity 301 iforce_node_voltage 258
iprint_elem_info 302 ilist_break_point 258
iprint_exi 305 ilist_force_node 259
iprint_help 306 imatch_elem 260, 298
iprint_node_info 307
imatch_node 260, 299
isearch_node 308
inst_name 5
iset_node_ic 310
instance definition, using Verilog-A 116, 118, 126,
debugging mode 2
228
diagnostic commands 8
instance tree 273
dynamic CCK commands
cck_analog_pdown 353 instance_spec values 4
cck_excess_ipath 313 -inter flag 2
cck_post 316 interactive commands
cck_resistive_path_report 360 creating aliases for 252, 313, 316, 319, 328,
cck_signal 319 340, 345, 353
cck_soa 328 help 271, 306
cck_toggle_count 345 interactive debugging 2
interactive mode 2
closing the log file 255, 297
E log file 262, 300
Eldo with Tcl 3
.option statement 2 iopen_log 262, 300
print statement 38
iprint_connectivity 263, 301
element information 266, 302
iprint_dcpath 264
368
Index
L
369
Index
T
370