The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl Simulators >> RF Simulators >> Spectre/SpectreRF Simulation Accuracy https://designers-guide.org/forum/YaBB.pl?num=1173722684 Message started by schehrazi on Mar 12th, 2007, 11:04am |
Title: Spectre/SpectreRF Simulation Accuracy Post by schehrazi on 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. |
Title: Re: Spectre/SpectreRF Simulation Accuracy Post by tawna on 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. :-) |
The Designer's Guide Community Forum » Powered by YaBB 2.2.2! YaBB © 2000-2008. All Rights Reserved. |