• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Blogs
  2. Analog/Custom Design
  3. Spectre Tech Tips: Spectre APS Save Overview - Part 1
Stefan Wuensche
Stefan Wuensche

Community Member

Blog Activity
Options
  • Subscribe by email
  • More
  • Cancel
CDNS - RequestDemo

Have a question? Need more information?

Contact Us
save statement
spectre aps
nestlvl
pwr=subckt
save=selected
save=lvlpub
save=allpub
currents=all
subcktprobelvl
Spectre
currents=selected
pwr=devices
Spectre Waveform Writing
pwr=total
pwr=all
save option

Spectre Tech Tips: Spectre APS Save Overview - Part 1

29 May 2019 • 6 minute read

 As an analog/mixed-signal designer, verification engineer, or CAD expert, you use Spectre® APS for analyzing your designs. Saving node voltages, element, and subcircuit port currents and power is an essential part when simulating your designs. Over the years, incremental additions to the Spectre waveform writing functionality have made it more complex. In SPECTRE17.1 ISR15, and SPECTRE18.1 ISR7 releases, we’ve consolidated the save options, eliminated obsolete options, and cleaned up the related documentation in spectre -h. This blog provides an overview of the essential Spectre save functionality.

 Spectre High-Level Simulation Options

Compared to other simulators, Spectre has a more complex way of saving waveforms because it combines the higher-level save options with the lower-level individual save statements. Spectre provides the following four high-level options for creating waveforms:

  • Node voltage waveforms – save option
    The recommended, most common, and the default value for the save option is selected, which enables you to define individual save statements for the waveforms to be printed. For example:
    opt1 options save=selected
    Other important values are allpub, which saves all node voltages, voltage source currents, inductor currents, and iprobe currents, and lvlpub, which in combination with the nestlvl=level option provides the same functionality as allpub, but is limited to the top hierarchy levels. For example:
    opt2 options save=allpub
    opt3 options save=lvlpub nestlvl=2 (prints waveforms for the top level and one level below)
  • Element current waveforms – currents option
    The recommended, most common, and the default value for the currents option is selected, which enables you to define individual current save statements for the waveforms to be printed. For example:
    opt4 options currents=selected
    Another important value is all, which saves the current waveforms for all terminals of all devices and elements. For example:
    opt5 options currents=all
  • Subcircuit port current waveforms – subcktprobelvl option
    The subcktprobelvl option defines the level down to which subcircuit terminal currents are saved. Value 1 represents the top level, value 2 represents the top level and one level below, and so on. For example:
    opt6 subcktprobelvl=2
  • Element, subcircuit, and total power waveforms – pwr option
    The pwr option enables you to print the power for all subcircuits (pwr=subckt), power for all elements and devices (pwr=devices), the total circuit power (pwr=total), or a combination of all  (power=all). Default is none.
    opt7 options pwr=total

Be cautious about saving a large number of waveforms, or all waveforms, because waveform calculation and writing may significantly slow down the simulation and increase the waveform file size. Especially, currents=all and  subcktprobelvl=n options significantly degrade Spectre simulation performance.

Individual Save Statement

 If save=selected and currents=selected options are enabled, which is also the default behavior of Spectre APS, you can define individual save statements, as shown below.

  •  Node voltage waveforms
    save I1.net5 – saves the voltage of net net5 inside subcircuit instance I1
    save vdd – saves the voltage of top-level net vdd
  • Element current waveforms
    save R1:1 – saves current flowing into terminal 1 of resistor instance R1
    save I1.M1:d – saves current flowing into terminal d of MOSFET instance I1.M1

 You can also define individual subcircuit terminal currents, or element/subcircuit power, as shown below.

  •  Subckt terminal current waveforms
    save I1:1 – current flowing into port 1 of subcircuit instance I1
    save I1.I2:vdd – current flowing into port vdd of subcircuit instance I1.I2

  • Element and subcircuit power waveforms
    save I1:pwr  – power consumed by subcircuit instance I1
    save I1.M1:pwr – power consumed by MOSFET instance I1.M1

Individual Save Statement with Wildcarding

Individual save statements support wildcarding in instance and net names. Wildcarding isn’t supported for device and subcircuit terminal names in the current save statements.  In the examples below, wildcard “*” matches any set of characters, including the delimiter “.”.

save *.n1 sigtype=node

save u_dig.u_clkgen*.n1 sigtype=node

save u_dig.*.n* sigtype=node

save u_dig.u_clkgen*:d sigtype=dev

save u_dig*:inh_VDD sigtype=subckt

save *:pwr sigtype=subckt

save u_di*:pwr sigtype=subckt

Although wildcard matching statements work fine without the sigtype statement, if you find any of your wildcard settings not working, you may add the sigtype statement to specify the type of signal – node voltage, device terminal current, subcircuit terminal current, or power to be saved.

Waveform-Related Information in the Spectre Logfile

Spectre reports the number of save statements defined in the netlist, as shown below.

Output statements:

               save 8    

If save with wildcarding is used, the Spectre logfile provides information about the number of waveforms that match each individual save statement with wildcard. For example, the statements discussed above create the following wildcard match summary.

 Wildcard match summary:

               save *.n1  nodes:         16069

               save u_dig.u_clkgen*.n1  nodes: 154  

               save u_dig.*.n*  nodes:   22129

               save u_dig.u_clkgen* d devices: 312  

               save u_dig* inh_VDD subcircuits: 35405

               save * pwr subcircuits:   35406

               save u_di* pwr subcircuits: 35405

After parsing, Spectre reports the number of waveforms that are saved. A large number of waveforms may degrade simulation performance. For such cases, Spectre also generates a warning, as shown below.

 Output and IC/nodeset summary:

                 save   355350(current)

                 save   130338(voltage)

WARNING (SPECTRE-294): Too many saved signals. Slow initialization is expected!

If you see the above warning, we recommend that you reduce the number waveforms being saved.

Summary

In this blog, we reviewed the following important options related to waveform writing: save, nestlvl, currents, subcktprobelvl, and pwr. You can find more information about these options  in the Output parameters section when using spectre -h options in SPECTRE17.1 ISR15, and SPECTRE18.1 ISR7 releases.

In the second part of the blog (to be published by June end), we'll discuss advanced save features, subcircuit and device terminal current calculation, and index versus name saving in global waveform writing statements.

We also learned that saving a large numbers of voltage and currents may degrade Spectre performance, and therefore, we have to be cautious about what we save.

Related Resources

  • Spectre Classic Simulator, Spectre Accelerated Parallel Simulator (APS), and Spectre Extensive Partitioning Simulator (XPS) User Guide

 You may also contact your Cadence support AE for guidance.

 For more information on Cadence products and services, visit www.cadence.com.

 About Spectre Tech Tips

Spectre Tech Tips is a blog series aimed at exploring the capabilities and potential of Spectre®. In addition to providing insight into the useful features and enhancements in Spectre, this series broadcasts the voice of different bloggers and experts, who share their knowledge and experience on all things related to Spectre. Enter your email address in the Subscriptions box and click SUBSCRIBE NOW to receive notifications about our latest Spectre Tech Tips posts.


CDNS - RequestDemo

Try Cadence Software for your next design!

Free Trials

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information