Uploaded by Keming Fan

09 Spectre Tech Tips Optimizing Spectre APS Performance

advertisement
6/29/2020
Spectre Tech Tips: Optimizing Spectre APS Performance - Custom IC Design - Cadence Blogs - Cadence Community
PRODUCTS 

Login
New User
Spectre Tech Tips: Optimizing Spectre APS
Performance
SOLUTIONS

SUPPORT
As an analog/mixed-signal designer, verification engineer, or CAD expert, you use
Spectre® APS for analyzing your designs. Do you sometimes wonder if it were possible to optimize Spectre APS further for accuracy or performance? If yes, then this
blog is for you. In this blog, you'll get to know how you can optimize Spectre APS performance for analog and mixed-signal designs using some important options. You'll
also understand how you can address some typical setup problems that cause performance issues and how to use some of the advanced methods to optimize simulation performance.
COMPANY
Pre-layout Simulation Accuracy/Performance Trade-Off
For pre-layout simulation, you can use the following two options to adjust accuracy
and performance:
The
option with values
,
, and
, defines the
solver tolerances. While
is the most accurate,
provides the
highest performance. The
option can be specified in the netlist, or at
the command line with and (i.e.
) options.
The command-line option provides performance optimization for each
setting. It typically provides 1.5-2x performance gain over the same simulation with , with no or minor degradation in accuracy.
When running the simulation on a new analog/mixed-signal design, we recommended
that you start with the
setting and use the default values for all other
solver options. If Spectre APS accuracy isnʼt sufficient, you can improve the accuracy
incrementally by moving to
,
, and
till
errpreset
conservative moderate
conservative
liberal
liberal
errpreset
+aps
++aps
++aps=moderate
++aps
er-
rpreset
+aps
++aps=moderate
+aps=moderate ++aps=conservative
https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-optimizing-spectre-aps-performance
+aps=conservative
1/12
6/29/2020
Spectre Tech Tips: Optimizing Spectre APS Performance - Custom IC Design - Cadence Blogs - Cadence Community
the required accuracy is achieved. If the
run provides good accuracy,
and you want more performance, move to
and
to improve
the performance incrementally while ensuring that the highest performance setting
still provides sufficient accuracy.
++aps=moderate
+aps=liberal
++aps=liberal
You can also set the
and options in the High-Performance Simulation
Options form in Virtuoso® ADE, as shown below.
errpreset
++aps
Use the command-line option to enable multithreading, which provides additional
Spectre APS performance gains over a single-threaded simulation run ( ). For
small-to-medium sized designs, 4 core simulations ( ) provide the best performance, while for large and post-layout designs, 8 ( ) or 16 ( ) core simulations are recommended. By default, Spectre APS uses 8 cores (if available on the machine), however, it reduces the number of cores based on the design size. You can
use the
command-line option to identify the number of cores recommended for a given design without running the actual simulation. This information is
provided in the Pre-Simulation Summary section of the Spectre log file, as shown
below.
+mt
-mt
+mt=4
+mt=8
+mt=16
+query=mtinfo
~~~~~~~~~~~~~~~~~~~~~~
Pre-Simulation Summary
~~~~~~~~~~~~~~~~~~~~~~
- (APS) Multi-threading. The recommended number of threads is 16, consider adding
+mt=16 on command line.
~~~~~~~~~~~~~~~~~~~~~~
https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-optimizing-spectre-aps-performance
2/12
6/29/2020
Spectre Tech Tips: Optimizing Spectre APS Performance - Custom IC Design - Cadence Blogs - Cadence Community
The number of threads can also be defined in the High-Performance Simulation Options form in Virtuoso ADE. The Auto selection uses the default Spectre multithreading behavior. When running a multithreaded simulation on a compute farm, set
#Threads to lsf to allow LSF to allocate the cores.
Spectre reports the number of threads used in the log file with the following message.
Multithreading Enabled: 16 threads in the system with 36 available processors.
Post-layout Simulation Accuracy/Performance Trade-Off
While
, , and multithreading also apply to post-layout designs, using the
option is the key for achieving good Spectre APS post-layout simulation
performance. The
option enables optimized simulation technology to calculate the DC operating point for large designs, performs RC reduction including coupling cap handling, and deploys enhanced matrix solving for RC-dominated designs.
For most analog/mixed signal designs, the
(high precision analog) setting provides the best performance and accuracy trade-off because it uses conservative RC reduction. For very sensitive designs and extreme accuracy measurements,
you can use the
(ultra precision analog) setting, which disables RC reduction, however, it still takes advantage of all other Spectre APS post-layout technologies. For high performance requirements in functional verification,
may be used, which uses more aggressive RC reduction.
errpreset ++aps
+postlayout
+postlayout
+postlayout=hpa
+postlayout=upa
+postlayout
The post-layout settings can also be defined in the High-Performance Simulation Options form in the Virtuoso ADE. The
setting is called Default in Virtuoso
ADE.
+postlayout
https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-optimizing-spectre-aps-performance
3/12
6/29/2020
Spectre Tech Tips: Optimizing Spectre APS Performance - Custom IC Design - Cadence Blogs - Cadence Community
When RC reduction is enabled with
or
is reported in the Spectre log file, as shown below.
+postlayout
, the reduction rate
+postlayout=hpa
Parasitics Reduction Enabled.
(Resistors reduced by 80.53% Capacitors reduced by 88.36%, 71.97% of capacitors are
coupling after RC reduction).
High Voltage Applications
High voltage applications are challenging for circuit simulation because with
in
and
mode, voltage references are used globally
over all signals. A maximum voltage of 10V from a high-voltage domain may impact
the simulation accuracy of the neighboring 1V voltage domain. This problem may also
be visible in non-high voltage applications where Verilog-A blocks create large voltage/current values artificially, or in designs with dangling nodes carrying large voltages. The related scenarios can be identified by checking the maximum value quantities in the Spectre log file:
relref=sigglobal
moderate
liberal
Maximum value achieved for any signal of each quantity:
V: V(I4.net01) = 25.93 V
I: I(V1:p) = 103 mA
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Post-Transient Simulation Summary
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
The circuit contains signals of the voltage > 10V, consider to set highvolt-
age=yes to get better accuracy and convergence ability.
If a high voltage scenario is identified, it is recommended to use the
option. This option introduces voltage binning for different voltage domains (
), excludes Verilog-A terminals from convergence checking (default since
highvoltage=yes
bin_rel-
ref=yes
https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-optimizing-spectre-aps-performance
4/12
6/29/2020
Spectre Tech Tips: Optimizing Spectre APS Performance - Custom IC Design - Cadence Blogs - Cadence Community
Spectre 17.1 ISR10), excludes dangling node voltages from quantity checking (default
since Spectre 17.1 ISR4), and overcomes the high-voltage related challenges.
The
option can also be set in the Main tab of the Simulator Options form,
as shown below.
highvoltage
Typical Spectre APS Setup Issues
While debugging customer cases for performance and accuracy issues, weʼve noticed that many such problems are due to an incorrect Spectre APS set up. These
problems significantly slow down the simulation or degrade simulation accuracy. They
can be addressed easily by understanding their impact on the simulation and taking
the corrective action. Some of the problems and their solutions are listed below.
Simulator settings from previous simulations not being appropriate for the
current design
Too tight
settings (for example,
) cause many Spectre APS
performance issues. Since Spectre APS is optimized for accuracy, using the
default value for
is sufficient for most designs.
Unreasonable values used for and may cause Spectre APS accuracy issues, which can be addressed by setting their values to default.
It is recommended to use the default values for ,
,
,
, , and . If tuning is needed, then for most cases, it should be
sufficient to change
and / . The following figure shows the
default Spectre tolerance values in Virtuoso ADE.
reltol
reltol=1e-5
reltol
gmin
cmin
reltol vabstol iabstol
method gmin
cmin
errpreset
+aps ++aps
https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-optimizing-spectre-aps-performance
5/12
6/29/2020
Spectre Tech Tips: Optimizing Spectre APS Performance - Custom IC Design - Cadence Blogs - Cadence Community
Note that there may be high-precision designs, or simulation/measurement requirements, that need custom tolerances. In addition, you might encounter convergence challenges for which you require special / settings. It is fine to
tune these settings if you are not able to achieve what you need with the recommended
settings with default tolerances.
Simulating post-layout designs without setting the
option
Many users assume that Spectre APS does post-layout optimization and RC
reduction by default. However, Spectre APS, by default, does not enable any
post-layout optimization/reduction, and may therefore be extremely slow on
RC dominated post-layout designs. Check the Post-layout Simulation Accuracy/Performance Trade-Off section for proper post-layout settings.
Too many node voltages, device, or subckt terminal currents saved
Saving large numbers of waveforms, especially current waveforms, degrades
Spectre APS performance significantly. Therefore, you should save only the
waveforms you need and avoid saving everything (
,
,
), if not required.
The Spectre log file provides information about how many waveforms are created and prints a warning if performance degradation is expected.
gmin cmin
errpreset
+postlayout
save=all currents=all sub-
cktprovelvl=10
Output and IC/nodeset summary:
save 355350(current)
save 130338(voltage)
WARNING (SPECTRE-294): Too many saved signals. Slow initialization is
expected!
Features not needed being enabled
Spectre provides some powerful features, such as asserts for device voltage
and current checking, info for design information printing, and design checks
for analyzing design problems like high impedance nodes or leakage paths.
These features, although important, degrade Spectre APS performance.
https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-optimizing-spectre-aps-performance
6/12
6/29/2020
Spectre Tech Tips: Optimizing Spectre APS Performance - Custom IC Design - Cadence Blogs - Cadence Community
Therefore, if you do not require these features you should disable them for
maximum performance gain. The enabled features are listed in the Spectre log
file, as shown below.
Analysis and control statement inventory:
info 6
Design checks inventory:
dyn_highz 3
dyn_dcpath 1
static_voltdomain 1
assert 2139
Maxstep limiting simulation time steps
Sometimes,
is used to increase simulation accuracy or to improve periodic measurement (i.e. FFT) precision. It is recommended to use
to
tune the simulation accuracy. If you want to enforce time steps at periodic
measurement points, use
instead of
.
Extremely small rise and fall times
Extremely small rise and fall times in Spectre source elements, or in Verilog-A
modules, may cause Spectre time step rejections and significantly degrade
Spectre APS performance. Therefore, it is recommended to use similar rise
and fall times, as the circuit being simulated.
Verilog-A behavioral modelling issues
While Verilog-A behavioral modelling provides great flexibility for writing behavioral models, it may significantly degrade Spectre APS simulation performance, if written inappropriately. Typical problems include initial calculations
being performed at each time step, transition statements like
/ /
limiting and rejecting time steps, transition filter functions missing, and using resistance instead of conductance equations.
maxstep
errpreset
strobeperiod
maxstep
cross above boundstep
https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-optimizing-spectre-aps-performance
7/12
6/29/2020
Spectre Tech Tips: Optimizing Spectre APS Performance - Custom IC Design - Cadence Blogs - Cadence Community
Therefore, it is highly recommended to run the Spectre AHDL linter (
) utility on any newly-written Verilog-A model, and address any
reported modelling issue. The AHDL linter utility can also be enabled in the
Miscellaneous tab of the Simulator Options form in Virtuoso ADE, as shown
below.
-
ahdllint=warn
Using an older version of Spectre
With every release, Spectre APS is enhanced for better performance. As a result, when you use an older version of Spectre, you miss out the performance
enhancements that have been made in the latest version. Therefore, we recommend that you use the latest Spectre release for your designs.
Hardware issues
Spectre APS performance is impacted when a machine is heavily overloaded,
if there are network performance issues, or if sufficient memory isn't available.
Insufficient memory can lead to swapping and slow down the simulation. You
can check the available memory in the header of the Spectre log file. Machine
loading and network communication problems can be observed by checking
the CPU load or the utilization reported in the Spectre log file. A CPU load
close to 100% could point to a heavily overloaded machine. A utilization below
90% for a single core simulation, below 150% for a 4 core job, or a utilization
below 300% for a 8 core simulation may point to an overloaded machine, or
network problems.
User: stefanw
Memory
Host: lnx-stefanw
available: 10.1099 GB
HostID: CD0A11B8
PID: 11716
physical: 16.6440 GB
During simulation, the CPU load for active processors is :
Spectre
0 (99.9 %)
1 (99.7 %)
https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-optimizing-spectre-aps-performance
2 (99.7 %)
3 (99.7 %)
8/12
6/29/2020
Spectre Tech Tips: Optimizing Spectre APS Performance - Custom IC Design - Cadence Blogs - Cadence Community
4 (99.7 %)
5 (99.7 %)
Time used: CPU = 10.8 ks (2h 59m 57s), elapsed = 18 ks (4h 59m 49s), util. =
60%.
Tips for Further Performance Improvements
Following are some tips that will enable you to enhance the performance of Spectre
APS further after you have already followed the steps on how to resolve any setup
issue.
Using performance optimized DC
For designs that take a long time in calculating the operating point, use the
command-line option which provides a performance-optimized DC calculation. The option may cause minor degradation in the accuracy of the DC
solution and is therefore not a solution for designs that are highly sensitive to
an accurate DC solution.
The
option can also be set in the Environment Options form in Virtuoso
ADE, as shown below.
+dcopt
+dcopt
Changing simulation settings dynamically
The dynamic parameter feature enables you to define different solver settings
for different time windows. If your design has different accuracy requirements
for different time windows, you can use the dynamic parameters to speed up
the overall simulation.
Dynamic parameters can be defined by selecting transient analysis (tran) in
the Choosing Analyses form in Virtuoso ADE, as shown below.
https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-optimizing-spectre-aps-performance
9/12
6/29/2020
Spectre Tech Tips: Optimizing Spectre APS Performance - Custom IC Design - Cadence Blogs - Cadence Community
Using the save/recover simulation state
If multiple simulations have the same start-up sequence, you can use the
and
options to run the start-up sequence once, save the simulation state at the end of the start-up sequence, and then restart all other
simulations based on the saved state.
The
value or the
file can be set in the State File tab of the
Transient Options form in Virtuoso ADE, as shown below.
savetime
savetime
recover
recover
Using Spectre XPS MS
If some portions of the design are digital, and you can afford some accuracy
degradation on the digital blocks, you can improve the simulation performance
by using Spectre XPS MS. Spectre XPS MS shares the use model with Spectre
APS and enhances the performance by using the Spectre XPS FastSPICE tool
for the digital portion of the design. The accuracy of the analog portion is still
maintained by using the Spectre APS engine. Spectre XPS MS requires the
power supplies of the digital blocks to be ideal voltage sources, otherwise,
digital detection will require setting up voltage generator nodes and voltages.
Spectre XPS MS can also be enabled in the High-Performance Simulation Options form in Virtuoso ADE, as shown below.
Debugging Spectre APS Performance Issues
https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-optimizing-spectre-aps-performance
10/12
6/29/2020
Spectre Tech Tips: Optimizing Spectre APS Performance - Custom IC Design - Cadence Blogs - Cadence Community
By utilizing the tips given above, you can address a majority of your Spectre APS performance issues. In addition, Spectre APS provides a simulation diagnostic mode,
which can be enabled by using the
command-line option, or the
netlist option. The diagnostic mode analyzes the simulation statistics over the transient simulation time and reports detailed information on which
signals/devices/elements cause convergence problems, time step reductions/rejections, and slow down simulation performance.
The diagnostics mode can also be enabled in the Check tab of the Simulator Options
form in Virtuoso ADE, as shown below.
+diagnose
+diagnose=detailed
If you run into Spectre APS performance issues, which you cannot resolve, it is recommended that you run the simulation using the
command-line option and
discuss the diagnostics report with your Cadence support AE.
+diagnose
Related Resources
Spectre Classic Simulator, Spectre Accelerated Parallel Simulator (APS), and
Spectre Extensive Partitioning Simulator (XPS) User Guide
Virtuoso ADE Explorer User Guide
Getting the Most Out Of Spectre APS
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
https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-optimizing-spectre-aps-performance
11/12
6/29/2020
Spectre Tech Tips: Optimizing Spectre APS Performance - Custom IC Design - Cadence Blogs - Cadence Community
share their knowledge and experience on all things related to Spectre. Enter your
email address in the Subscriptions box at the top of the page and click SUBSCRIBE
NOW to receive notifications about our latest Spectre Tech Tips posts.
Tags:

Virtuosity: What's New in Run Plan – Part III Virtuosity: Introducing the Pin Tool

Related
Posts
•
Spectre Xplored - The New Spectre X Simulator
• Spectre Tech Tips: Spectre Assert and Design Check Overview
• Spectre Tech Tips: Spectre Local Options
Connect with us




© 2020 Cadence Design Systems, Inc. All Rights Reserved.
Terms of Use
|
Privacy Policy
|
US Trademarks
|
Do Not Sell My Personal Information
https://community.cadence.com/cadence_blogs_8/b/cic/posts/spectre-optimizing-spectre-aps-performance
12/12
Download