Quantcast
Channel: Cadence Custom IC Design Forum
Viewing all articles
Browse latest Browse all 4925

Inconsistent "PSD" results between MATLAB & Cadence Calculator

$
0
0

Hi all,

I have been trying to verify the variance (total power) of a random normal distributed noise source.

The noise source model has been modified from the noise_src in ahdlLib but with $rdist_normal() rather than $random()/`MAXINT

V(vout) <+ amp*$rdist_normal(seed,0,1);

where amp is exactly one sigma in normal distribution case. 

In this example I give amp = 100u and the resulting output random signal is shown below:

I used to dump this signal to MATLAB and do the FFT & PSD calculations based on the script described in this website:

"Power Spectral Density Estimates Using FFT"

www.mathworks.com/.../power-spectral-density-estimates-using-fft.html

Take nfft = 65536, sampling time = 1/1GHz.

The resulting integral of the overall spectrum is EXACTLY equal to sigma^2 = (100u)^2.

The PSD setup in VIVA Calculator and the result are shown as follows: 

Then I apply iinteg to the PSD and take square root, and the integrated value at the final data point (0.5*sampling frequency)  is expected to be sigma=100u.

However, the outcome seems to be smaller than what is expected. ( (82u-100u)/100u ~ -18% error)

There is still a constant -18% error no matter what sigma value I give.

I also ran transient noise simulation with the resistor model given in analogLib to verify that 4kTR*NoiseFmax = sigma^2.

Again, there is a -18% gap between VIVA calculator PSD function and MATLAB PSD.

If I extract the PSD data from VIVA calculator and do integration in MATLAB, the result is identical to that done in VIVA calculator. (-18% sigma)

Based on the trials given above, I suspect the algorithm of PSD function in VIVA calculator is not what I expect to be.

Can someone help me clarify this problem? 

Thanks a lot :)

Version Information

virtuoso 6.1.7-64b

spectre 16.1.0 32b


Viewing all articles
Browse latest Browse all 4925

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>