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.