ADC/DAC

Evaluating SNR and SFDR in Data Converters

9 min read

Simulating dynamic performance metrics for ADC/DAC models using FFT analysis in Spectre.


Key metrics

  • SNR — signal-to-noise ratio; dominated by quantisation and thermal noise.
  • SFDR — spurious-free dynamic range; the distance from the fundamental to the worst harmonic.
  • THD — total harmonic distortion; sum of harmonic power vs fundamental.
  • ENOB — effective number of bits: ENOB = (SINAD − 1.76) / 6.02.

Setting up the FFT testbench

Use a coherent input: choose the input frequency so that an integer number of cycles fits exactly in the FFT window (avoids spectral leakage). For a 1 MS/s ADC with 1024-point FFT, use fin = 97 · fs / 1024 ≈ 94.7 kHz.

Running the Spectre simulation

Load adc_fft_tb.scs from the package. The testbench uses the adc_ideal behavioural model first to validate your setup, then substitutes the full transistor-level model. Post-processing scripts in matlab/adc_fft.m compute SNR, SFDR, and THD automatically.

Interpreting results

Our 12-bit SAR ADC model achieves SNR ≈ 72 dB and SFDR ≥ 85 dBc at Nyquist. If your simulation shows lower SNR, check your input amplitude — overdriving the reference degrades linearity significantly.