The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Analog Verification >> Analog Performance Verification >> ADC verification for ENOB close to Nyquist frequency
https://designers-guide.org/forum/YaBB.pl?num=1340177753

Message started by weber8722 on Jun 20th, 2012, 12:35am

Title: ADC verification for ENOB close to Nyquist frequency
Post by weber8722 on Jun 20th, 2012, 12:35am

Hi,

in Cadence ADE calculator the spectrumMeas function is available to get the ENOB of an ADC with sine drive :). It works fine for finput<<fclk, but close the fclk/2 it delivers completely wrong results :-?.
Maybe it is a general problem to get ENOB e.g. at 200MHz with 500MHz clock, because you have 2.5 samples only to calculate ENOB (OK you can run a bit longer and take 3 samples).
These samples I can pass through an ideal 250MHz low-pass and get a continous signal for frequency calculation. But in simulation this would take a lot of time, so I wonder what would be the correct mathematical way? Does anybody has C or matlab or veriloga or skill code to do this?

Bye Stephan

Title: Re: ADC verification for ENOB close to Nyquist frequency
Post by ywguo on Jun 25th, 2012, 7:06pm

Hi Stephan,

It is glad to know that calculator has a function for ADC performance evaluation. I found the following information in Virtuoso Visualization and Analysis XL User Guide, Product Version 6.1.5 May 2012.


Quote:
spectrumMeas

Calculates Signal-to-Noise-and-Distortion Ratio (SINAD), Spurious Free Dynamic Range (SFDR), Effective Number of Bits (ENOB), and Signal-to-Noise Ratio (without distortion) by using discrete Fourier transform of the clipped portion of any given input signal.

The spectrum measure is used for characterizing A-to-D converters and is typically supported for transient simulation data.

The spectrum function is available only in the SKILL mode.
ParagraphBullet
     Signal is signal to be measured.
ParagraphBullet
     Start Time is the time to start clipping the signal in time domain.
ParagraphBullet
     End time is the time to end clipping in time domain.
ParagraphBullet
     Number of Samples is the number of sampled points used for the FFT.
Valid values: Any integer power of two greater than zero. For a value that is not a power of two, the function rounds it up to the next closest power of two.
Default value: Number of data points in the Signal.
ParagraphBullet
     Number of Noise bins is the number of noise bins where the size of one bin is the reciprocal of the data window width. For example, 1 ms of transient data creates a bin size of 1 kHz.
Valid values: Any integer power of two greater than or equal to zero.
Default value: 0, implying that no signal is spilling into the bins. A frequency band of bin-size times the number of bins is calculated and adjusted as a function of the selected window. Frequency components in each band to the left and right of the fundamental or the harmonics are set to zero and do not contribute to any output result.
ParagraphBullet
     Start Frequency is the lower limit of frequency range for the spectrum measures. Default value: First frequency point of the FFT.
ParagraphBullet
     End Frequency is upper limit of frequency range for the spectrum measures.
Default value: Last frequency point of the FFT.
ParagraphBullet
     Window Type is the windowing function applied to o_waveform.
Valid values: Blackman, Cosine2, Cosine4, ExtCosBell, HalfCycleSine, HalfCycleSine3, HalfCycleSine6, Hanning, Hamming, Kaiser, Parzen, Rectangular, and Triangular.
Default value: Rectangular.
ParagraphBullet
     ADC Span is the full-scale span ignoring any DC offsets. This is used in ENOB calculation.
Valid values: Any floating point number.
Default value: If ADC Span is not specified or is nil, it is assumed to be 0 and is taken to be the peak-to-peak value of the fundamental.
ParagraphBullet
     Measure Type is Result specifier.
Valid values: sinad, sfdr(db), enob, and snhr.
Default value: sinad


What is your product version? How many samples do you use for measuring?

Best Regards,
Yawei

Title: Re: ADC verification for ENOB close to Nyquist frequency
Post by weber8722 on Jul 4th, 2012, 5:40am


Hi Yawei,

thanks for response. I am using ic615-isr11. I think the bad enob calculation comes because only few points will be hit close to Nyquist frequency. The worst result I got at fin=fNyquist/2=fclk/4. Here 4 points are taken, and you have no benefit in using multiple periods - you just simulate the same stull in the next period.
Here spectrumMeas gives me something like 20 as enob for a 6-bit flash-ADC!!!
Using not fNyquist/2 but e.g. 0.9*fNyquist/2 and many many periods is much better - but takes much more simulation time.

Bye Stephan

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