Hello , i have found that my VCO oscilates 13.45GHZ by converting period to frequency from the transient plot bellow f=1/T,
i tried to perform the PSS and PNOISE as following:
tbstat=30.48nsecnsec (the transient of the signal,from the plot bellow the steady state starts after 30.48ns ,tbstat help definition is shown bellow bellow)
Beat frequency=13.45GHZ(its the high common input frequency, from my transient response i calculated the oscilation frequency by f=1/T)
Relative frequency: the help shown bellow says we should use 2 because we have diodes in it(so i am not sure, my diodes are used as a varactor)
frequency range: i thought to specify the range from zero till the frequency of the oscillation i got fro the transient plot and f=1/T.
The final ADEL shown bellow.
When i tried to run the PSS first ,it gave me an error shown in the end.
Why it gave me an error? my VCO is oscillating fine as you can see in the transient plots bellow.
a step by step of what was done shown is bellow.
pss: time = 30.08 ns (97.5 %), step = 2.974 ps (9.64 m%)
Error found by spectre at time = 30.8517 ns during periodic steady state analysis `pss'. ERROR (SPCRTRF-15050): V(out_p,out_n) is too small to reliably detect the period of the oscillator.Perhaps nodes with insignificant signal levels were chosen, or perhaps the oscillator was never properly started.
Analysis `pss' was terminated prematurely due to an error.modelParameter: writing model parameter values to rawfile.
Opening the PSF file ../psf/modelParameter.info ...element: writing instance parameter values to rawfile.
Opening the PSF file ../psf/element.info ...outputParameter: writing output parameter values to rawfile.
Opening the PSF file ../psf/outputParameter.info ...designParamVals: writing netlist parameters to rawfile.
Opening the PSFASCII file ../psf/designParamVals.info ...primitives: writing primitives to rawfile.
Opening the PSFASCII file ../psf/primitives.info.primitives ...subckts: writing subcircuits to rawfile.
Opening the PSFASCII file ../psf/subckts.info.subckts ...
Aggregate audit (9:14:04 PM, Fri Jan 11, 2019):Time used: CPU = 1.39 s, elapsed = 1.53 s, util. = 91.1%.Time spent in licensing: elapsed = 31.2 ms.Peak memory used = 58.1 Mbytes.Simulation started at: 9:14:02 PM, Fri Jan 11, 2019, ended at: 9:14:04 PM, Fri Jan 11, 2019, with elapsed time (wall clock): 1.53 s.spectre completes with 1 error, 5 warnings, and 4 notices.
A few suggestions follow...
1. Let spectre compute the frequency since you have specified this is an oscillator. I noticed you are entering the beat freuqency. There is a check box to allow spectre to compute the frequency.
2. With an LC or other higher Q based oscillator, you need to guarantee that sufficient samples are taken over the period of oscillation. You are using an errpreset of "moderate" and I don't see that you have specified a value for maxstep (maximum time step for integration). With an errpreset of "moderate", the maximum integration step size is determined by dividing the time of the simulation (30.48 ns?) by 50. In your example, this is 30.48 ns/50 = 609 ps. However, the period of your oscillator is 74 ps. Hence, the maximum time step is far too large and may result in simulator accuracy errors. I would suggest including a maximum integration time step of, perhaps, 1 or 2 ps (maxstep = 1 ps, for example).
3. Your oscillator waveform is near sinusoidal. Hence, you might consider the use of harmonic balance in lieu of the shooting algorithm.
ShawnLogan said:1. Let spectre compute the frequency since you have specified this is an oscillator. I noticed you are entering the beat freuqency. There is a check box to allow spectre to compute the frequency.
Hello Shawn,as you suggested i was able to check this option when i switched my PSS to harmonic balance instead of shooting.
after checking this option it still gives me an error that i must specify a value,although it disables this option when the box checked.
it doesnt allow me to auto calculate the beat frequency.
ShawnLogan said:However, the period of your oscillator is 74 ps. Hence, the maximum time step is far too large and may result in simulator accuracy errors. I would suggest including a maximum integration time step of, perhaps, 1 or 2 ps (maxstep = 1 ps, for example).
There is no maxstep option in the PSS window as shown bellow.
also spectreRF manual says(shown bellow) that for highly non linear oscillator (i have diodes an transistors) i should use shooting PSS.
what could be done to make it work properly? (i showed bellow my pss window)
Several points here:
Andrew Beckett said:It would be much easier if you uploaded (ideally as an attachment) the entire spectre.out log file rather than just the bits you think are important - there is a lot of info in there which would have captured important parameters, how it had been converging (or not). Just reporting the final error isn't very helpful...
Hello Andrew,i am still digesting and implemeting your guidance with the manual, i got a perfect harmonic balance as shown bellow.
in my personal folder i only have files like
and my schematic files that i created using library manager.
where can i find SPECTRE.OUT file?
When you run a spectre simulation, you normally have a log file appear (you've copied and pasted info from it in your first post above). In the banner of that window, it gives the path to the file.
If running in ADE L, and when you've not changed the project directory (on Setup->Simulator/Dir/Host), it will be in ~/simulation/cellName/spectre/schematic/psf/spectre.out - the three in italics are the test bench cell name, the simulator name, and the view being simulated (so might be a config, might be something else, but commonly is schematic).
Anyway, glad you've got it working.