The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Measurements >> Phase Noise and Jitter Measurements >> Matching period jitter given in guide
https://designers-guide.org/forum/YaBB.pl?num=1673629408

Message started by cmosbike on Jan 13th, 2023, 9:03am

Title: Matching period jitter given in guide
Post by cmosbike on Jan 13th, 2023, 9:03am

Hello,
I read the guide Modeling Jitter in PLL-based Frequency Synthesizers by Ken Kundert.  I am trying to match the jitter reported in this guide (9.8ps), but the output of the matlab script is giving 11.1 ps jitter.  I also hard-coded the tt values but this didn't seem to help either.

I have copied Listing 6 - 8 and placed into Virtuoso running spectre and checked the parameters given in the netlist.  Attached is my netlist from Spectre.


Code:
// Design library name: PLL_VA
// Design cell name: pll_jitter_678
// Design view name: schematic
simulator lang=spectre
global 0

// Library name: PLL_VA
// Cell name: pll_jitter_678
// View name: schematic
I0 (REF) osc6 freq=25M ratio=125 Vlo=-1 Vhi=1 tt=((0.01)*(125))/(25E+6) \
       accJitter=14e-12 syncJitter=2e-9
I1 (VCTL REF FB) pfd_cp7 Iout=500e-6 dir=1 tt=1e-09 ttol=1e-12
I2 (FB VCTL) vco8 Vmin=-4 Vmax=4 Fmin=1e+9 Fmax=3e+9 ratio=10000 Vlo=-1 \
       Vhi=1 tt=((0.01)*(10000))/(3e+9) jitter=4.5e-12 \
       ttol=((1e-06)*(10000))/(3e+9) outStart=10e-3
C1 (net1 0) capacitor c=625p
C0 (VCTL net1) capacitor c=3.125n
R0 (net1 0) resistor r=10K isnoisy=no
simulatorOptions options psfversion="1.4.0" reltol=1e-3 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 \
   sensfile="../psf/sens.output" checklimitdest=psf
tran tran stop=60m skipdc=yes write="spectre.ic" writefinal="spectre.fc" \
   annotate=status maxiters=5
finalTimeOP info what=oppoint where=rawfile
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


In Matlab, I am using the periods.m file and using the mapping to VCO jitter by dividing by sqrt(N).  

Code:
load periods.m;
% output estimates of period and jitter
N = 10000; %Frequency division
T=mean(periods);
J=std(periods);
Jvco = J/sqrt(N);


Did I miss something?  It would give me more confidence if my result matched the guide before modifying further.

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