I have two questions about pnoise jitter calculation in SpectreRF.
1. What is the meaning of Freq. Multiplier in jitter calculator?
2. What is the optimum integration range of phase noise for jitter calculation?
Actually, I posted about similar subject last year, but I'm still confused..... : (
I need to calculate VCO's jitter to estimate the SNR limit of synchronous ADC by clock.
I've done PSS/PNOISE simulation like following condtion
- Free running VCO
- VCO clock speed : 10MS/s
- Total ADC conversion time : 100us(1000cycle)
Beat frequency : 10MHz
Output harmonics(Number of harmonics) : 0
Output Frequency Sweep Range : 1~500MHz(I have no idea what's the right sweep range. I just think it would be wide enough)
Maximum Sideband : 40(40 is enough to get accurate results in my case)
Noise type : Jitter(Typically, ADC needs only RMS jitter, not phase noise)
After PSS/PNOISE simulation, I caculated k-cycle jitter because the VCO is autonomous system and I need accumulated RMS jitter.
Following is what I did.
Results->Direct Plot->Main Form->select pnoise jitter(Analysis)->Jc(Function)->Number of cycles=1000->select RMS->
->Freq. Multiplier=1->Integration Limits:1kHz~20MHz
Here are two questions as I asked above.
I think the integration range of 1k~20MHz is enough, because total ADC's conversion time is 100us and 20MHz=10MHz(Fundamental X2)
Is it proper approach?
I believe the Freq Multiplier (which is really not clearly documented - it just says in various places that it defaults to 1, but gives no explanation, even in the documentation for the underlying functions drplRFJcc etc, as to what it actually means) is to allow you to say that you want the frequency used for the jitter calculation to be multiplied up from the frequency found in the PSS analysis. An example where that might be useful is when you have a divider and the PSS has found the divided frequency - but yet you are measuring the jitter elsewhere in the circuit (maybe on the divider input), and so you need to multiply the frequency of the PSS by the divide ratio of the divider to use the correct frequency in the calculations. However, I think you should log a service request to confirm this and request that it is properly documented.
If your PSS fundamental is 10MHz, and you are using the PMjitter mode, you should not sweep the pnoise beyond half the PSS fundamental (5MHz). This is because the PMjitter mode adds an ideal sampler to the output of the circuit and this is sampling at the PSS fundamental rate - sweeping beyond this will alias the noise and cause overcounting of the noise. Since the sampler is there, it will automatically fold any noise into the output band anyway, so it should be sufficient to have an upper limit of 5MHz. The lower limit of 1kHz is OK, but in practice if K is 1000 you are only including frequencies as low as 10MHz/1000 - i.e. 10kHz. The integration automatically takes this into account - so it's fine to leave it as 1kHz.
You might want to read the Jitter app note at <MMSIMinstDir>/tools/spectre/examples/SpectreRF_workshop/JitterAN.pdf
Your comment is really helpful to understand PSS sim.
Thank you for your reply, Andrew
I read the app note you suggested(for version MMSIM6.0, March 2006), and I'm little confused about k-cycle jitter.
From the note, section "Synchronous Jitter Versus Accumulating Jitter", autonomous circuits, e.g. VCO have only cycle-to-cycle jitter as the jitter performance as mentioned below
"For autonomous circuits where there are no ideal reference transitions, you are limited to using self-referred jitter metrics. This jitter is accumulating jitter. The next cycle transition is the result of the previous cycle output, so the jitter variance accumulates from cycle-to-cycle"
But, in the Figure 1-9 of the note, Cycle jitter is used as the jitter performance of VCO.
Could I use the K-cycle jitter as accumulating jitter of autonomous circuits?
Which is right?
Hi Andrew, I also have been stuck with the problem of selecting the proper fmin in long term ( accumulated ) jitter calculation in PSS/PNOISE sims. I would like to get some more clarification on the last statement "The lower limit of 1kHz is OK, but in practice if K is 1000 you are only including frequencies as low as 10MHz/1000 - i.e. 10kHz. The integration automatically takes this into account - so it's fine to leave it as 1kHz." Does spectre Jc(K) form always takes Fmin as "Fbeat / K" for integration, irrespective of what fmin value we give ..? Could you kindly point me to the theoretical basis for this "Fbeat / K"...? ( I am asking this because I have not found any literature which clearly specifies the Fmin of integration for K cycle accumulated long term jitter) Following is my specific scenario.: I have an experimental/simple RC relaxation oscillator operating at 10MHz. Ran PSS/PNOSE with Fbeat=10MHz. Want to find out the accumulated jitter for 100000 cycles. In the Jc(K) form, max integration range is set to =Fbeat/2 = 5MHz. I tried different fmin ( like 10Hz ,50Hz , 100Hz ). Follwing are the respective jitter values reported by spectre ==> 431nS , 132nS , 56nS. ==> The values are vastly different. Kindly let me know your thoughts/advice on this as this is inconsistent with the comment you have given. I am concerned about what value I should give as Fmin... ? Wondering if I am getting this issue due to some setting or version issue ? ( I use Virtuoso 6.1.6-64b ) ( Based on your comment, the Fmin in my case should have to be 10MHz/100000 = 100 and Jc(K=100000) values should have to be same if I input Fmin=100Hz or 50Hz or 10Hz ) Highly appreciate your help... Thanks and regards Soman