이번 글에서는 ADC 의 Noise Budgeting 하는 방법, 특히 SAR ADC 의 Noise Budgeting 하는 방법에 대하여 알아보겠습니다. 먼저, SAR ADC 의 기본 동작원리를 모르시면 이 글을 이해하기 어렵기 때문에 아래 링크를 클릭하셔서 SAR ADC 기본동작 원리 및 SNDR 및 ENOB을 먼저 공부하시기 바랍니다.
SAR-ADC성능에 영향을 주는 Noise 들은 여러가지가 있지만 Noise Budget 에 주로 사용되는 Noise 및 Error를 열거하면 아래와 같습니다. Error 를 Noise Budget 에 함께 고려하는 이유는 Error를 Noise 와 같이 취급 할 수 있기 때문 입니다.
- Quantization Noise (Error)
- DNL (Differential Non-Linearity)
- CDAC Thermal Noise
- Comparator Input Referred Noise
- Comparator Input Referred Offset
- Sampling Clock Jitter
- THD (Total Harmonic Distortion) by Dynamic Non-Linearity and Gain error
이들 Noise (혹은 Error) 성분을 각각 계산하고 최종적으로 이들의 RMS 합을 구하면 전체 Noise 를 구할 수 있습니다. 그리고 이렇게 구해진 전체 Noise 값과 입력 신호의 RMS 값의 비율을 계산하면 SNDR 과 ENOB 을 구할 수 있습니다. 하나씩 살펴보겠습니다. 양이 좀 많아서 몇 편에 걸쳐서 나누어서 설명을 하도록 하겠습니다.
1. Quantization Noise
앞서 [초급] ADC의 SNR 에서 살펴본 것처럼, N-bit ADC의 Quantization Noise는
Quantization Noise = 1LSB/SQRT(12)
가 됩니다. 여기서 1LSB = VF / 2^N 입니다. 그리고 VF 는 ADC 입력 아날로그 신호의 Full Voltage Swing 입니다. 보통 Differential Peak-to-Peak Voltage Swing 입니다. 예를 들어볼까요?
10-bit 해상도를 가지는 ADC 의 최대 입력 Differential Peak-to-Peak Voltage Swing 이 1V 라고 하면, 이 ADC 의 Quantization Noise 는 아래와 같이 계산 됩니다.
1 LSB = 1 / 2^10 = 1 / 1024 가 되니까,
Quantization Noise = 1 LSB / SQRT(12) = (1/1024) / SQRT(12) = 2.82E-04 Vrms
그리고 이 값을 dB 로 변환하면, 20*LOG(2.82E-04) = -71 dB 가 됩니다.
2. DNL
DNL 은 ADC 의 Non-Linearity Error 입니다. DNL 에 대한 자세한 설명은 다음에 하기로 하고 일단, 자세한 것은 Walt Kester 책 chapter2를 참조하세요. DNL 은 일종의 Quantization Noise의 형태로 생각할 수 있습니다. 이상적인 경우, DNL 값은 ‘0’ 이 되어야 하지만, ADC 의 비선형성으로 인하여 ‘0’ 이 되지 못합니다. 일반적으로 Quantization Noise 와 함께 계산을 해서 Noise 로 취급하여 아래와 같이 계산할 수 있습니다.
Quantization and DNL noise = (1+DNL)*LSB / SQRT(12)
위에서 Quantization Noise 만을 생각했을 때는 DNL=0 인 경우가 됩니다. 예를 들어, N=10-bit, VF=1V, 그리고 DNL = 0.5 LSB 인 경우, Quantization 과 DNL 을 함께 고려한 Noise 는 아래와 같이 계산됩니다.
Quantization and DNL noise = (1+0.5)*(1/2^10) / SQRT(12) = (1.5/1024) / SQRT(12) = 4.23E-04 Vrms
그리고 이 값을 dB 로 변환하면, 20*LOG(4.23E-04) = -67.48 dB 가 됩니다.
3. CDAC Thermal Noise
CDAC 의 Thermal Noise 는 SAR- ADC 내부의 CDAC 의 전체 Capacitor 크기로 결정되며 그 값은 다음과 같습니다.
Thermal Noise (Vrms) = SQRT(KT /C) 여기서,
C = CDAC 의 전체 Capacitor 크기, K = Boltzmann’s constant (1.38E-23 J/K) 이고, T= 절대온도 입니다.
예를 들어, 10-bit SAR-ADC의 Unit Cap Size=2fF 라고 하면, CDAC 의 전체 Capacitor 크기는
C = 2*2^10*2f = 2 * 1024 * 2f = 4.096pF 가 되고, 상온 섭씨 25도 에서 Thermal Noise 를 계산하면 다음과 같습니다.
Thermal Noise = SQRT(1.38E-23 * (25+273) / 4.096p) = 3.17E-05 Vrms
그리고 이 값을 dB 로 변환하면, 20*LOG(3.17E-05) = -90 dB 가 됩니다.
식에서 보는 것처럼, CDAC 의 Thermal Noise를 줄이려면 C 값을 크게 해야 합니다. 설계 시작에서 CDAC의 Thermal Noise 는 Quantization Noise 보다 작게 Budget을 잡고 시작하면 좋습니다.
다음 글에서는 SAR-ADC 의 핵심 블럭중에 하나인 비교기, 특히 Dynamic Latch 구조의 비교기에 존재하는 Noise 와 Offset 에 대하여 살펴보겠습니다. SAR-ADC 의 가장 핵심이 되는 블럭이 바로 비교기 입니다. Noise 뿐 만 SAR-ADC 의 속도 그리고 전력소모의 가장 큰 영향을 주는 블록입니다.