Anda di halaman 1dari 6

Virtuoso SpectreRF Simulation Option User Guide, Product Version 5.1.

41

B Using PSS Analysis Effectively


Periodic steady-state (PSS) analysis is a prerequisite for all periodic small-signal analyses such as the Periodic AC (PAC), Periodic Transfer Function (PXF), Periodic S-Parameter (PSP) and Periodic Noise (Pnoise) analyses provided by the SpectreRF circuit simulator. PSS provides a rich set of parameters to help you adapt it to your own applications. For most circuits, PSS converges with the default parameter values. However, for some difficult circuits, changing the values of some parameters is necessary to achieve convergence. This appendix describes methods you can use to remedy nonconvergence. This appendix also tells you how to improve convergence and efficiency using hierarchical PSS runs. This appendix is divided into the following three main sections: "General Convergence Aids" describes techniques you can use to resolve PSS nonconvergence with both driven and autonomous circuits "Convergence Aids for Oscillators" describes techniques you use only with autonomous circuits such as oscillators "Running PSS Analysis Hierarchically" describes how to run a sequence of PSS analyses to improve the convergence, efficiency, and quality of the PSS solution used in subsequent periodic small-signal analyses

General Convergence Aids


You can use the convergence aids described in this section to remedy PSS nonconvergence with driven as well as autonomous circuits. Autonomous circuits are usually harder to converge than driven circuits.

Adjusting the steadyratio and tstab Parameters


You can converge most difficult circuits by manipulating the steadyratio and tstab parameters. The steadyratio parameter guards against false convergence. However, in unusual situations, the default value for steadyratio might be too conservative (1.0e-3 is the default). The PSS convergence criteria (for voltage-valued variables) is roughly

To solve the periodic steady-state problem, SpectreRF simulation replaces the time derivatives in the one-period time interval with discrete differences. This turns the nonlinear, continuous differential equations into a set of discrete nonlinear equations that the SpectreRF circuit simulator can solve. The steadyratio parameter specifies the accuracy requirements for the discrete system. The discrete system might have its own solution (a steady state of the discrete difference equations) independent of what is happening in the continuous limit. In other words, the discrete system might be solved to zero tolerance. This happens frequently, particularly in driven circuits which is why setting a conservative steadyratio value generally works quite well. In some cases, however, the solution to zero tolerance might not occur oscillators seem to be especially problematic. Avoid setting the convergence tolerance too tightly. For example, if reltol = 1.0e-6 and steadyratio = 1.0e-3, the relative tolerance for solving the discrete system is approximately reltol steadyratio = 1.0e-9. This tolerance level approaches the limit of precision the simulator can provide. In this situation, loosen steadyratio to 1.0 or 0.1 and reduce the precautions against false convergence. Providing a larger value for tstab usually improves convergence. Occasionally, you must set tstab to a value equal to or greater than the time needed for the circuit to reach approximate steady state.

Additional Convergence Aids


Below is a list of additional suggestions that sometimes help convergence. Carefully evaluate and resolve any notice, warning, or error messages.

While trapezoidal rule ringing is simply annoying in transient analysis, in PSS analysis it can cause the shooting iteration to stall before convergence is achieved. You can remedy this problem by changing the PSS options method parameter from traponly to either trap, gear2, or gear2only. Help convergence by increasing the maxperiods parameter to increase the maximum iterations for shooting method to use. Sometimes a PSS analysis might simply need more than the default number of iterations to converge. However, in some situations convergence does not occur regardless of the number of iterations. In this case, increasing the iteration limit simply causes the simulation to take longer to fail. Decrease the maximum allowed time step to help convergence. To adjust the time step, either decrease the maxstep parameter or increase the maxacfreq parameter. Use the errpreset parameter properly. Use liberal for digital circuits; use moderate for typical analog circuits; use conservative for sensitive analog circuits (for example, charge storage circuits).

Convergence Aids for Oscillators


Oscillator circuits are usually harder to converge than their driven counterparts. In addition to manipulating the steadyratio parameter, as discussed in "General Convergence Aids", set the tstab parameter large enough so that the oscillation amplitude increases almost to its steady-state value and most other transients die out. You can estimate the required value of tstab by performing a transient analysis, or in the PSS analysis itself, set saveinit = yes. For some circuits, the oscillation might die out before the oscillator builds up a final value, or the circuit might oscillate temporarily but then return to a zero state. Setting saveinit = yes lets you view the initial transient waveforms to identify the problem. This problem might be due to difficulty in starting the oscillator, or it might be caused by artificial numerical losses introduced by very large time steps. The latter is particularly likely if you set the method parameter to gear2only, gear2, or euler. In this case, you might try using method = traponly. If the problem persists, force the simulator to use smaller step sizes by decreasing reltol or by setting the maxstep parameter. With autonomous PSS analysis, exclusive use of the trapezoidal rule can lead to ringing that spans the length of the oscillation period and causes convergence problems. When you set method = trap, the SpectreRF circuit simulator occasionally takes a backward Euler step, which acts to damp the ringing. The gear2 and gear2only methods use Gears backward difference method, which is not subject to ringing. Each of these alternatives to traponly avoids trapezoidal rule ringing and the attendant convergence problems at the expense of adding a small amount of artificial numerical damping. This damping slightly reduces the computed Q of the oscillator. Be sure that the method you choose to start your oscillator is effective. It must kick the

oscillator hard enough to start the oscillation and make the oscillator respond with a signal level that is between 25 and 100 percent of the expected final level. Avoid kicking the oscillator so hard that it responds in an unnecessarily nonlinear fashion. Also try to avoid exciting response modes in the circuit that are unrelated to the oscillation, especially those associated with long time constants. Try to improve your estimate of the period. The simulator uses your estimate of the period to determine the length of the initial transient analysis interval. This interval is used to measure the oscillation period. If you specify a period that is too short, the estimate of the oscillation period is not accurate, and the PSS analysis might fail. Overestimation of the period is not a serious problem because the only disadvantage is a longer initial transient interval. However, significant overestimation can result in an excessively long simulation time. Sometimes the analysis might need more than the default number of iterations (maxperiods = 50) to converge. This is more likely to occur with high-Q circuits. You can increase the maximum iterations for shooting methods using the maxperiods parameter.

Running PSS Analysis Hierarchically


For most circuits, a single PSS analysis run is sufficient to find the periodic steady-state solution. However, for some difficult circuits it is preferable, or even necessary, to run PSS analysis multiple times to find the steady-state solution with the parameter settings you want (for example, with a tight reltol). The biggest obstacle to PSS convergence is poorly chosen initial conditions. The backbone of PSS analysis is Newtons method. Theoretically, when the initial guess is close enough to the solution and the problem is not ill-conditioned, Newtons method is guaranteed to converge because of its contraction property. Consequently, it is very important to provide the best initial conditions that you can to ensure rapid convergence. To run PSS hierarchically, you 1. Start by running a minimally accurate PSS analysis to obtain, with high likelihood, a coarse-grid solution that converges in an acceptably short simulation time. 2. Use the coarse-grid solution as the initial condition for another PSS run to achieve a fine-grid solution. This practice significantly increases the chance that the fine-grid PSS analysis will converge promptly. As you might expect, it is also more efficient. Running PSS hierarchically often reduces the total simulation time needed to find a periodic steady-state solution because it reduces the number of time-consuming fine-grid PSS iterations. The writefinal and readic parameters serve as threads between hierarchical PSS runs.

When you set writefinal to SomeFileName, both the associated time and period information (for autonomous PSS) and the final transient solution at PSS steady-state are saved to the file, SomeFileName. When you run another similar PSS analysis and you set readic to SomeFileName and skipdc to yes, setting skipdc to yes forces the simulator to use the initial conditions in the file SomeFileName as the initial transient solution for the first PSS iteration. For example, if you want to find the periodic steady-state solution with a tight reltol such as 1.0e-5, you might Run an initial PSS analysis with a looser tolerance; for example, reltol = 1.0e-3 Use the writefinal parameter in the initial PSS analysis to write out the final results to a file. A PSS analysis runs faster with the looser tolerance because fewer time points are generated during each transient integration performed during each PSS iteration. Run a second PSS analysis with the tighter tolerance, reltol = 1.0e-5 Use the readic and skipdc in the second PSS analysis to read in the final results of the first PSS analysis as the initial conditions. After the second PSS analysis, you can run small-signal analyses such as PAC.
set1 pss1 set2 pss2 ... set pss set pss pac reltol=1.0E-3 ... writefinal="SomeFile" reltol=1.0E-5 ... readic="SomeFile" skipdc=yes ... ...

Always use a sequence of PSS runs when a you need a tight tolerance PSS solution. If necessary, you can run more than two PSS analyses in the hierarchical process. You choose the tolerance sequence for the continuation. The multiple PSS approach usually produces a better periodic steady-state solution for subsequent small-signal analyses. The above procedure is often called a continuation on the simulation parameter reltol. However, you can use continuation with many other simulation parameters. For example, in order to achieve PSS convergence at a high input power that causes nonconvergence, you might gradually increase the input power at an RF port. Return to top of page

For support, see http://www.cadence.com/support or try Cadences SourceLink service. Copyright 2004, Cadence Design Systems, Inc.

All rights reserved. Legal notices and trademark attributions

Anda mungkin juga menyukai