The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
May 9th, 2024, 1:34am
Pages: 1
Send Topic Print
Spectre/SpectreRF Simulation Accuracy (Read 851 times)
schehrazi
Community Member
***
Offline



Posts: 45
University of CA, LA
Spectre/SpectreRF Simulation Accuracy
Mar 12th, 2007, 11:04am
 
Do you know a reference which explains the simulation accuracy parameters of SpectreRF and Spectre? I need some explanation on what the accuracy parameter are and how they interact with each other.

My specific problem is measuring IM2 tones of a circuit. IM2 tone does not change with the input power linearly and I am guessing that it is because it has hit th numerical noise floor.

I appreciate your help.
Back to top
 
 
View Profile   IP Logged
Tawna Wilsey
Junior Member
**
Offline



Posts: 11
Snohomish, WA
Re: Spectre/SpectreRF Simulation Accuracy
Reply #1 - Apr 11th, 2007, 2:51pm
 
Regarding accuracy with spectreRF and spectre....I will address spectreRF specifically.  

Typically we suggest setting errpreset to liberal, moderate, or conservative and leaving the rest of the options (global options and PSS/QPSS options) alone.  

However, there are circumstances where this does not work - perhaps you need higher accuracy.  Or the moderate options are not accurate enough and with conservative you are having convergence issues.  In situations like that, you may want to try the following settings:

pss choosing analysis form:
errpreset=moderate

global options:
reltol=Depends on your circuit.  Some suggestions:
   1dBCP: 1e-4
   IP3: 1e-5  (user for circuits where you need a small spectral
               component to be calculated.)
   oscillators: 1e-6
   If you are having trouble with convergence, you may want to try
   setting reltol to a larger value.
vabstol=3e-8
iabstol=1e-12 (leave at default)

pss options:
steadyratio=1e-3
highorder=no (mildly nonlinear ckt, use yes.  Strongly nonlinear ckt, use no)
method=gear2only
tstabmethod=gear2only
relref=sigglobal  (allglobal, the default, can cause the timestep to collapse
resulting in very long simulation times)
steadyratio=1e-3


Convergence is met if the maximum difference in voltage between the
beginning and ending of the shooting interval (at every voltage node
and branch current) in the circuit meets or is less than:

maxDeltaV <= (reltol*Voltage+vabstol)*lteratio*steadyratio
maxDeltaI <= (reltol*Current+iabstol)*lteratio*steadyratio


A brief explanation of the options:

reltol
-------
Relative convergence criterion.
One of the Spectre simulator's convergence criteria is that the
difference between solutions in the last two iterations for a given
time must be sufficiently small. With reltol, you set the maximum
relative tolerance for values computed in the last two iterations.
The default for reltol is 0.001.

Note that if you decrease reltol by an order of magnitude, you roughly
double the amount of timepoints taken in the shooting interval.  Similarly,
if you increase reltol by an order of magnitude, you roughly halve the
number of timepoints taken in the shooting interval.  Note that spectre
will always take at least 200 timepoints in the shooting interval, regardless
of how you set reltol.

vabstol and iabstol
-------------------
Voltage and current absolute tolerance convergence criterion.
These parameters set absolute, as opposed to relative, tolerances for
differences in the computed values of voltages and currents in the last
two iterations. These parameter values are added to the tolerances
specified by reltol. They let the Spectre simulator converge when
the differences accepted by reltol approach zero.

Method
------
Euler: Euler is gear1. Backward Euler method is used exclusively.  Backward
Euler heavily numerically damps the circuit.  Don't use it.

Trap: Uses a mixture of trapezoidal and backward euler. Euler is
used at the first timepoint after each breakpoint, and when a longer
timestep would result when euler is used as the integration method.
Trap is electrically neutral.

Traponly: Uses trapezoidal rule almost exclusively.

Gear2: Uses a mixture of gear2 and backward euler. Euler is used at the
first timepoint after a breakpoint, and when a longer timestep would
result when euler is used as the integration method. Otherwise,
gear2 is used. Gear2 slightly numerically damps. This effect nearly
disappears if the timestep is small in areas of curvature.

Gear2only: Typically you want to use this.  Gear2only uses a mixture
of gear2 and backward-difference methods.

"Electrically neutral" means that the integration method doesn't emphasize
or minimize any ringing behavior that a circuit might have.  Gear2
slightly minimizes ringing behavior, (it damps the circuit) but if the
timestep is small in areas of curvature in the waveform, the effect
nearly disappears.  Euler (Gear-1) damps very heavily, and the effect
will be seen even if the timestep is kept small.

lteratio
--------
Local truncation error.  Sets the limit on numerical integration error
in the simulator.  Default derived from errpreset.

steadyratio
-----------
Multiplier on the amount of allowable mismatch (allows more or less deltaV
or deltaI).  The default depends on errpreset.

relref
------
pointlocal - most accurate but horribly extends simulation time.
Compares the relative errors in quantities at each node to that node alone.
alllocal - this is the default for errpreset=moderate, but you can run into
problems because the timestep collapses and it takes a long time to simulate.
Compares the relative errors at each node to the largest values found for
that node alone for all past time.
sigglobal - typically use this.
Compares relative errors in each of the circuit signals to the maximum for all
signals at any previous point in time.
allglobal - least accurate.  Don't use this.
Same as `relref=sigglobal' except that it also compares the residues
(KCL error) for each node to the maximum of that node's past history.

highorder
----------
Perform a high-order refinement after low-order convergence.
The Multi-Interval Chebyshev polynomial spectral algorithm will be used.
Set to no on strongly nonlinear circuits (if set to yes for strongly
nonlinear circuits, the simulation time will increase considerably).  
Set to yes for mildly nonlinear ckts

As with any suggestion...your mileage may vary. Smiley
Back to top
 
 

Tawna Wilsey
View Profile tawnaWilsey   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.