발진기와 PLL
10장에서는 루프 이득이 −1에 닿지 않도록 온 힘을 다해 피했다. 이 장은 정반대에서 출발한다. 음의 합산 부호까지 포함한 한 바퀴 전체 전달을 일부러 정확히 +1(한 바퀴 돌면 크기 1, 위상 360°)로 만들면 입력 없이도 스스로 흔들리는 발진기가 된다. 그런데 혼자 흔들리는 발진기의 주파수는 공정·전압·온도에 따라 수십 % 흔들리고, 위상은 시간이 갈수록 제멋대로 떠내려간다. 그래서 깨끗한 수정 기준 클록에 발진기를 묶어 두는 피드백 루프, 위상 고정 루프(Phase-locked loop, PLL)가 필요하다. AB-1은 4 MHz 기준에서 SAR ADC와 디지털이 쓸 32 MHz를 만든다.
- 바르크하우젠 조건을 발진기 설계 조건으로 읽고, 링 발진기의 주파수 \(f = 1/(2N\tau_d)\)를 엔진 과도 해석과 비교한다.
- LC 탱크의 손실을 교차 결합 쌍의 음저항 \(-2/g_m\)이 보충하는 조건(\(g_m R_p > 1\))과 진폭이 꼬리 전류로 제한되는 이유를 안다.
- VCO 조정 곡선에서 \(K_{VCO}\)를 읽고, 그것이 루프 이득의 한 인자임을 안다.
- 위상 잡음 \(\mathcal{L}(\Delta f)\)와 지터의 관계, 자유 발진 지터가 누적되는 이유, PLL 루프 대역이 적분 지터를 정하는 방식을 설명한다.
- 위상 주파수 비교기(PFD)와 전하 펌프가 위상차를 전류 펄스로 바꾸는 과정을 타이밍도로 읽는다.
- 2형 PLL(전하 펌프 + R·C1·C2 루프 필터)의 개루프 보드 선도에서 대역과 위상 여유를 계산하고, 대역을 \(f_{ref}/10\) 아래로 두는 이유를 안다.
- 클록 지터가 ADC SNR을 \(-20\log_{10}(2\pi f_{in}\sigma_t)\)로 제한하는 것을 FFT로 확인한다.
발진 조건: 바르크하우젠의 반대편
10장의 결론은 "루프 이득 \(L = A\beta\)가 −1에 닿으면 발진한다"였다. 증폭기 설계자에게 이것은 피해야 할 사고다. 발진기 설계자에게는 목표다. 입력이 없는 루프에서 어떤 주파수 \(f_0\)의 신호가 한 바퀴 돌아 같은 크기, 같은 위상으로 돌아오면 그 신호는 스스로 유지된다. 이것이 바르크하우젠 조건(Barkhausen criterion)이다.
가장 단순한 예가 링 발진기(Ring oscillator)다. 인버터 N개(N은 홀수)를 고리로 이으면 직류에서 루프는 반전(−1)이라 안정한 동작점이 없다. 어느 마디가 올라가면 한 바퀴 돌아 그 마디를 끌어내린다. 전이(에지)가 고리를 따라 계속 돌고, 한 단의 지연이 \(\tau_d\)이면 에지가 한 바퀴 도는 데 \(N\tau_d\), 위로 한 번·아래로 한 번 돌아야 한 주기이므로 주파수는 아래와 같다.
아래 시뮬레이터는 엔진(AN.circuit)으로 실제 CMOS 인버터 고리를 과도 해석한다. 고리 위 원 색이 각 마디 전압이고, 아래 스코프는 연속한 세 마디의 파형이다. 단 수와 부하 커패시터를 바꿔 보라.
홀수 인버터 고리에서 에지가 돈다
짝수 단이 발진하지 않는 것은 바르크하우젠 위상 조건이 직류 근처에서 이미 만족되지 않기 때문이다. 짝수 단 고리의 직류 루프 이득은 양수(+)이므로 양의 피드백으로 한쪽에 붙어 버린다(래치). 홀수 단은 직류에서 −1이고, 각 단의 극점이 나머지 180°를 채우는 주파수에서 발진한다. 3단이면 단마다 60°씩이다.
LC 발진기와 음저항
인덕터 L과 커패시터 C를 나란히 이으면 에너지가 둘 사이를 오가며 \(f_0 = 1/(2\pi\sqrt{LC})\)로 흔들린다. 커패시터에 전기 에너지 \(\tfrac12 Cv^2\)가 가득하면 인덕터 전류는 0이고, 4분의 1주기 뒤에는 전부 인덕터의 자기 에너지 \(\tfrac12 Li^2\)가 된다. 실제 인덕터는 저항(금속 손실)이 있고, 이것을 탱크에 나란한 등가 저항 \(R_p = Q\omega_0 L\)로 바꿔 쓰면 매 주기 에너지의 일부가 \(R_p\)에서 열로 사라진다. 그대로 두면 진동은 감쇠한다.
손실을 보충하는 방법이 음저항(Negative resistance)이다. 두 NMOS의 게이트와 드레인을 엇갈려 묶은 교차 결합 쌍(Cross-coupled pair)은 차동으로 보면 \(-2/g_m\)의 저항처럼 동작한다. 한쪽 드레인이 올라가면 다른 쪽 트랜지스터가 더 켜져 반대쪽을 끌어내리고, 그것이 다시 처음 쪽을 밀어 올리는 양의 피드백이다. 탱크 손실(차동 \(2R_p\))보다 음저항이 세면(\(2/g_m < 2R_p\)) 진동이 자란다.
아래 시뮬레이터는 실제 교차 결합 NMOS 쌍, 인덕터 두 개, 커패시터, 손실 저항을 엔진에 넣고 작은 불균형(20 mV)에서 과도 해석으로 시동한다. 위의 막대는 커패시터와 인덕터 에너지가 오가는 모습이다. 꼬리 전류를 내려 \(g_m\)을 \(1/R_p\) 아래로 떨어뜨려 보라.
음저항이 탱크 손실을 이기면 진동이 자란다
스코프에서 본 것처럼 진폭이 무한히 자라지 않는 이유는 비선형이다. 작은 신호에서는 \(g_m R_p > 1\)이라 자라고, 진폭이 커지면 쌍이 완전히 스위칭해 꼬리 전류 전부가 한쪽으로 흘러 그 이상 전류를 낼 수 없다. 평균적으로 본 실효 \(g_m\)이 \(1/R_p\)까지 줄어드는 진폭에서 멈춘다. 그래서 LC 발진기의 진폭은 \(I_{tail}R_p\)로 정해지는 전류 제한 영역(Current-limited regime)에 있고, 더 키우면 출력이 전원에 닿는 전압 제한 영역으로 넘어간다.
전압 제어 발진기: 조정 곡선과 KVCO
PLL은 발진기의 주파수를 전압으로 움직일 수 있어야 한다. 이런 발진기를 전압 제어 발진기(Voltage-controlled oscillator, VCO)라 한다. 링 발진기라면 인버터의 전원(또는 전류원)을 제어 전압 \(V_c\)로 조절하면 되고, LC라면 커패시터 일부를 전압으로 값이 바뀌는 버랙터(Varactor)로 바꾸면 된다. \(V_c\) 대 주파수 곡선을 조정 곡선(Tuning curve)이라 하고, 그 기울기가 VCO 이득이다.
아래에서는 5단 링 발진기의 전원을 제어 전압으로 쓰는 가장 단순한 VCO를 엔진으로 하나씩 과도 해석해 조정 곡선을 그린다. 곡선 위를 끌면 그 점의 접선 기울기 \(K_{VCO}\)가 보인다.
VCO 조정 곡선과 KVCO
실제 PLL용 링 VCO는 전원을 직접 움직이지 않고, \(V_c\)를 전류로 바꿔 인버터에 공급하는 전류 굶김(Current-starved) 구조나 레귤레이터를 써서 곡선을 곧게 펴고 전원 잡음을 막는다. 이 장의 PLL 시뮬레이터는 조정 곡선을 \(f = 10\ \text{MHz} + 25\ \text{MHz/V}\cdot V_c\)인 직선(0~1.8 V에서 10~55 MHz)으로 단순화한다. 32 MHz는 \(V_c\) ≈ 0.88 V, 범위의 한가운데다.
위상 잡음과 지터
이상적인 클록은 에지가 정확히 \(T\)마다 온다. 실제 발진기의 트랜지스터와 저항 잡음은 에지를 조금씩 이르게 또는 늦게 민다. 시간 영역에서 이 흔들림을 지터(Jitter), 주파수 영역에서 반송파 옆에 퍼진 잡음 스펙트럼을 위상 잡음(Phase noise)이라 한다. 같은 현상의 두 얼굴이다.
자유 발진기에서 중요한 성질은 지터가 쌓인다는 것이다. 매 주기의 오차가 독립이라도, k번째 에지의 위치는 그 앞 k주기 오차의 합이므로 기준 에지에서 멀어질수록 표준편차가 \(\sqrt{k}\)배로 자란다(랜덤 워크). 발진기는 자기 위상을 되돌릴 기준이 없기 때문이다. PLL은 이 누적을 기준 클록으로 끊어 준다. 아래에서 에지를 겹쳐 그려 보라.
에지를 겹쳐 그리면 지터가 보인다
주파수 영역에서는 반송파 \(f_0\)에서 \(\Delta f\)만큼 떨어진 1 Hz 대역의 잡음 전력을 반송파 전력과 비교한 \(\mathcal{L}(\Delta f)\)(dBc/Hz)로 위상 잡음을 적는다. 리슨(Leeson)의 모형에 따르면 백색 잡음이 위상을 흔드는 발진기의 위상 잡음은 \(1/\Delta f^2\)(−20 dB/dec)로 떨어진다. 위상은 주파수 잡음의 적분이라 낮은 주파수에서 커지기 때문이다. 시간 영역의 "\(\sqrt{k}\)로 쌓이는 지터"가 주파수 영역의 "\(1/\Delta f^2\)"다. 1/f 잡음이 섞이면 가까운 쪽은 \(1/\Delta f^3\)으로 더 가파르다.
PLL로 묶으면 출력 위상 잡음은 둘로 나뉜다. 단위 이득 교차 주파수 \(f_c\) 안쪽에서는 루프가 VCO 잡음을 눌러 기준·전하 펌프 잡음(\(N\)배로 커진 것)이 보이고, 바깥쪽에서는 루프가 따라가지 못해 VCO 잡음이 그대로 나온다. 루프 대역을 끌어 적분 지터가 최소가 되는 곳을 찾아보라.
루프 대역이 적분 지터를 정한다
AB-1 기본값(VCO −126 dBc/Hz @ 1 MHz, 대역 내 바닥 −126 dBc/Hz, \(f_c\) ≈ 185 kHz)에서 1 kHz~16 MHz 적분 지터는 약 17 ps rms다. 최적 대역은 VCO 잡음과 대역 내 잡음이 만나는 곳 근처에 있고, 이 예에서는 수백 kHz다. 그러나 대역을 올리는 데는 상한이 있다. 루프는 기준 에지에서만 위상을 비교하는 이산 시간 시스템이기 때문이다.
위상 비교기와 전하 펌프
PLL의 첫 블록은 기준 클록 REF와 나눠진 VCO 클록 DIV의 위상을 비교한다. 가장 단순한 비교기는 XOR 게이트다. 두 클록이 50% 듀티일 때 XOR 출력의 평균은 위상차에 비례한다. 하지만 위상차가 0~180° 범위에서만 단조이고(삼각형), 주파수가 다르면 평균이 0 근처에서 맴돌아 주파수 차이를 알려 주지 못한다.
오늘날 표준은 D 플립플롭 두 개와 AND 게이트로 만든 위상 주파수 비교기(Phase-frequency detector, PFD)다. REF 에지가 먼저 오면 UP을 켜고, DIV 에지가 오면 DN을 켠다. 둘 다 켜지면 곧바로 둘 다 끈다. 그래서 UP 펄스 폭이 정확히 위상차에 비례하고, ±360° 전 범위에서 단조이며, 주파수가 다르면 한쪽 펄스만 계속 나와 주파수를 끌어 맞춘다. 전하 펌프(Charge pump, CP)는 UP 동안 \(+I_{CP}\), DN 동안 \(-I_{CP}\)를 루프 필터에 흘려 넣는다.
아래 타이밍도에서 DIV 파형을 좌우로 끌어 위상차를 바꿔 보라. 맨 아래는 루프 필터 커패시터(여기서는 C1만) 전압이 기준 주기마다 계단처럼 쌓이는 모습, 오른쪽은 평균 출력 대 위상차 특성이다.
위상차가 전류 펄스 폭이 된다
위상차가 0 근처일 때 실제 PFD는 UP·DN이 동시에 아주 짧게(리셋 지연만큼) 켜지게 설계한다. 그렇지 않으면 매우 작은 위상차에서 펄스가 너무 좁아 전하 펌프가 켜지지 못하는 데드 존(Dead zone)이 생겨, 그 안에서 위상이 제멋대로 떠다닌다. 대가로 UP·DN 전류의 부정합이 매 기준 주기 작은 전하를 남겨 \(V_c\)에 기준 주파수 리플(기준 스퍼(Reference spur))을 만든다.
루프 필터와 루프 동역학
전하 펌프 전류를 커패시터 하나에 넣으면 전류가 적분되고, VCO도 주파수를 위상으로 적분하므로 개루프에 적분기가 두 개(원점 극점 둘)다. 위상이 직류에서 이미 −180°라 이대로 닫으면 위상 여유가 0, 즉 발진한다. 그래서 커패시터 \(C_1\)과 직렬로 저항 \(R\)을 넣어 영점 \(1/(2\pi RC_1)\)을 만들고, \(R\)에서 생기는 전압 계단(\(I_{CP}R\))을 누그러뜨리려 작은 \(C_2\)를 나란히 단다. 이것이 전하 펌프 PLL의 표준 2형(Type-II) 3차 루프다.
AB-1 값을 넣어 보자. \(I_{CP}\) = 50 µA, \(K_{VCO}\) = 25 MHz/V, \(N\) = 8, \(R\) = 8 kΩ, \(C_1\) = 400 pF, \(C_2\) = 30 pF이면 \(f_c\) ≈ 50 µ × 25 M × 8 k/(2π × 8) × 0.93 ≈ 185 kHz, \(f_z\) ≈ 50 kHz, \(f_p\) ≈ 713 kHz다. 아래에서 루프 필터와 전류를 바꿔 개루프 보드 선도와 위상 여유를 확인하라.
2형 PLL의 개루프 보드 선도
2형 루프의 장점은 정상 상태 위상 오차가 0이라는 것이다. \(C_1\)이 적분기라 위상차가 남아 있으면 전류가 계속 흘러 \(V_c\)를 고친다. 그래서 락이 된 뒤 REF와 DIV의 에지는 (이상적으로) 정확히 같은 시각에 온다.
주파수 합성과 클록 지터의 값
PLL은 \(f_{out} = N f_{ref}\)를 만든다. 정수 \(N\)만 쓰는 정수 N 합성기(Integer-N synthesizer)의 주파수 간격은 \(f_{ref}\)다. AB-1처럼 32 MHz 하나만 필요하면 \(N\) = 8로 충분하다. 그러나 무선 송수신기처럼 채널 간격이 200 kHz인데 출력이 2.4 GHz라면 \(f_{ref}\) = 200 kHz, \(N\) = 12,000이 되어, 대역이 \(f_{ref}/10\) = 20 kHz로 묶이고 \(N^2\)배로 커진 기준 잡음이 출력을 덮는다. 정수 N의 근본 한계다.
분수 N 합성기(Fractional-N)는 나눗수를 \(N\)과 \(N+1\) 사이에서 바꿔 가며 평균 나눗수를 \(N + \alpha\)(α는 분수)로 만든다. 그러면 \(f_{ref}\)를 크게 잡아도 간격이 얼마든지 촘촘해진다. 단순한 누산기로 나눗수를 바꾸면 위상 오차가 톱니 모양으로 쌓였다 풀려 \(\alpha f_{ref}\)의 배수에 분수 스퍼가 생긴다. 이것을 2차·3차 ΔΣ 변조기(17장)로 바꿔 주면 나눗수 선택의 양자화 오차가 높은 주파수로 밀려나고(잡음 성형), 루프 필터가 그것을 걸러 낸다. ΔΣ ADC가 1비트 양자화기로 16비트를 얻는 것과 같은 생각을 주파수에 쓴 것이다.
| 방식 | 주파수 간격 | 대역 상한 | 대가 |
|---|---|---|---|
| 정수 N (AB-1) | fref = 4 MHz | ≈ 400 kHz | 간격이 거칠다. 한 주파수만 쓰면 문제없다 |
| 정수 N, 촘촘한 간격 | fref 작게 | fref/10로 낮아진다 | N이 커져 대역 내 잡음 20 log N dB 증가, 느린 락 |
| 분수 N + 누산기 | fref/2k | ≈ fref/10 | 분수 스퍼 |
| 분수 N + ΔΣ | fref/2k | ≈ fref/10 | 높은 주파수의 성형된 양자화 잡음, 전하 펌프 선형성 요구 |
이제 클록 지터가 왜 중요한지 숫자로 보자. ADC가 입력 \(A\sin(2\pi f_{in}t)\)를 표본화하는 순간이 \(\delta t\)만큼 어긋나면 표본 값은 기울기 \(2\pi f_{in}A\cos(\cdot)\)에 \(\delta t\)를 곱한 만큼 틀린다. 오차 전력을 신호 전력과 비교하면 지터만으로 정해지는 SNR 한계가 나온다.
아래 계산기는 식과 함께, 실제로 지터를 준 시각에 사인파를 4096점 표본화해 FFT(AN.sinad)로 SNR을 잰다. 두 값이 맞는지, 12비트 ADC의 이상 SNR 74 dB와 어떻게 겹치는지 보라.
지터 → ADC SNR 계산기
AB-1의 ADC는 센서 신호(10 kHz 이하)를 주로 보지만, 사양은 1 MS/s의 나이퀴스트 근처 500 kHz 입력에서도 12비트를 요구한다. 74 dB를 깎지 않으려면 지터 한계가 그보다 10 dB 이상 위, 즉 \(\sigma_t\) ≲ 20 ps면 좋다. 지터 10 ps는 약 90 dB 한계로 16 dB의 여유를 남긴다.
PLL 락 시뮬레이터
이제 모든 블록을 한 루프에 넣는다. 아래 시뮬레이터는 PFD의 에지 타이밍을 시간 단계 안에서 보간하고, 전하 펌프 전류를 R·C1·C2 필터에 적분하며, VCO 위상을 누적해 ÷N 에지를 만드는 행동 모형이다. 시작하면 VCO는 \(V_c\) = 0(10 MHz)에서 출발해 주파수를 끌어오고(주파수 획득), 위상을 맞추며 락에 들어간다. 연속 시간 보드 선도가 놓친 것, 즉 \(f_c\)가 \(f_{ref}\)에 다가갈 때의 표본화 불안정과 VCO 범위 끝에서의 포화도 여기서는 그대로 나온다.
PLL 락 시뮬레이터: 4 MHz → N × 4 MHz
시뮬레이터에서 본 세 가지가 PLL 설계의 전부라 해도 과장이 아니다. 루프 대역은 락 속도와 VCO 잡음 억제를 정하고, 위상 여유는 락 과정의 울림을 정하며, 대역의 상한은 \(f_{ref}\)가 정한다. 대역을 키우려고 \(I_{CP}\)나 \(R\)을 올리면 어느 순간 연속 시간 해석이 약속한 PM과 무관하게 루프가 무너진다.
4 MHz → 32 MHz 정수 N PLL: N = 8, fc ≈ 185 kHz, PM ≈ 60°, 지터 약 17 ps → 500 kHz 입력에서 SNR 한계 약 86 dB
AB-1의 SAR ADC(1 MS/s, 변환마다 16+ 클록)와 디지털은 32 MHz가 필요하고, 칩 밖 수정 발진기는 4 MHz다. 그래서 \(N\) = 8인 정수 N 전하 펌프 PLL을 쓴다. VCO는 링 발진기로, \(K_{VCO}\) ≈ 25 MHz/V, 10~55 MHz 범위의 가운데(\(V_c\) ≈ 0.88 V)에 32 MHz가 오게 잡았다. 루프 필터는 \(R\) = 8 kΩ, \(C_1\) = 400 pF, \(C_2\) = 30 pF(\(C_1/C_2\) ≈ 13), \(I_{CP}\) = 50 µA다. 개루프 보드 선도(AN.tf → AN.bodeData)에서 \(f_c\) ≈ 185 kHz ≤ \(f_{ref}/10\) = 400 kHz, PM ≈ 60°이고, 행동 모형에서 10 MHz 출발 락 시간은 약 20 µs다. VCO 위상 잡음 약 −126 dBc/Hz @ 1 MHz, 대역 내 바닥 −126 dBc/Hz를 가정하면 1 kHz~16 MHz 적분 지터는 약 17 ps rms다. 이 지터만으로 정해지는 ADC SNR 한계는 \(-20\log_{10}(2\pi \cdot 500\ \text{kHz} \cdot 17\ \text{ps})\) ≈ 86 dB로, 12비트 이상 SNR 74 dB보다 약 12 dB 위다. 지터 한계가 74 dB와 같아지는 \(\sigma_t\)는 약 63 ps인데 그때 전체 SNR이 3 dB 깎이므로, 그 3분의 1인 20 ps 이하를 목표로 둔다.
핵심 정리
- 발진기는 루프 이득이 한 주파수에서 정확히 1∠360°인 피드백이다(바르크하우젠). 시동에는 |Aβ| > 1, 진폭은 비선형(포화·전류 제한)이 정한다.
- 홀수 인버터 링은 f = 1/(2Nτd)로 발진한다. 짝수는 래치가 된다. 전력은 약 N·CL·VDD²·f.
- LC 발진기는 교차 결합 쌍의 음저항 −2/gm이 탱크 손실을 보충할 때(gmRp > 1) 시동하고, f0 = 1/(2π√LC), 진폭 ≈ (4/π)ItailRp. 링보다 위상 잡음이 좋고 범위가 좁다.
- VCO의 KVCO는 조정 곡선의 기울기이며 루프 이득에 곱해진다. 곡선이 휘면 루프 대역이 Vc에 따라 바뀐다.
- 자유 발진 지터는 √k로 쌓이고(위상 잡음 1/Δf²), PLL은 루프 대역 안에서 그것을 누른다. 적분 지터 σt = √(2∫10𝓛/10 df)/(2πf0)는 루프 대역에 최적점이 있다.
- PFD는 ±2π에서 선형이고 주파수 차도 감지한다. 전하 펌프 평균 전류 = ICP·Δφ/2π. XOR은 0~π에서만 단조다.
- 2형 PLL은 원점 극점 둘 때문에 영점(R·C1)이 필수다. C1/C2 ≈ 13이면 PM ≈ 60°. 표본화 때문에 fc ≤ fref/10로 둔다.
- 지터가 정하는 ADC SNR 한계는 −20log(2πfinσt). AB-1: 약 17 ps, 500 kHz → 약 86 dB.
확인 퀴즈
1. 한 단 지연이 0.2 ns인 인버터 5개로 링 발진기를 만들었다. 발진 주파수에 가장 가까운 것은?
2. 교차 결합 LC 발진기의 탱크 등가 병렬 저항이 각 쪽 Rp = 500 Ω이다. 시동하려면 각 트랜지스터의 gm이 최소 얼마보다 커야 하나?
3. 2형 전하 펌프 PLL에서 루프 필터의 저항 R을 0으로 하면(C1만 남김) 어떻게 되나?
4. 12비트 ADC로 2 MHz 사인파를 표본화한다. 클록 지터가 5 ps rms일 때 지터만으로 정해지는 SNR 한계에 가장 가까운 것은?
5. 기준 4 MHz인 PLL의 루프 대역을 1.5 MHz로 키우려고 ICP를 크게 올렸다. 연속 시간 보드 선도에서는 PM이 55°로 나왔다. 가장 그럴듯한 결과는?