The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Apr 20th, 2024, 3:55am
Pages: 1
Send Topic Print
How to calculate SNR & SNDR in cadence spectre? (Read 28553 times)
chungmnig
Community Member
***
Offline



Posts: 37

How to calculate SNR & SNDR in cadence spectre?
Apr 08th, 2006, 11:39pm
 
Hi~~~

I design a sigma delta ADC , and simulate it power spectrum density like attached file.
How do i calculate the SNR and SNDR in cadence spectre environment?
Is SNR only just look the picture to find difference between highest and noise floor ?

thanks~~!!
Back to top
 

Screenshot-87.png
View Profile   IP Logged
sheldon
Community Fellow
*****
Offline



Posts: 751

Re: How to calculate SNR & SNDR in cadence spectre
Reply #1 - Apr 9th, 2006, 4:36pm
 
Chungming,

  There are currently no standard calculator functions for SNR
and SINAD. You will need to write your own calculator functions
to implement the functions. One other option would be to dump
the FFT magnitudes to Excel and perform the calculation there.

Calculating SINAD is easy you just
need to sum up all the FFT bins in the band of interest. Calculating
SNR and THD are more complex because you need to account for
frequency folding due to sampling, that is the distortion tones
are aliased back into the Nyquist bandwidth need to be correctly
accounted for in the calculation.
Back to top
 
 
View Profile   IP Logged
chungmnig
Community Member
***
Offline



Posts: 37

Re: How to calculate SNR & SNDR in cadence spectre
Reply #2 - Apr 10th, 2006, 12:21am
 

thanks  sheldon
I think i prefer using excel to calculate it , because i hve already had the FFT magnitude from wavescan table.
But i am curious the distinction between SINAD and SNDR , i feel there are almost the same.
And could you please tell me where i can find the code for calculate SNR and SNDR or what reference i can see.
thanks a lot~~~!!
Back to top
 
 
View Profile   IP Logged
sheldon
Community Fellow
*****
Offline



Posts: 751

Re: How to calculate SNR & SNDR in cadence spectre
Reply #3 - Apr 10th, 2006, 1:33am
 
Chungming,

  SNR is Signal to Noise Ratio and does not include distortion
  SINAD is Signal to Noise and Distortion Ratio, also called, SNDR

  You will need to perform the calculations in the power domain
   or use RSS in the voltage domain.  Measure the power in the
   Fundamental, at the input frequency, and the total power.

  SINAD = 10 log | (Fundamental) / ( Total -Fundamental)|

  Use SINAD when calculating effective number of bits

  SNR is more difficult since you need to account for the distortion
  tones, 2*fin, 3*fin, ...

   SNR  = 10 log | ( Fundamental) / ( Total - Fundamental - Distortion)|

   Normally transient analysis only includes numerical noise and shaped
quantitazation noise. You will need to use Spectre's transient noise analysis
to include the effect of device noise on the SNR. You will also need to
create a "noisy" clock, use Verilog-A, to model the effect of clock jitter on
SNR and SINAD.  

Also, there is one other option, you can calculate the SINAD directly
using the Spectre's Fourier Analysis.  It is very accuracte but has two
limitations,
1) It is uses the Rectangular Window function, for a Sigma Delta
   you should use a windowing function. You can use Verilog-A
   to create your window function so this is not a big issue.
2) The analogLib implementation of the four component is incomplete
    so you will either need to run from the command line or edit  the
    CDF to add complete syntax to the component.

                                                                   Sheldon
Back to top
 
 
View Profile   IP Logged
chungmnig
Community Member
***
Offline



Posts: 37

Re: How to calculate SNR & SNDR in cadence spectre
Reply #4 - Apr 10th, 2006, 4:51am
 
Hi~~  sheldon
I understand your suggest~~~
In calculator i can find snr function and it has many window function  ex: hamming , blackman .....
why you say it noly rectangular?
but except using retangular window , the SNDR result is very bad with other window function just about 11dB


I have another question about spectre calculator:
why i use spectre calculator function "psd" to plot PSD is differ from just only use fft function?
It seems  (fft reult)*2 =( psd result).
And i go to find power spectrum density theory in book, it seems the psd fuction is correct, is it?

thanks~~
Back to top
 
 
View Profile   IP Logged
gitarrelieber
Junior Member
**
Offline



Posts: 12
Villach
Re: How to calculate SNR & SNDR in cadence spectre
Reply #5 - Apr 11th, 2006, 4:18am
 
I use the fourier and fourier2ch components in the analogLib to calculate the SFDR and THD. The component will automatically invoke a FOURIER analysis and deliver the nonlinearity in term of THD. You only need to simulate one period of the sinusoid signal. The result is more accurate than the conventional method with FFT.

To automatically extract the SNR and SNDR, you can use OCEAN function of Cadence. It is actually very easy to program.
Back to top
 
 
View Profile   IP Logged
dafijido
New Member
*
Offline



Posts: 1

Re: How to calculate SNR & SNDR in cadence spectre?
Reply #6 - Apr 14th, 2013, 1:22pm
 
gitarrelieber,

Could you elaborate more on OCEAN script to determine SNR/SNDR(SINAD)/SFDR all the parameters required to determine effective number of bits (ENOBs) for the delta sigma ADCs?

Thank you!
Back to top
 
 
View Profile   IP Logged
sheldon
Community Fellow
*****
Offline



Posts: 751

Re: How to calculate SNR & SNDR in cadence spectre?
Reply #7 - May 23rd, 2013, 10:21pm
 
One comment,

  Gita is correct about the Fourier component, however, the Fourier
component does not support windowing. If you simulate a Delta Sigma
Converter and analyze the results with the Fourier, you will need to
include a window function in the simulation. You can use Verilog A
to create a window function behavioral model, then the model to
filter the Converter output before the Fourier component.

                                                                         Sheldon
Back to top
 
 
View Profile   IP Logged
ali_kourani
New Member
*
Offline



Posts: 5

Re: How to calculate SNR & SNDR in cadence spectre?
Reply #8 - Jun 16th, 2013, 4:35pm
 
hello All
I hope u guys don't mind reviving the post in 2013 Smiley

I have a Question , I am doing a behavioral simulation on cadence for 2nd order switched cap sigma delta modulator,
I don't get the required 40 slope in the PSD
according to Schreier " understanding sigma delta ", it is best to use number of points for FFT = 64*OSR using a hann window
OSR = 256, FFT point = 2^13 , fsampling = 2.56KHz ,
signal is DC (PTAT and CTAT volatges with conversion time = 0.1s )

attached is the the PSD plot
I really don't know what is the problem
the 2 opamps, comparator and switches are designed using veriloga
Back to top
 

Screenshot-2_004.png
View Profile   IP Logged
sheldon
Community Fellow
*****
Offline



Posts: 751

Re: How to calculate SNR & SNDR in cadence spectre?
Reply #9 - Jun 17th, 2013, 10:55pm
 
Ali,

 You might try using log for the x axis, that will make the results
look a little better. However, there is a large tone everywhere. Not
sure about the source, low order delta-sigma with dc input?

                                                                  Sheldon
Back to top
 
 
View Profile   IP Logged
ali_kourani
New Member
*
Offline



Posts: 5

Re: How to calculate SNR & SNDR in cadence spectre?
Reply #10 - Jun 18th, 2013, 2:07am
 
it is 2nd order sigma delta (incremental ADC)
and the input is PTAT (DC)
the tones are every 10Hz ( the reset period of the integration cap to take new sample= 0.1 sec- BW of the DC signal)
ie : Time of conversion = 0.1sec

is there any comments about the way I do the windowing in the previous source ?

Regards,
Back to top
 
 
View Profile   IP Logged
sheldon
Community Fellow
*****
Offline



Posts: 751

Re: How to calculate SNR & SNDR in cadence spectre?
Reply #11 - Jun 18th, 2013, 7:56am
 
Ali,

Some comments:

1) If you plot on a logarithmic scale the results will look better

2) Your circuit has a problem at low frequencies the transfer function
    continue to decrease as frequency decreases. In your case the
    transfer function flattens out. So there is a problem with your
    design that is preventing you from achieving the result you
    are expecting to see.

3) Is your sampling frequency 10Hz or 2.56kHz? Or why do you
   need the external S/H in this case? Since your trying to debug
   a problem, why don't you use a fixed input and skip the
   extra S/H to avoid the spikes everywhere, it will make it
   easier to identify and correct the issue.

4) 64 points * OSR = 64 * 256 = 2^6 * 2^8 = 2^14 = 16384
   in this case there are other problems so this is not really
   relevant
Back to top
 
 
View Profile   IP Logged
ali_kourani
New Member
*
Offline



Posts: 5

Re: How to calculate SNR & SNDR in cadence spectre?
Reply #12 - Jun 18th, 2013, 9:29am
 

attached is the ct. I am implementing
it's IDC (incremental data converter) not a conventional sigma delta due to the reset switches (not a continuous running ADC)
all the opamp are veriloga
sampling frequency is 2560 Hz
reset period = 100ms
OSR= 256

may that reset effect has something to do with psd ?

I 'll consider ur notes
Regards,
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.