ethan
|
Hello everybody,
Recently, I got problems with convergence in PSS simulation lots of times. Then I read the manual of "Spectre Circuit Simulator Reference" Product Verion 5.0 on June 2003, pp718-731. I feel confused with certain point.
By the way, I am simulating a fold-cascode opamp with SC-CMFB with layout extraction, plus a common biasing circuit with layout extraction.
On this manual page 725 bottom, it says "One can set "steadyratio" to a smaller value to activate a tighter tolerance for the interative linear solver". But when I looked at page 726 bottom, which list the effect of "errpreset" on some parameters for driven circuits (which I posted here):
errpreset reltol relref method lteratio steadyratio noisefloor liberal 1e-3 sigglobal traponly 3.5 0.001 -70dB moderate 1e-3 alllocal gear2only 3.5 0.001 -120dB conservative 1e-4 alllocal gear2only * 0.01 -200dB
where the "*" explains as : lteratio=10.0 for conservative errpreset. Only if user specified reltol <= 1e-4 * 10.0/3.5, it will change to lteratio=3.5.
My questions are: 1. I assume steadyratio=0.001 is a smaller value in errpreset=liberal or moderate than steadyratio=0.01 in conservative. But I thought errpreset= conservative is more tightened option, which is more accurate. It looks there is confliction between "tightening" and "loosening" in "steadyratio". Maybe I am just wrong. Please advise.
So, if I want to loosen "steadyratio", which is one of 6 suggestions in my spectre.out when my PSS simulation was failed with convergence. Which way I should set it if I pick "errpreset=conservative"? to go with 0.001 (or even smaller) or go beyond 0.01 (or even 0.1)?
2. Same point with "lteratio". I notice that "lteratio=10" for "conservative" case, and "lteratio=3.5" for liberal and moderate cases.
So, if I want to "tighten the normal simulation tolerances (maxstep, reltol, lteratio, and errpreset), which way for the value of "lteratio" should I go to resolve my convergence problem? by the way, I already picked "errpreset=conservative" and it displayed in spectre.out that "lteratio=10", "reltol=100e-06".
3. Does the "finitediff" option give some difference in convergence with its three options (no, yes, refine)?
4. Occasionally, I met a bizarre phenomenon with simulation in certain cases. Within one identical simulation setup, I got one simulation results which looked okay. then I re-run it (I didn't change anything on testbench and layout), the results just looked weird. If I clicked to run it again, it even displayed that some junction currents of the certain transistors exceeded "imelt" ...
So, what reason could be for this?
Appreciate your help.
ethan
|