The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> Circuit Simulators >> Convergence Problem In SpectreRF
https://designers-guide.org/forum/YaBB.pl?num=1073463312

Message started by Edward on Jan 7th, 2004, 12:15am

Title: Convergence Problem In SpectreRF
Post by Edward on Jan 7th, 2004, 12:15am

Hello everyone,

are there any tips how to solve the convergence problem in SpectreRF?

Title: Re: Convergence Problem In SpectreRF
Post by YFUSA on Jan 7th, 2004, 6:36am

You can try a different beat frequency.
Sometimes, changing a few MHz helps convergence.

You can also change the analysis tolerance.
The use of gear2only method is generally recommended.
If it is an oscillator, the use of tstab is necessary to make sure the oscillation is stable.

Title: Re: Convergence Problem In SpectreRF
Post by August West on Jan 7th, 2004, 11:03am

When having convergence difficulties it is best to start with all the tolerance settings set to their default values. Often times people set the tolerances so tight that the simulator cannot converge. Be aware that the RF analyses are more likely to fail to converge due to overly tight tolerances than the transient or dc analyses.

Then, you should increase tstab. This is true for all circuits. This causes an initial transient analysis to be run. The idea is to help the simulator converge by getting it closer to the steady-state solution. In the worst case, you might need to set tstab so that the transient runs until the initial transient is largely past and the circuit is basically in steady state, but this is rare. If you have set tstab to simulate through the entire initial transient and you are sure the circuit is in steady-state at the end of the tstab interval and you are still not converging, something is wrong. Either your tolerances are too tight (did you skip the first step?), your circuit does not have a periodic or quasiperiodic response (perhaps due to a spurious oscillation), the simulator is configured improperly (perhaps because you are simulating a frequency divider and you gave the wrong fundamental frequency), or there is a bug in the simulator. Concerning this last possibility, remember that SpectreRF has been out for a long time and is pretty robust. You should exhaust the other possibilities before seriously considering this one.

Trapezoidal rule ringing can act as a spurious oscillation that prevents convergence. You can often see this ringing by performing a transient analysis and then inspecting the supply currents. If you see point-to-point ringing then your circuit is exhibiting trapezoidal rule ringing. In this case, changing the integration method to method=gear2only is recommended.

One thing to keep an eye on is the convergence norm. It is printed out on every iteration. It generally starts at some large value and progresses to a value less than one (the convergence norm measures the distance from convergence; when the value drops below one the tolerances are satisfied and convergence is achieved). It might start by bouncing around wildly, but as it approaches one it should begin to decrease monotonically. If it goes through a period of monotonic decrease and then stops decreasing and simply bounces around at a roughly constant level, that suggests that your tolerances are too tight. Otherwise, look for things like the wrong period being specified or the circuit not having a periodic solution.

To determine if the circuit does have a periodic solution, run a long transient analysis and use strobing and set it so that it produces one time point per period. Plot the waveforms. If the circuit does have a periodic solution there will be an initial transient that dies out and the resulting strobed waveforms should become absolutely flat. If this does not occur, then either you have specified the wrong period or there is some spurious oscillation that precludes a periodic solution.

-August

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.