Dear all,
I am simulating an oscillator (RLC lumped element connected to a sustaining amplifier) in SpectreRF 5.10.41.121508. The oscillation frequency is about 0.85 MHz. There is some initial current condition (50nA) for the inductance L.
The transient analysis runs well and shows the oscillations building up (100mVpp range).
However, when I run a PSS analysis with either traponly or gear2only integration method, I encounter start-up problems or wrong estimation of the frequency (for instance 6MHz instead of 0.85 MHz). I choose for the simulation parameters the HARD-I case suggested in the Oscillator Noise Analysis in SpectreRF.
I know that the tstab, method and the steadyratio are very important to get the right convergence of PSS but so far it is not working out.
Below is the output log of the simulations.
Could you please give me some suggestions for the proper start-up of the oscillations in PSS analysis?
Kind regards
Julia
***********************************************
Transient Analysis `tran': time = (0 s -> 5 us)
***********************************************
Notice from spectre during IC analysis, during transient analysis `tran'.
L0: Initial condition computed for node L0:1 is in error by 50 nA (100 %).
To reduce error in computed initial conditions, decrease `rforce'.
However, setting rforce too small may result in convergence
difficulties or in the matrix becoming singular.
Important parameter values:
start = 0 s
outputstart = 0 s
stop = 5 us
step = 5 ns
maxstep = 100 ns
ic = all
skipdc = no
reltol = 10e-06
abstol(I) = 1 pA
abstol(V) = 30 nV
temp = 27 C
tnom = 27 C
tempeffects = all
errpreset = moderate
method = traponly
lteratio = 3.5
relref = sigglobal
cmin = 0 F
gmin = 1 pS
maxrsd = 0 Ohm
mos_method = s
mos_vres = 50 mV
tran: time = 126.6 ns (2.53 %), step = 13.16 ns (263 m%)
tran: time = 376.7 ns (7.53 %), step = 10.06 ns (201 m%)
tran: time = 642.4 ns (12.8 %), step = 28.11 ns (562 m%)
tran: time = 879.9 ns (17.6 %), step = 9.945 ns (199 m%)
tran: time = 1.127 us (22.5 %), step = 13.19 ns (264 m%)
tran: time = 1.377 us (27.5 %), step = 10.69 ns (214 m%)
tran: time = 1.631 us (32.6 %), step = 10.87 ns (217 m%)
tran: time = 1.885 us (37.7 %), step = 13.1 ns (262 m%)
tran: time = 2.126 us (42.5 %), step = 9.989 ns (200 m%)
tran: time = 2.392 us (47.8 %), step = 24.88 ns (498 m%)
tran: time = 2.635 us (52.7 %), step = 9.975 ns (199 m%)
tran: time = 2.878 us (57.6 %), step = 12.63 ns (253 m%)
tran: time = 3.131 us (62.6 %), step = 10.87 ns (217 m%)
tran: time = 3.385 us (67.7 %), step = 10.7 ns (214 m%)
tran: time = 3.637 us (72.7 %), step = 14.54 ns (291 m%)
tran: time = 3.881 us (77.6 %), step = 9.952 ns (199 m%)
tran: time = 4.131 us (82.6 %), step = 18.58 ns (372 m%)
tran: time = 4.38 us (87.6 %), step = 10.07 ns (201 m%)
tran: time = 4.63 us (92.6 %), step = 12.18 ns (244 m%)
tran: time = 4.884 us (97.7 %), step = 11.09 ns (222 m%)
Number of accepted tran steps = 421.
Initial condition solution time = 10 ms.
Intrinsic tran analysis time = 80 ms.
Total time required for tran analysis `tran' was 90 ms.
finalTimeOP: writing operating point information to rawfile.
******************
DC Analysis `dcOp'
******************
Important parameter values:
reltol = 10e-06
abstol(I) = 1 pA
abstol(V) = 30 nV
temp = 27 C
tnom = 27 C
tempeffects = all
gmin = 1 pS
maxrsd = 0 Ohm
mos_method = s
mos_vres = 50 mV
Convergence achieved in 4 iterations.
Total time required for dc analysis `dcOp' was 0 s.
dcOpInfo: writing operating point information to rawfile.
************************************************************
Periodic Steady-State Analysis `pss': guessed fund = 850 kHz
************************************************************
=================================
`pss': time = (0 s -> 10.8824 us)
=================================
Important parameter values in tstab integration:
start = 0 s
outputstart = 0 s
stop = 10.8824 us
period = 1.17647 us
step = 6.17647 ns
maxstep = 10 ns
ic = dc
skipdc = no
reltol = 10e-06
abstol(I) = 1 pA
abstol(V) = 30 nV
temp = 27 C
tnom = 27 C
tempeffects = all
method = traponly
lteratio = 3.5
relref = sigglobal
cmin = 0 F
gmin = 1 pS
maxrsd = 0 Ohm
mos_method = s
mos_vres = 50 mV
pss: time = 276.2 ns (2.54 %), step = 10 ns (91.9 m%)
pss: time = 816.2 ns (7.5 %), step = 10 ns (91.9 m%)
pss: time = 1.366 us (12.6 %), step = 10 ns (91.9 m%)
pss: time = 1.906 us (17.5 %), step = 10 ns (91.9 m%)
pss: time = 2.456 us (22.6 %), step = 10 ns (91.9 m%)
pss: time = 2.996 us (27.5 %), step = 10 ns (91.9 m%)
pss: time = 3.546 us (32.6 %), step = 10 ns (91.9 m%)
pss: time = 4.086 us (37.5 %), step = 10 ns (91.9 m%)
pss: time = 4.626 us (42.5 %), step = 10 ns (91.9 m%)
pss: time = 5.176 us (47.6 %), step = 10 ns (91.9 m%)
pss: time = 5.716 us (52.5 %), step = 10 ns (91.9 m%)
pss: time = 6.261 us (57.5 %), step = 4.706 ns (43.2 m%)
pss: time = 6.802 us (62.5 %), step = 4.706 ns (43.2 m%)
pss: time = 7.348 us (67.5 %), step = 4.706 ns (43.2 m%)
pss: time = 7.894 us (72.5 %), step = 4.706 ns (43.2 m%)
pss: time = 8.435 us (77.5 %), step = 4.706 ns (43.2 m%)
pss: time = 8.981 us (82.5 %), step = 4.706 ns (43.2 m%)
pss: time = 9.522 us (87.5 %), step = 4.706 ns (43.2 m%)
pss: time = 10.07 us (92.5 %), step = 4.706 ns (43.2 m%)
pss: time = 10.61 us (97.5 %), step = 4.706 ns (43.2 m%)
Error found by spectre at time = 10.8824 us during periodic steady state
analysis `pss'.
V(VOUT) is too small to reliably detect the period of the oscillator. This
may be because nodes with insignificant signal levels were chosen, or
it may be because the oscillator was never properly started.
Analysis `pss' terminated prematurely due to error.
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.