The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Mar 28th, 2024, 6:34am
Pages: 1
Send Topic Print
Discrepancy between PSD of matlab script and PSD of Spectre (Read 1265 times)
xting108
New Member
*
Offline



Posts: 3

Discrepancy between PSD of matlab script and PSD of Spectre
Oct 09th, 2020, 11:58am
 
Hi Ken:
In your great paper "predicting the phase noise and jitter of PLL...", you provide a Matlab script to post-process the period jitter as well as ploting the PSD of it.  And I found Cadence uses the similiar way (referred to your script in the application note too) in its flow to first save the period data in a transicent simulation, then calculates it to get the period jitter and the PSD.
However with the same period data, the PSD generated by Spectre is different from the one processed by your reference script as attached.
Two major differences:
1. the PSD plot by Spectre has a flat region from 10k~1Mhz (if the sampled data increased, the flat region can be extended to lower frequency, which actually matches the PLL's BW corner), while the script plot has no such region but a straight 1/f^n line.
2. the magnitude of those two PSDs are different.
So my questions are:
1. Since I replace your original psd with python's welch function, is the script's PSD incorrect due to this replacement?
2. If the script's PSD is correct too, how can the Spectre's PSD be made from the same period data?  

Thanks
Back to top
 

psd_spectre.png
View Profile   IP Logged
xting108
New Member
*
Offline



Posts: 3

Re: Discrepancy between PSD of matlab script and PSD of Spectre
Reply #1 - Oct 9th, 2020, 11:59am
 
Looks like only one pic can be attached in one thread. Attached the 2nd script PSD one.
Back to top
 

psd_python.png
View Profile   IP Logged
Ken Kundert
Global Moderator
*****
Offline



Posts: 2384
Silicon Valley
Re: Discrepancy between PSD of matlab script and PSD of Spectre
Reply #2 - Oct 9th, 2020, 5:23pm
 
I am unfamiliar with Cadence's apnote or their procedure for extracting the PSD in situations like this, so I cannot really comment on that. But I do have a few things to offer you.

In my original paper I coupled that Matlab script with a Verilog-A model of the combined VCO and FD. It carefully controlled the sampling of the zero phase point so I was accurately measuring the period of the signal. This is really not possible in a post-processing approach, which is what the Cadence calculator implements. I rarely use the Cadence waveform calculator because for the things I tend to measure it often exhibits poor accuracy.  There is a fundamental flaw in the architecture of virtually all simulator/simulation environments available today: that is the simulator runs open loop as it is given no information about what is being measured, and then the calculator picks through the resulting waveforms and uses interpolation to compute its results. In many of the measurements that are interesting to me, such those that involve jitter, noise and spectral analysis, the thing I want to measure is often smaller than the interpolation error.  My approach is to supplement my circuit with Verilog-A instruments that I used to control the simulator time point placement and to extract data.  Then I do the processing in Python. That way I am in control of everything.

In other words, I really don't spend much of my time wondering why the Cadence measurements are wrong. I just always assume that they will be.

Concerning using the Welch transform, it might be contributing to the problem you are seeing. If I remember correctly, the Welch transform tries to reduce its noise floor by splitting the interval into many adjacent intervals, performing the transform on them individually, and then averaging the result.  This would have the effect of reducing the length of the time interval, which would make the method insensitive to low frequencies.  I would not put much weight on my comments, I am responding after giving this only a few minutes of thought and after not having worked with these kind of results for many years.

-Ken
Back to top
 
 
View Profile WWW   IP Logged
xting108
New Member
*
Offline



Posts: 3

Re: Discrepancy between PSD of matlab script and PSD of Spectre
Reply #3 - Oct 10th, 2020, 6:25am
 
Hi Ken:

Thanks for your prompt comments. Your insight gives me some hint that the issue might be caused from the different/inaccurate phase crossing points that the PSD relies on.
I will do some further investigation. Thanks anyway.
Back to top
 
 
View Profile   IP Logged
cmosbike
New Member
*
Offline



Posts: 2

Re: Discrepancy between PSD of matlab script and PSD of Spectre
Reply #4 - Jan 20th, 2023, 11:51am
 
Did you find the jitter value from your Verilog-A / matlab script was matched with the guide (9.8 ps?).
Back to top
 
 
View Profile   IP Logged
Pages: 1
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.