I am trying to run PAC analysis for multiple i/p frequency values.
Can it be done without running PSS multiple times if so, how it can be done.
If you are trying to find the transfer function from multiple different sidebands to a single expected output frequency (or sweep of output frequency), perhaps you would be better off using pxf instead of pac? pxf computes the transfer functions from each source in the design to the specified output, and can give you the transfer function from each sideband of the input frequency to the output.
Otherwise the only way to do this is really to put the analysis statements in an include file and reference them via the setup->model libraries form. To do this I'd start with copying the pss and pac analyses from the input.scs for a single run into a file, then repeating the pac analysis with a different instance name (the first word on a line) and changing the input frequency.
pss pss fund=5G harms=3 errpreset=conservative tstab=10n+ annotate=statuspac pac sweeptype=absolute start=5.000001G stop=5.01G+ maxsideband=5 annotate=statuspac2 pac sweeptype=absolute start=4.000001G stop=4.01G+ maxsideband=5 annotate=statuspac3 pac sweeptype=absolute start=3.000001G stop=3.01G+ maxsideband=5 annotate=status
Then disable the pss and pac analyses from the choosing analyses form in ADE. You need to include the pss plus the N pac (rather than using a mix of the UI analyses and those from an include file) because there's an order dependency - the pac analyses need to follow the pss analysis in the netlist.
should I simply run ADE (press the run button) without any analyse in it ?
I'm not sure what "is not taking" means - did you get an error in the simulator log?
In general it would be better to give the file a ".scs" suffix (rather the ".txt") because .scs will be read as spectre syntax, whereas anything else will assumed to be in SPICE syntax. Otherwise you'd need to precede these lines with:
So I'm guessing this fails because it's reading a file containing spectre statements and assuming it's in SPICE syntax, so I'm hopeful that just changing the suffix would fix it.
Secondly, there's a lot of excessive parameter values in the pss analysis. Do you really need oversamplefactor=4? Using maxstep=1p seems excessive too. If this is an oscillator, then you wouldn't normally set tstabmethod to gear2only, and maxperiods=1000 is a ridiculously high number. Also I have no idea why you've set steadyratio=0.00001 - that's really really tight. You're just giving the simulator a hard time without it being at all obvious as to why you're doing that.
Thanks Andrew. That worked.
Regarding the second part (simulation settings):-
I am trying to find Oscillator PPV from PSS and PXF. I need 70 PXF sidebands. I inject a PAC current source.
tstabmethod, maxperiods and steadratio... some how wrongly put.
But, oversamplefactor = 1 doesn't give correct PPV. But oversampling factor=2 gives correct PPV as it is compared with Spectre's PPV plot.
Can you please tell how oversamplefactor affects the PSS/PXF results.
What kind of oscillator is it?
It is a simple LC oscillator as below:-
So why do you need 70 harmonics (and sidebands)? Surely this is a pretty pure sinusoidal output? I would expect that oversample should only be needed if you have a very sharp transition within the period (normally you don't need to set it above 2), for oscillators such as a ring oscillator or when you have a buffer which squares the output of an LC or crystal oscillator. That doesn't appear to be the case here.
Yes, It is almost a sine wave. But, if I take 10 PXF sidebands (see the black curve) and 20 PXF sidebands (see the red curve) the PPV does not match the actual Spectre PPV (the green one).
If I take 50 PXF sidebands, the calculated PPV matches exactly with the actual PPV of Spectre.
See the below snapshot:- The PPV of Spectre and the PPV of calculated one from PXF are indistinguishable.
The PPV is for the voltage source at net GATE_IN. Though, the oscillator output voltage is almost sinusoidal, the PPV for the voltage source (unlike the PPV for the current source at net VOUT_M) is NOT.
So, we need more PXF sidebands.
Also, I think, for HB analysis we can not get 70 PXF sidebands without having 70 harmonics for PSS.
You're right that you can't get 70 PXF sidebands without 70 harmonics for PSS (if using harmonic balance). However, I don't know enough about computing PPV manually (the PPV output from Spectre is mostly for historical support of the old PLL modelling flow, although it is used internally inside the simulator) to know what the right answer is here. I've not read Demir's paper recently and don't really have the time to investigate this in more detail right now - you would probably better off contacting customer support so that somebody can spend enough time to investigate this properly.