The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> RF Simulators >> .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
https://designers-guide.org/forum/YaBB.pl?num=1220476173

Message started by Maryam on Sep 3rd, 2008, 2:09pm

Title: .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 3rd, 2008, 2:09pm

I am simulating a power amplifier (.pss) in Sprectre. The output waveform has different amplitudes in different .pss runs. Depending op the number of times I run .pss and whether I have run a .tran before .pss or not, the .pss result veries.

These are the settings that I simulated with:

- errpreset (Accuracy): conservative
- tstab is long enough for the circuit to settle (~1000 cycles)
- Integration method: I tried default/gear2/gear2only
- maxperiods: I tried default(20) and 50

It converges, but everytime to a different result. Any suggestion to get consistent results in .pss?

Thanks.

Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by nano_RF on Sep 4th, 2008, 9:18pm

This seems a bit strange.

I hope you are not writing the current PSS simulation data in a file and using that as an initial guess for the next simulation. And depending on the initial condition you are reaching different output.


Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 4th, 2008, 10:16pm

No, I'm not using any initial guess or initial condition.


Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by pancho_hideboo on Sep 4th, 2008, 10:51pm


Maryam wrote on Sep 3rd, 2008, 2:09pm:
Depending op the number of times I run .pss and whether I have run a .tran before .pss or not, the .pss result veries.

I can't understand what you mean.
If you run shooting newton PSS of Cadence Spectre, transient analysis is always excecuted before shooting newton trial.


Maryam wrote on Sep 4th, 2008, 10:16pm:
No, I'm not using any initial guess or initial condition.

If so, why do you refer transient analysis ?

Do you use final state of transient analysis as initial condition of PSS with skipdc=yes ?

Anyway show me your netlist portion regarding all signal sources, analysis statement and option statement.
And show me logfile of Spectre.

Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 5th, 2008, 1:55am

"Depending op the number of times I run .pss and whether I have run a .tran before .pss or not, the .pss result veries.

I can't understand what you mean.
If you run shooting newton PSS of Cadence Spectre, transient analysis is always excecuted before shooting newton trial."

By running .tran before .pss, I mean I run a transient analysis and a pss analysis simultaneously, I'm not referring to the transient analysis before the pss that Spectre runs by default.

Sometimes when I run several .pss analyses, I get different results each time. It's not always the case; it happens sometimes when I change the values of the components and size of the transistors. If I run .tran and .pss at the same time, I get another result for .pss.

"Do you use final state of transient analysis as initial condition of PSS with skipdc=yes ?"
No, I don't.

Based on Spectre manual, for the initial transient of tstab, a liberal transient is run before the pss is run. I simulated the circuit in .tran with liberal option, and the waveforms were not any close to what they should be (transistors in triode, not in saturation,..). However, the .pss result seemed fine (except a few tenth of volt difference in amplitude sometimes). Then, I manually changed some settings so that the initial transient before pss had conservative settings:

reltol=1e-4
pss-->
maxstep=period/1000
tstabmethod=gear2
Iteratio=10
steadyratio=0.01
maxperiods=100


Now, I don't see that big of difference in .pss from run to run, but sometimes the amplitude differs less than 0.1V from run to run.


simulatorOptions options reltol=1e-4 vabstol=1e-6 iabstol=1e-12 temp=27 \
   tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
   digits=5 cols=80 pivrel=1e-3 ckptclock=1800 \
   sensfile="../psf/sens.output" checklimitdest=psf
pss  pss  fund=3G  harms=7  errpreset=conservative  tstab=100n
+    maxstep=400f  method=gear2only  tstabmethod=gear2  relref=alllocal
+    lteratio=10  steadyratio=0.01  maxperiods=100  annotate=status
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
primitives info what=primitives where=rawfile
subckts info what=subckts  where=rawfile
saveOptions options save=allpub


V3 (vi vm) vsource dc=0 mag=0 type=sine \
       ampl=1 freq=3G


**************************************************
Periodic Steady-State Analysis `pss': fund = 3 GHz
**************************************************
Attempt to generate initial guess for DC solver failed.



Warning from spectre at time = 100.0004 ns during periodic steady state analysis
       `pss'.
   Convergence difficulties resulted in error requirements being unsatisfied.


No other warning in the output log file.

Thank you very much.

Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by pancho_hideboo on Sep 5th, 2008, 3:17am

Notations such as ".tran" and ".pss" where pre "." is added are not appropriate for Cadence Spectre.


Maryam wrote on Sep 5th, 2008, 1:55am:
By running .tran before .pss, I mean I run a transient analysis and a pss analysis simultaneously,
I'm not referring to the transient analysis before the pss that Spectre runs by default.
Analyses are executed sequnentially according to the order in netlist.
If you set pss to use final state of transient analysis, pss result could be affected by transient analysis when pss couldn't succeed in convergence.

Explain your situations correctly and clearly.
With your description, everyone think there are two analysis statements,  ".tran" and ".pss".


Maryam wrote on Sep 5th, 2008, 1:55am:
Sometimes when I run several .pss analyses, I get different results each time.
It's not always the case;
 it happens sometimes when I change the values of the components and size of the transistors.
 If I run .tran and .pss at the same time, I get another result for .pss.
It is quite natural since your PSS fails in convergence.


Maryam wrote on Sep 5th, 2008, 1:55am:
**************************************************
Periodic Steady-State Analysis `pss': fund = 3 GHz
**************************************************
Attempt to generate initial guess for DC solver failed.
Warning from spectre at time = 100.0004 ns during periodic steady state analysis
       `pss'.
   Convergence difficulties resulted in error requirements being unsatisfied.
Convergence fails although you mentioned it can converge like following in your first post.

Maryam wrote on Sep 3rd, 2008, 2:09pm:
It converges, but everytime to a different result.


Maryam wrote on Sep 5th, 2008, 1:55am:
No other warning in the output log file.
No. There are "ConvNorm" which shows degree of convergence.


Maryam wrote on Sep 5th, 2008, 1:55am:
simulatorOptions options reltol=1e-4 vabstol=1e-6 iabstol=1e-12 temp=27 \
   tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
   digits=5 cols=80 pivrel=1e-3 ckptclock=1800 \
   sensfile="../psf/sens.output" checklimitdest=psf
pss  pss  fund=3G  harms=7  errpreset=conservative  tstab=100n
+    maxstep=400f  method=gear2only  tstabmethod=gear2  relref=alllocal
+    lteratio=10  steadyratio=0.01  maxperiods=100  annotate=status
Where is ".tran" statement you refered ?
Show me true netlist without any modification.

Also your accuracy setting is not appropriate.
See http://www.designers-guide.org/Forum/YaBB.pl?num=1208334972/14#14
But generally it is not good to tighten accuracy setting in Cadence SpectreRF Shooting Newton PSS.





Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 6th, 2008, 4:41am

I usually run only pss (without any transient analysis) as shown below:

V3 (vi vm) vsource dc=0 mag=0 type=sine \
       ampl=1 freq=3G
.
.
.
simulatorOptions options reltol=1e-4 vabstol=1e-6 iabstol=1e-12 temp=27 \
   tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
   digits=5 cols=80 pivrel=1e-3 ckptclock=1800 \
   sensfile="../psf/sens.output" checklimitdest=psf
pss  pss  fund=3G  harms=7  errpreset=conservative  tstab=100n
+    maxstep=400f  method=gear2only  tstabmethod=gear2  relref=alllocal
+    lteratio=10  steadyratio=0.01  maxperiods=100  annotate=status
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
primitives info what=primitives where=rawfile
subckts info what=subckts  where=rawfile
saveOptions options save=allpub



A few times, I ran transient to diagnose the issue with the following settings:

simulatorOptions options reltol=1e-4 vabstol=1e-6 iabstol=1e-12 temp=27 \
   tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
   digits=5 cols=80 pivrel=1e-3 ckptclock=1800 \
   sensfile="../psf/sens.output" checklimitdest=psf
tran tran stop=2000n errpreset=conservative maxstep=1000f \
   write="spectre.ic" writefinal="spectre.fc" method=gear2only \
   annotate=status maxiters=5
finalTimeOP info what=oppoint where=rawfile
pss  pss  fund=3G  harms=7  errpreset=conservative  tstab=100n
+    maxstep=400f  method=gear2only  tstabmethod=gear2  relref=alllocal
+    lteratio=10  steadyratio=0.01  maxperiods=100  annotate=status
modelParameter info what=models where=rawfile
element info what=inst where=rawfile
outputParameter info what=output where=rawfile
designParamVals info what=parameters where=rawfile
primitives info what=primitives where=rawfile
subckts info what=subckts  where=rawfile
saveOptions options save=allpub


My problem is with pss simulation results, regardless of whether I run transient or not.



Here is the output log:


**************************************************
Periodic Steady-State Analysis `pss': fund = 3 GHz
**************************************************
Attempt to generate initial guess for DC solver failed.

=================================
`pss': time = (0 s -> 100.333 ns)
=================================
Important parameter values in tstab integration:
   start = 0 s
   outputstart = 0 s
   stop = 100.333 ns
   period = 333.333 ps
   step = 100.333 ps
   maxstep = 400 fs
   ic = all
   skipdc = no
   reltol = 100e-06
   abstol(I) = 1 pA
   abstol(V) = 1 uV
   temp = 27 C
   tnom = 27 C
   tempeffects = all
   method = gear2
   lteratio = 10
   relref = alllocal
   cmin = 0 F
   gmin = 1 pS
   maxrsd = 0 Ohm
   mos_method = s
   mos_vres = 50 mV

   pss: time = 2.509 ns     (2.5 %), step = 400 fs       (399 u%)
   pss: time = 7.525 ns     (7.5 %), step = 400 fs       (399 u%)
   pss: time = 12.54 ns    (12.5 %), step = 400 fs       (399 u%)
   pss: time = 17.56 ns    (17.5 %), step = 400 fs       (399 u%)

Warning from spectre at time = 20.7167 ns during periodic steady state analysis
       `pss'.
   M1: Vgd has exceeded the oxide breakdown voltage of `vbox' = ... V.
Notice from spectre at time = 20.7187 ns during periodic steady state analysis
       `pss'.
   M1: Device leaves the gate-drain oxide breakdown region.
.
.
.
       Further occurrences of this warning will be suppressed.
Notice from spectre at time = 21.7199 ns during periodic steady state analysis
       `pss'.
   M1: Device leaves the gate-drain oxide breakdown region.
       Further occurrences of this notice will be suppressed.

   pss: time = 22.58 ns    (22.5 %), step = 400 fs       (399 u%)

Warning from spectre at time = 23.5762 ns during periodic steady state analysis
       `pss'.
   Convergence difficulties resulted in error requirements being unsatisfied.

   pss: time = 27.59 ns    (27.5 %), step = 100 fs      (99.7 u%)
   pss: time = 32.61 ns    (32.5 %), step = 200 fs       (199 u%)
   pss: time = 37.63 ns    (37.5 %), step = 200 fs       (199 u%)
   pss: time = 42.64 ns    (42.5 %), step = 400 fs       (399 u%)
   pss: time = 47.66 ns    (47.5 %), step = 400 fs       (399 u%)

Warning from spectre at time = 50.4083 ns during periodic steady state analysis
       `pss'.
   Convergence difficulties resulted in error requirements being unsatisfied.

   pss: time = 52.68 ns    (52.5 %), step = 400 fs       (399 u%)
   pss: time = 57.69 ns    (57.5 %), step = 400 fs       (399 u%)
   pss: time = 62.71 ns    (62.5 %), step = 400 fs       (399 u%)
   pss: time = 67.73 ns    (67.5 %), step = 400 fs       (399 u%)
   pss: time = 72.74 ns    (72.5 %), step = 25 fs       (24.9 u%)

Warning from spectre at time = 75.7421 ns during periodic steady state analysis
       `pss'.
   Convergence difficulties resulted in error requirements being unsatisfied.

   pss: time = 77.76 ns    (77.5 %), step = 400 fs       (399 u%)
   pss: time = 82.78 ns    (82.5 %), step = 100 fs      (99.7 u%)
   pss: time = 87.79 ns    (87.5 %), step = 200 fs       (199 u%)
   pss: time = 92.81 ns    (92.5 %), step = 400 fs       (399 u%)
   pss: time = 97.83 ns    (97.5 %), step = 400 fs       (399 u%)
Conv norm = 45.7e+03, max dI(V37:p) = -6.00036 mA, took 85.49 s.

Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 6th, 2008, 4:43am


Important parameter values in pss iteration:
   start = 100 ns
   outputstart = 0 s
   stop = 100.333 ns
   period = 333.333 ps
   steadyratio = 10e-03
   step = 100.333 ps
   maxstep = 400 fs
   ic = all
   skipdc = no
   reltol = 100e-06
   abstol(I) = 1 pA
   abstol(V) = 1 uV
   temp = 27 C
   tnom = 27 C
   tempeffects = all
   errpreset = conservative
   method = gear2only
   lteratio = 10
   relref = alllocal
   cmin = 0 F
   gmin = 1 pS
   maxrsd = 0 Ohm
   mos_method = s
   mos_vres = 50 mV


Warning from spectre during periodic steady state analysis `pss'.
   231 warnings suppressed.


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns      (2.52 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.56 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.5 %), step = 100 fs        (30 m%)
   pss: time = 100.1 ns    (37.5 %), step = 100 fs        (30 m%)
   pss: time = 100.1 ns    (42.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (47.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.5 %), step = 100 fs        (30 m%)
   pss: time = 100.3 ns    (82.5 %), step = 100 fs        (30 m%)
   pss: time = 100.3 ns    (87.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (92.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (97.6 %), step = 400 fs       (120 m%)
Conv norm = 408, max dV(M11:int_d) = -17.574 mV, took 400 ms.


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns      (2.52 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.56 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.5 %), step = 100 fs        (30 m%)
   pss: time = 100.1 ns    (37.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (42.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (47.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (82.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (87.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (92.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (97.6 %), step = 400 fs       (120 m%)
Conv norm = 2.55e+03, max dI(V11:p) = -18.8622 mA, took 410 ms.


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns      (2.52 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.56 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.5 %), step = 200 fs        (60 m%)
   pss: time = 100.1 ns    (37.5 %), step = 200 fs        (60 m%)
   pss: time = 100.1 ns    (42.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (47.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (82.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (87.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (92.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (97.6 %), step = 400 fs       (120 m%)
Conv norm = 35.7, max dI(V111:p) = 1.25411 uA, took 390 ms.

Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 6th, 2008, 4:45am

====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns      (2.54 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.58 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (37.5 %), step = 200 fs        (60 m%)
   pss: time = 100.1 ns    (42.5 %), step = 200 fs        (60 m%)
   pss: time = 100.2 ns    (47.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (82.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (87.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (92.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (97.6 %), step = 400 fs       (120 m%)
Conv norm = 3.65e+03, max dI(V13:p) = 45.6824 mA, took 380 ms.


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns      (2.54 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.58 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.5 %), step = 200 fs        (60 m%)
   pss: time = 100.1 ns    (37.5 %), step = 200 fs        (60 m%)
   pss: time = 100.1 ns    (42.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (47.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (82.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (87.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (92.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (97.5 %), step = 400 fs       (120 m%)
Conv norm = 679, max dV(M9:int_d) = -107.618 mV, took 400 ms.


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns      (2.54 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.58 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (37.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (42.5 %), step = 200 fs        (60 m%)
   pss: time = 100.2 ns    (47.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (82.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (87.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (92.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (97.5 %), step = 400 fs       (120 m%)
Conv norm = 10.2, max dV(M8:int_d) = -1.23757 mV, took 360 ms.


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns      (2.54 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.58 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.6 %), step = 400 fs       (120 m%)

Warning from spectre at time = 100.083 ns during periodic steady state analysis
       `pss'.
   Convergence difficulties resulted in error requirements being unsatisfied.


Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 6th, 2008, 4:47am

   pss: time = 100.1 ns    (27.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (37.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (42.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (47.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (82.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (87.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (92.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (97.6 %), step = 400 fs       (120 m%)
Conv norm = 2.91, max dI(V111:p) = -102.846 nA, took 370 ms.


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns      (2.54 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.58 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (37.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (42.5 %), step = 200 fs        (60 m%)
   pss: time = 100.2 ns    (47.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (82.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (87.5 %), step = 100 fs        (30 m%)
   pss: time = 100.3 ns    (92.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (97.6 %), step = 400 fs       (120 m%)
Conv norm = 161e-03, max dI(V10:p) = -161.306 fA, took 350 ms.

pss: The steady-state solution was achieved in 9 iterations.
Number of accepted pss steps = 1021.
Total time required for pss analysis `pss' was 89 s (1m  29.0s).

modelParameter: writing model parameter values to rawfile.
element: writing instance parameter values to rawfile.
outputParameter: writing output parameter values to rawfile.
designParamVals: writing netlist parameters to rawfile.
primitives: writing primitives to rawfile.
subckts: writing subcircuits to rawfile.

**************************************************
Periodic Steady-State Analysis `pss': fund = 3 GHz
**************************************************
Attempt to generate initial guess for DC solver failed.

=================================
`pss': time = (0 s -> 100.333 ns)
=================================
Important parameter values in tstab integration:
   start = 0 s
   outputstart = 0 s
   stop = 100.333 ns
   period = 333.333 ps
   step = 100.333 ps
   maxstep = 400 fs
   ic = all
   skipdc = no
   reltol = 100e-06
   abstol(I) = 1 pA
   abstol(V) = 1 uV
   temp = 27 C
   tnom = 27 C
   tempeffects = all
   method = gear2
   lteratio = 10
   relref = alllocal
   cmin = 0 F
   gmin = 1 pS
   maxrsd = 0 Ohm
   mos_method = s
   mos_vres = 50 mV

   pss: time = 2.509 ns     (2.5 %), step = 400 fs       (399 u%)
   pss: time = 7.525 ns     (7.5 %), step = 400 fs       (399 u%)

Warning from spectre at time = 7.7447 ns during periodic steady state analysis
       `pss'.
   Convergence difficulties resulted in error requirements being unsatisfied.
Warning from spectre at time = 10.9112 ns during periodic steady state analysis
       `pss'.
   Convergence difficulties resulted in error requirements being unsatisfied.

   pss: time = 12.54 ns    (12.5 %), step = 400 fs       (399 u%)
   pss: time = 17.56 ns    (17.5 %), step = 400 fs       (399 u%)

Warning from spectre at time = 20.3838 ns during periodic steady state analysis
       `pss'.
   M1: Vgd has exceeded the oxide breakdown voltage of `vbox' = ... V.
.
.
.
       Further occurrences of this warning will be suppressed.

   pss: time = 22.58 ns    (22.5 %), step = 400 fs       (399 u%)
   pss: time = 27.59 ns    (27.5 %), step = 200 fs       (199 u%)
   pss: time = 32.61 ns    (32.5 %), step = 100 fs      (99.7 u%)
   pss: time = 37.63 ns    (37.5 %), step = 200 fs       (199 u%)
   pss: time = 42.64 ns    (42.5 %), step = 400 fs       (399 u%)
   pss: time = 47.66 ns    (47.5 %), step = 400 fs       (399 u%)
   pss: time = 52.68 ns    (52.5 %), step = 400 fs       (399 u%)

Warning from spectre at time = 56.4083 ns during periodic steady state analysis
       `pss'.
   Convergence difficulties resulted in error requirements being unsatisfied.

Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 6th, 2008, 4:48am

   pss: time = 57.69 ns    (57.5 %), step = 400 fs       (399 u%)
   pss: time = 62.71 ns    (62.5 %), step = 400 fs       (399 u%)
   pss: time = 67.73 ns    (67.5 %), step = 400 fs       (399 u%)
   pss: time = 72.74 ns    (72.5 %), step = 25 fs       (24.9 u%)
   pss: time = 77.76 ns    (77.5 %), step = 400 fs       (399 u%)
   pss: time = 82.78 ns    (82.5 %), step = 400 fs       (399 u%)
   pss: time = 87.79 ns    (87.5 %), step = 200 fs       (199 u%)
   pss: time = 92.81 ns    (92.5 %), step = 400 fs       (399 u%)
   pss: time = 97.83 ns    (97.5 %), step = 400 fs       (399 u%)

Warning from spectre at time = 100.243 ns during periodic steady state analysis
       `pss'.
   Convergence difficulties resulted in error requirements being unsatisfied.

Conv norm = 45.7e+03, max dI(V37:p) = -6.00415 mA, took 83.98 s.

Important parameter values in pss iteration:
   start = 100 ns
   outputstart = 0 s
   stop = 100.333 ns
   period = 333.333 ps
   steadyratio = 10e-03
   step = 100.333 ps
   maxstep = 400 fs
   ic = all
   skipdc = no
   reltol = 100e-06
   abstol(I) = 1 pA
   abstol(V) = 1 uV
   temp = 27 C
   tnom = 27 C
   tempeffects = all
   errpreset = conservative
   method = gear2only
   lteratio = 10
   relref = alllocal
   cmin = 0 F
   gmin = 1 pS
   maxrsd = 0 Ohm
   mos_method = s
   mos_vres = 50 mV


Warning from spectre during periodic steady state analysis `pss'.
   230 warnings suppressed.


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns      (2.52 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.56 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.5 %), step = 200 fs        (60 m%)
   pss: time = 100.1 ns    (37.5 %), step = 200 fs        (60 m%)
   pss: time = 100.1 ns    (42.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (47.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (82.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (87.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (92.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (97.5 %), step = 400 fs       (120 m%)
Conv norm = 300, max dV(M11:int_d) = -12.8661 mV, took 430 ms.


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns      (2.52 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.56 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.5 %), step = 200 fs        (60 m%)
   pss: time = 100.1 ns    (32.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (37.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (42.5 %), step = 200 fs        (60 m%)
   pss: time = 100.2 ns    (47.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (82.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (87.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (92.6 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (97.6 %), step = 400 fs       (120 m%)
Conv norm = 1.73e+03, max dI(V11:p) = -12.5766 mA, took 400 ms.


Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 6th, 2008, 4:50am


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns      (2.52 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.56 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.5 %), step = 200 fs        (60 m%)
   pss: time = 100.1 ns    (37.5 %), step = 200 fs        (60 m%)
   pss: time = 100.1 ns    (42.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (47.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (82.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (87.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (92.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (97.6 %), step = 400 fs       (120 m%)
Conv norm = 24.3, max dI(V111:p) = 852.681 nA, took 400 ms.


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns       (2.5 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.54 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (37.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (42.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (47.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.6 %), step = 400 fs       (120 m%)

Warning from spectre at time = 100.246 ns during periodic steady state analysis
       `pss'.
   Convergence difficulties resulted in error requirements being unsatisfied.

   pss: time = 100.3 ns    (77.6 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (82.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (87.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (92.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (97.6 %), step = 400 fs       (120 m%)
Conv norm = 863, max dI(L2:1) = 9.98014 mA, took 420 ms.


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns       (2.5 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.54 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (37.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (42.5 %), step = 200 fs        (60 m%)
   pss: time = 100.2 ns    (47.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (82.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (87.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (92.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (97.5 %), step = 400 fs       (120 m%)
Conv norm = 52.4, max dI(V13:p) = 622.952 uA, took 410 ms.


Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 6th, 2008, 4:56am


====================================
`pss': time = (100 ns -> 100.333 ns)
====================================
   pss: time = 100 ns       (2.5 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (7.54 %), step = 400 fs       (120 m%)
   pss: time = 100 ns      (12.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (17.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (22.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (27.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (32.5 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (37.6 %), step = 400 fs       (120 m%)
   pss: time = 100.1 ns    (42.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (47.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (52.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (57.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (62.5 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (67.6 %), step = 400 fs       (120 m%)
   pss: time = 100.2 ns    (72.6 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (77.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (82.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (87.5 %), step = 200 fs        (60 m%)
   pss: time = 100.3 ns    (92.5 %), step = 400 fs       (120 m%)
   pss: time = 100.3 ns    (97.5 %), step = 400 fs       (120 m%)
Conv norm = 960e-03, max dI(V111:p) = 33.9097 nA, took 370 ms.

pss: The steady-state solution was achieved in 7 iterations.
Number of accepted pss steps = 1037.
Total time required for pss analysis `pss' was 86.78 s (1m  26.8s).

modelParameter: writing model parameter values to rawfile.
element: writing instance parameter values to rawfile.
outputParameter: writing output parameter values to rawfile.
designParamVals: writing netlist parameters to rawfile.
primitives: writing primitives to rawfile.
subckts: writing subcircuits to rawfile.

Aggregate audit (4:08:23 AM, Sat Sep 6, 2008):
Time used: CPU = 178 s (2m  58.4s), elapsed = 361 s (6m  1.0s), util. = 49.4%.
Virtual memory used = 66.5 Mbytes.
spectre completes with 0 errors, 17609 warnings, and 474 notices.





Although "Attempt to generate initial guess for DC solver failed." and not satisfying convergence in the intermediate steps, doesn't  "pss: The steady-state solution was achieved in 7 iterations." mean that pss has converged?


The reason that I tightened the accuracy settings, was to force the initial transient analysis (for tstab) before pss have conservative settings. Because when I ran a liberal transient on the circuit (for diagnosis), the waveforms were not right.

Thank you very much for your help.

Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by pancho_hideboo on Sep 6th, 2008, 5:17am


Maryam wrote on Sep 3rd, 2008, 2:09pm:
Depending op the number of times I run .pss and whether I have run a .tran before .pss or not, the .pss result veries.


Maryam wrote on Sep 6th, 2008, 4:41am:
My problem is with pss simulation results, regardless of whether I run transient or not.

First I would like to make your issue correct and clear.
Your first post that transient analysis affects pss results is wrong. Right ?

Your problem is PSS issue. Maybe accuracy setting issue.


Maryam wrote on Sep 6th, 2008, 4:47am:
Conv norm = 161e-03, max dI(V10:p) = -161.306 fA, took 350 ms.
pss: The steady-state solution was achieved in 9 iterations.
Number of accepted pss steps = 1021.
Total time required for pss analysis `pss' was 89 s (1m  29.0s).


Maryam wrote on Sep 6th, 2008, 4:56am:
Conv norm = 960e-03, max dI(V111:p) = 33.9097 nA, took 370 ms.
pss: The steady-state solution was achieved in 7 iterations.
Number of accepted pss steps = 1037.
Total time required for pss analysis `pss' was 86.78 s (1m  26.8s).


Maryam wrote on Sep 6th, 2008, 4:56am:
Although "Attempt to generate initial guess for DC solver failed."
and not satisfying convergence in the intermediate steps,
doesn't  "pss: The steady-state solution was achieved in 7 iterations." mean that pss has converged?

You showed two cases:
(1) achieved in 9 iterations with Conv norm = 161e-03
(2) achieved in 7 iterations with Conv norm = 960e-03

These two can converge I think.
Is there any remarkable difference in your PSS results between (1) and (2) ?


Maryam wrote on Sep 6th, 2008, 4:56am:
Because when I ran a liberal transient on the circuit (for diagnosis), the waveforms were not right.

Even if you set "errpreset=moderate" in transient analysis, the result of transient analysis is not correct ?
Is high Q resonator included in your circuit ?
 



Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 6th, 2008, 5:19pm

"Your first post that transient analysis affects pss results is wrong. Right ?"
Yes, I keep getting different results from pss. Sorry for the confusion.

"Your problem is PSS issue. Maybe accuracy setting issue."
Yes, right.

"Is there any remarkable difference in your PSS results between (1) and (2) ?"
Yes, the results were different in these two cases, in terms of the duty cycle of transistors being in triode and the amplitude of the voltages.


"Even if you set "errpreset=moderate" in transient analysis, the result of transient analysis is not correct ?"
I simulated a transient with moderate settings; the results were fine.


"Is high Q resonator included in your circuit ?"

I have a few resonators in the circuit. The loaded Q of all of them is less than 10. Although some inductors have very high Q (ideal components with very small series resistance), the loaded Q of all of the resonators is smaller than 10.

Thank you very much.


Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 6th, 2008, 5:23pm

By the way, in general, the pss simulation of my circuit does not always converge. I keep simulating it several times and change the integration methods (mostly default, gear2, gear2only and sometimes trap and traponly) until I get convergence.

Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by pancho_hideboo on Sep 6th, 2008, 10:05pm


Maryam wrote on Sep 6th, 2008, 5:19pm:
Yes, the results were different in these two cases,
in terms of the duty cycle of transistors being in triode and the amplitude of the voltages.

I can't believe that remarkable discrepancies exist although convergence succeed with reasonable ConvNorm.
Show me result's graph which show discrepancy with each ConvNorm.


Maryam wrote on Sep 6th, 2008, 5:19pm:
I simulated a transient with moderate settings; the results were fine.

Make your issues correct and clear.

(1) Transient Analysis of errpreset=liberal --->> unreasonable results

(2) Transient Analysis of errpreset=moderate --->> reasonable results

(3) Transient Analysis of errpreset=conservative --->> reasonable results

(4) PSS Analysis of errpreset=conservative --->> often give unreasonable results

From your description I understand that transient(moderate) analysis give reasonable results while pss analysis often give unreasonable results.
Is this correct ?

How about PSS(moderate) with all default setting ?
Compare two cases, transient(moderate) and pss(moderate).
Is there remarkable difference between two ?


Maryam wrote on Sep 6th, 2008, 5:23pm:
By the way, in general, the pss simulation of my circuit does not always converge.
I keep simulating it several times and change the integration methods (mostly default, gear2, gear2only and sometimes trap and traponly)
until I get convergence.

Try to use Harmonic Balance PSS not Shooting Newton PSS.

Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 6th, 2008, 11:14pm

(1) Transient Analysis of errpreset=liberal --->> totally unreasonable results (different operating regions for the transistors)

(2) Transient Analysis of errpreset=moderate --->> reasonable results

(3) Transient Analysis of errpreset=conservative --->> reasonable results

Although it took a long time for the two transients to settle so I didn't compare the exact steady state magnitude of cases 2 and 3, but the results reasonably agreed.

(4) PSS Analysis of errpreset=conservative --->> the results don't agree. Usually they were close, in some cases they were different by about 0.2V difference in amplitude, and in a few cases, I got totally different results.

By changing the design parameters, I face different situations, so I cannot generate the same big discrepancy now since I have changed the design parameters.

"From your description I understand that transient(moderate) analysis give reasonable results while pss analysis often give unreasonable results.
Is this correct ?"

Yes. However, since the transient analysis takes a very long time to simulate and settle, I don't run it that often. So, I cannot say that I always get the exact same result from moderate and conservative transient. But, so far I didn't get unreasoonable results from transient if it converged.

"Try to use Harmonic Balance PSS not Shooting Newton PSS."

I thought Spectre uses Shooting method and ADS uses harmonic balance.
Can I do harmonic balance in Spectre?

Thank you very much.

Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by pancho_hideboo on Sep 6th, 2008, 11:20pm


Maryam wrote on Sep 6th, 2008, 11:14pm:
(4) PSS Analysis of errpreset=conservative --->> the results don't agree.
Usually they are close, in some cases they are different by about 0.2V difference in amplitude,
and in a few cases, I got totally different results.
By changing the design parameters, I face different situations, so I cannot generate the same big discrepancy now
since I have changed the design parameters.

When you see large diffences, does PSS converge with small ConvNorm truely ?
I think you are missing any caution or message in Spectre's logfile.

Anyway your circuits is difficult in convergence with Shooting Newton PSS.
Try to use Harmonic Balance PSS.

If a sinusoidal input signal is large enough near or over gain compression point,
Shooting Newton PSS often doesn't converge at all on the contrary to Cadence advertisement of Shooting Newton PSS.

I've never used SpectreRF mainly for RF circuit.
http://www.designers-guide.org/Forum/YaBB.pl?num=1162921214/0#0
http://www.designers-guide.org/Forum/YaBB.pl?num=1170364605/2#2
http://www.designers-guide.org/Forum/YaBB.pl?num=1194765058/1#1
http://www.designers-guide.org/Forum/YaBB.pl?num=1208334972

I have many simulators working on Cadence ADE, so I don't have to insist on Cadence SpectreRF at all.
If you have other simulators such as ADS, GoldenGate, HspiceRF, SmartSpiceRF, EldoRF, etc., try other simulators.
Maybe you will get far good simulation performance than Cadence Spectre.
http://www.designers-guide.org/Forum/YaBB.pl?num=1210062036


Maryam wrote on Sep 6th, 2008, 11:14pm:
I thought Spectre uses Shooting method and ADS uses harmonic balance.
Can I do harmonic balance in Spectre?

Yes, Cadence Spectre have Harmonic Balance Analysis since Version 6.0USR1.

See the following.
http://www.designers-guide.org/Forum/YaBB.pl?num=1125929808
http://www.designers-guide.org/Forum/YaBB.pl?num=1205223090

Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by Maryam on Sep 7th, 2008, 3:02am

"When you see large diffences, does PSS converge with small ConvNorm truely ?"

The two cases of which I attached log file, had different results, while at the last step, conv norm wassmaller than 1.

As far as I know, for circuits with large amplitudes and switching behavior of the transistors, actually HB has convergence difficulty (the extreme case is having logic gates).



1) liberal pss (default setting) did not converge at all.
2) moderate pss (default setting) converged and the discrepancy between the results was larger than conservative pss .
3) conservative pss (default setting) converged and had inconsistent results.

4) liberal transient converged. I could get consistent results with default settings this time  while before it did not give reasonable results!!
5) moderate transient (default setting) gave consistent results.
6) conservative transient (default setting) gave consistent results.

The results of cases 5 and 6 (moderate transient and conservative transient) agreed.

Title: Re:  .pss Simulation Results Vary in Different runs in Cadence (SpectreRF)
Post by pancho_hideboo on Sep 7th, 2008, 5:36am


Maryam wrote on Sep 7th, 2008, 3:02am:
As far as I know, for circuits with large amplitudes and switching behavior of the transistors, actually HB has convergence difficulty (the extreme case is having logic gates).

No. What you know is just same as Cadence advertisement.
And current HB analysis of Agilent ADS or GoldenGate is very robust.

If an input signal or output signal are pulse-shaped wave having sharp edge, shooting newton is superior than HB analysis.

But if an large sinusoidal input signal is added to amplifier input, for example, for evaluation of gain compression of amplifier, shooting newton can't converge at all while HB analysis can converge.
I can't evaluate gain compression characteristics using Shooting Newton PSS of Cadence Spectre.

For common classical RF evaluation cases where sinusoidal signal drive are used, Shooting Newton PSS of Cadence Spectre is inferior than HB analysis.
And I always encounter convergence problem of Shooting Newton PSS of Cadence Spectre.

SpectreRF can work for simple circuits which behave gently and is not robust at all for actual circuits on the contrary to Cadence Advertisement.


Maryam wrote on Sep 7th, 2008, 3:02am:
1) liberal pss (default setting) did not converge at all.
2) moderate pss (default setting) converged and the discrepancy between the results was larger than conservative pss .
3) conservative pss (default setting) converged and had inconsistent results.

In your case, shooting newton PSS with any errpreset can't be reliable.

Anyway try HB analysis of Cadence Spectre or other RF simulator.

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