Trong PLL, không phải VCO định sàn phase noise trong băng — mà là reference ×N²
Bài PLL trước hứa sẽ giải thích vì sao reference bị nhân N² khi tính phase noise. Bài này trả nợ đó: đi từ duality jitter↔phase noise, qua cái tích phân ra jitter, tới chỗ lộ ra rằng thứ ồn nhất in-band của con PLL 2.4 GHz không phải VCO mà là reference/CP nhân lên 33.6 dB.
Không spam. Chỉ bài kỹ thuật AMS đáng đọc — gửi qua email khi có bài mới.
Ở bài Loop Dynamics có một câu để lại nợ: “noise từ reference bị nhân lên lần ở output — cái này quan trọng khi tính phase noise, sẽ nói ở bài 3.” Đây là bài 3, và câu đó dẫn thẳng tới một điều phản trực giác.
Hỏi một sinh viên “trong con PLL 2.4 GHz, cái gì định sàn phase noise trong băng?”, câu trả lời gần như luôn là VCO — vì VCO là cái dao động, là chỗ jitter sinh ra. Trực giác đó sai một cách hệ thống. Trong băng loop, VCO bị vòng phản hồi nén xuống; thứ định sàn lại là reference và charge pump, những khối tưởng như sạch, sau khi bị nhân lên . Với thì là +33.6 dB cộng thẳng vào phase noise của một crystal sạch — và bỗng nhiên cái crystal dBc/Hz không còn sạch nữa.
Để tới được kết luận đó cho có gốc rễ, bài này đi từ đầu: jitter và phase noise thật ra là gì (và vì sao chúng là một), làm sao từ đường cong phase noise ra được con số jitter tính bằng giây, phase noise của một oscillator đến từ đâu ở mức device, rồi mới tới chỗ PLL tái phân bố tất cả những thứ đó. Con PLL neo số dùng chung ba bài: MHz, GHz, , MHz.
Mục lục
- Jitter và phase noise — một thứ, hai cách nhìn
- Từ phase noise ra jitter — cái tích phân
- Phase noise đến từ đâu — device noise lên tới oscillator
- PLL tái phân bố noise — và món nợ ×N²
- Loop bandwidth tối ưu — đường U
- Bài học và hệ quả thiết kế
- Tổng kết
1. Jitter và phase noise — một thứ, hai cách nhìn
Lấy một clock lý tưởng: cạnh lên rơi đúng vào Bây giờ cho nó qua mạch thật. Mỗi cạnh không còn rơi đúng chỗ nữa mà xê dịch một chút quanh vị trí lý tưởng. Độ xê dịch đó — đo bằng giây — là jitter. Đó là cách nhìn miền thời gian, và nó là cái mà một kỹ sư digital hay một người đo bằng oscilloscope nhìn thấy.
Cùng cái clock đó, đưa lên một signal source analyzer (SSA — máy chuyên đo phase noise, không phải spectrum analyzer thường: nó dùng cross-correlation hoặc PLL/delay-line discriminator để tách riêng nhiễu pha khỏi nhiễu biên độ và khỏi phase noise của chính máy). Máy này không vẽ phổ theo tần số tuyệt đối mà vẽ theo offset khỏi carrier: trục hoành là khoảng cách tới carrier (từ vài Hz tới hàng chục MHz), còn bản thân carrier nằm ở offset 0 — nó là mốc tham chiếu 0 dBc chứ không phải một vạch trên đường cong, nên trên plot phase noise ta không thấy vạch . Với sóng hoàn hảo, toàn bộ công suất dồn vào carrier và đường tụt xuống rất sâu (offset khác 0 gần như trống). Với clock thật, một phần công suất rò sang các offset lân cận tạo thành chân váy (skirt) — chính cái skirt đó là phase noise, đo bằng dBc/Hz: công suất trên mỗi Hz băng thông tại một offset khỏi carrier, so với công suất carrier. Đó là cách nhìn miền tần số.
Điểm mấu chốt — và là cái luận điểm trung tâm của quyển Sheikholeslami — là hai hình này là cùng một hiện tượng. Cạnh xê dịch trong miền thời gian chính là skirt trong miền tần số; không phải hai nguồn noise khác nhau, mà là một quá trình pha ngẫu nhiên nhìn từ hai phía của biến đổi Fourier. Xê dịch cạnh nhiều hơn thì skirt cao hơn, và ngược lại. Đây là lý do một người làm RF nói “phase noise” còn một người làm SerDes nói “jitter” mà vẫn đang tranh luận về cùng một con số.
Sự phân biệt duy nhất đáng nhớ nằm ở loại jitter mà từng ứng dụng quan tâm. Miền thời gian có ba định nghĩa hay dùng: period jitter (sai lệch của một chu kỳ đơn so với ), cycle-to-cycle jitter (chênh lệch giữa hai chu kỳ liền kề — cái mà mạch số sợ vì nó quyết định timing margin tức thời), và TIE (time interval error) hay long-term jitter — tích luỹ sai lệch pha so với một clock lý tưởng chạy vô hạn, không có gì tự triệt tiêu nên cửa sổ quan sát càng dài thì sai lệch càng lớn. TIE là con số quan trọng với những ứng dụng cần giữ đồng bộ pha trong thời gian dài — ví dụ liên kết dữ liệu tốc độ cao hoặc mạng đồng bộ viễn thông — ở đó phần trôi tích luỹ mới là cái giới hạn hệ thống, chứ không phải jitter của từng chu kỳ riêng lẻ (lý do cụ thể thuộc kiến trúc phía thu, ngoài phạm vi bài này). Ba định nghĩa này ứng với ba cách “lọc” cùng một phổ , và đó là cầu nối sang mục sau.
2. Từ phase noise ra jitter — cái tích phân
Nếu phase noise và jitter là một, phải có công thức đổi qua lại. Có, và nó là một tích phân. Jitter rms (tính bằng giây) lấy từ đường cong phase noise theo:
Đọc công thức này từ phải sang trái. là mật độ công suất pha trên mỗi Hz; tích phân nó theo offset ra tổng công suất pha (phương sai pha, đơn vị rad²); nhân 2 vì skirt có hai bên carrier; căn ra pha rms tính bằng radian; chia cho để đổi radian pha thành giây — vì một radian pha ở tần số tương ứng giây thời gian.
Chi tiết dễ bị bỏ qua nằm ở hai cận và . Con số jitter không có nghĩa nếu không kèm cận tích phân. Đây đúng là cái mà bài kT/C gọi là noise bandwidth ở mức mạch: ở đó tổng noise thermal phụ thuộc băng thông tích phân, ở đây tổng jitter phụ thuộc dải offset tích phân. Cùng một ý tưởng, đổi trục.
Hình dưới cho thấy vì sao cận quan trọng đến thế. Đường xanh là một mẫu với ba vùng dốc khác nhau; đường đỏ là jitter tích luỹ khi ta nới dần cận trên từ trái sang phải, chuẩn hoá theo tổng.
Đường đỏ dựng đứng ở offset thấp rồi bằng phẳng: gần như toàn bộ jitter được tích ra từ vùng tần thấp, nơi cao. Qua khỏi đó, nới cận trên thêm một hay hai decade cũng gần như không thêm jitter, vì sàn phase noise đóng góp công suất không đáng kể trên mỗi decade. Hệ quả thực tế: khi ai đó báo một con số jitter, câu hỏi đầu tiên là “tích phân từ đâu tới đâu”. Một con “100 fs” tích từ 1 kHz tới 100 MHz và một con “100 fs” tích từ 12 kHz tới 20 MHz là hai spec khác hẳn nhau, và với clock cho ADC hay SerDes, chính cái mask tích phân (jitter bandwidth) mới là thứ ràng buộc thật.
và cũng không phải chọn tuỳ ý. Cắt cứng ở một nào đó — như công thức trên viết — thực ra đã đơn giản hoá: hiếm khi là 0 (DC) vì đa số hệ thống có tính highpass với jitter (PLL bám theo pha tham chiếu, CDR bám theo pha tín hiệu tới, nên trôi pha ở tần rất thấp bị vòng bám kéo về chứ không tích luỹ ra ngoài), nhưng độ suy giảm đó không phải một vách cắt phẳng ở một điểm — nó là hàm truyền jitter (jitter transfer function) của chính hệ thống đang dùng clock, tăng dần từ gần 0 rồi bão hoà quanh loop bandwidth. Chuẩn nhất là lấy đủ nhỏ (gần DC) rồi nhân với trong tích phân, thay vì chặt đứt tại một cố định; đặt ngay tại loop bandwidth chỉ là xấp xỉ thô của cách làm đó. thì hay lấy bằng : Nyquist của chính clock đang xét, vì thành phần phase noise ở offset cao hơn không còn tích thêm được vào jitter nhìn thấy ở đầu ra.
Một chú ý về hình dạng: vùng của phase noise tích ra jitter kiểu random-walk — phương sai pha tăng tuyến tính theo thời gian quan sát, nên TIE (long-term) phân kỳ nếu không có gì kéo pha về. Chính vòng phản hồi PLL là cái kéo pha về, và đó là cầu sang phần sau.
3. Phase noise đến từ đâu — device noise lên tới oscillator
Trước khi PLL tái phân bố noise, phải biết mỗi khối tự nó ồn thế nào. Phase noise của một oscillator không phải một loại noise mới — nó là thermal và flicker của transistor, đúng những thứ đã gặp ở mức mạch trong bài op-amp và bài kT/C, chỉ khác là chúng bị up-convert lên quanh tần số dao động và quy thành noise pha.
Mô hình Leeson gói toàn bộ điều đó thành ba vùng dốc trên đường , đi từ offset thấp ra cao:
- Vùng (gần carrier nhất): flicker noise của device bị up-convert. Dốc dB/dec. Đây là chỗ flicker của transistor — cái corner mà op-amp phải kéo dài để đẩy xuống — hiện lại ở dạng phase noise close-in.
- Vùng (thân đường cong): thermal noise của device shape bởi bộ cộng hưởng. Dốc dB/dec. Đây là vùng tích ra random-walk jitter ở mục 2.
- Sàn phẳng (offset xa): noise nền của buffer/đầu ra, không còn shape bởi cộng hưởng.
Con VCO neo số cho cả series đặt tại một điểm trong vùng : dBc/Hz tại offset 1 MHz, dốc dB/dec, sàn dBc/Hz. Từ điểm neo đó suy ra được giá trị ở mọi offset: dốc dB/dec nghĩa là mỗi lần offset ×10 thì tụt 20 dB, nên tại 100 kHz phase noise là dBc/Hz (tệ hơn, gần carrier hơn), còn tại 10 MHz là dBc/Hz (tốt hơn), cho tới khi chạm sàn . Ba con số đó là toàn bộ VCO mà ta cần để dựng phần sau.
Điều đáng giữ lại: một oscillator “ồn” không có nghĩa nó có nguồn noise lạ — nó có đúng thermal và flicker như mọi mạch analog khác, chỉ là ở dạng đã up-convert. Vì thế cùng những đòn hạ noise ở mức mạch (tăng cho thermal, kéo dài cho flicker) cũng hạ phase noise của VCO. Bài này không mổ thiết kế VCO; điểm cần cho lập luận PLL chỉ là: VCO có đường dốc xuống, cao gần carrier và thấp ở offset xa.
4. PLL tái phân bố noise — và món nợ ×N²
Giờ ghép các khối vào vòng và trả nợ câu hứa ở bài Loop Dynamics. PLL có nhiều nguồn noise, và điều quan trọng là vòng kín lọc mỗi nguồn theo một kiểu khác nhau tuỳ nó đi vào ở đâu.
Reference (crystal) và charge pump / phase detector đi vào ở đầu vào của vòng. Với chúng, vòng kín là một low-pass: trong băng loop chúng đi thẳng ra output, ngoài băng bị lọc. Nhưng — và đây là món nợ — trên đường từ đầu vào ra output chúng đi qua khối chia ngược, nên hàm truyền từ reference tới output có gain , và công suất phase noise bị nhân . Với số hạng đó là dB; ghép với crystal dBc/Hz và charge pump quy đổi dBc/Hz, sàn trong băng ở output rơi xuống dBc/Hz. (Suy ra công thức này từ hàm truyền closed-loop — xem phần “Noise transfer function” ở tool, bài này chỉ lấy kết quả.)
VCO thì ngược lại: nó đi vào ở đầu ra của vòng, nên vòng kín với nó là một high-pass — trong băng loop, vòng phản hồi phát hiện lệch pha VCO và sửa, nén phase noise xuống; ngoài băng loop mất tác dụng và VCO chạy tự do. Tại MHz đường VCO tự do đang ở dBc/Hz, còn trong băng nó bị nén xuống dưới sàn reference×N².
Hình dưới là chỗ trực giác lật. Bốn đường: VCO tự do (xanh lá đứt), reference/CP sau khi ×N² và low-pass (xanh dương), VCO sau high-pass (xanh lá liền), và tổng output (đỏ).
Đọc đường đỏ: trong băng () nó phẳng, bám đúng sàn reference×N² dBc/Hz — VCO đã bị nén khuất. Ngoài băng () nó bám đường VCO dốc xuống. Đó là reveal: con VCO 2.4 GHz, cái ai cũng chỉ tay vào, không định noise trong băng; nó chỉ trội ở ngoài băng. Thứ định sàn trong băng là cái crystal dBc/Hz sau khi bị chính của bộ chia khuếch đại lên dB. Cái ngôi sao ở MHz đánh dấu chỗ đường VCO tự do cắt sàn reference×N² — offset mà hai nguồn ngang nhau, và như mục sau cho thấy, đó gần đúng là chỗ jitter tối ưu.
Điều này cũng giải thích một quyết định thiết kế tưởng vô lý: vì reference×N² định noise trong băng, việc bỏ tiền mua crystal sạch hơn hay siết charge pump có lợi trực tiếp — mỗi dB bớt đi ở reference là một dB bớt đi ở output trong toàn băng loop. Còn hạ phase noise VCO chỉ giúp phần ngoài băng. Với một hệ lớn (tổng hợp tần số RF, hàng nghìn), số hạng có thể là dB hay hơn, và khi đó reference gần như luôn là thứ định noise trong băng — lý do các bộ tổng hợp tần số cao cấp ám ảnh với reference và charge pump chứ không phải VCO.
5. Loop bandwidth tối ưu — đường U
Mục 4 cho phổ output theo một cố định. Nhưng là thứ ta chọn, và nó kéo đường tổng theo hai hướng ngược nhau. Gộp phổ output thành một con số bằng cách tích phân nó ra jitter (mục 2), rồi vẽ jitter đó theo , ta được đường U — chính là phiên bản định lượng của cái trade-off mà bài Loop Dynamics chỉ dựng được định tính.
Hai nhánh của chữ U đến từ hai cơ chế đã dựng ở mục 4:
- thấp (nhánh trái): băng loop hẹp, vòng chỉ nén VCO trong một dải nhỏ, nên phần lớn phổ output bám đường VCO tự do dốc cao gần carrier và tích ra nhiều jitter — đây là vùng VCO lọt qua nhiều.
- cao (nhánh phải): băng loop rộng, sàn reference×N² dBc/Hz trải ra trên một dải offset rộng hơn nên tích ra nhiều jitter — đây là vùng input×N² lọt qua nhiều.
Đáy chữ U nằm ở chỗ hai đóng góp cân nhau, và nó rơi gần đúng vào offset mà đường VCO tự do cắt sàn reference×N² — cái ngôi sao MHz ở hình mục 4. Quét số cho đáy tại MHz với jitter 595 fs rms (tích phân 1 kHz–100 MHz).
Nhưng con PLL neo số chạy MHz, không phải 5.4 MHz — và jitter tại đó là 740 fs, tệ hơn đáy khoảng 24%. Vì sao không chạy ngay ở đáy? Vì có một trần khác chặn trước: MHz. Charge pump là một hệ rời rạc lấy mẫu ở ; đẩy lên gần thì xấp xỉ liên tục của vòng vỡ và ripple/aliasing của CP làm loop mất ổn định — chính cái rule tới ở bài Loop Dynamics. Đáy jitter (5.4 MHz) rơi ngay tại trần aliasing (5 MHz), nên không có biên an toàn để chạy ở đó. Thiết kế lùi về MHz () — hy sinh khoảng 145 fs jitter để đổi lấy biên ổn định. Đây là ví dụ sạch của một tối ưu noise bị một ràng buộc khác hệ (ổn định rời rạc) chặn trước khi chạm đáy.
Chỗ này đáng tự tay chơi hơn là đọc, vì cả bốn nút — , phase noise reference, phase noise VCO, và — đều kéo đường U đi. Công cụ dưới dựng lại đúng phép tính của bài: đổi input, phổ output và jitter tích phân cập nhật, và kéo sẽ thấy đáy chữ U dịch.
Vài thí nghiệm đáng thử: tăng (giữ ) để thấy sàn in-band nhấc lên và đáy U xấu đi — lý do người ta thích nhỏ khi có thể; hạ phase noise reference 10 dB để thấy toàn bộ nhánh phải của U tụt xuống trong khi nhánh trái không đổi; hạ phase noise VCO để thấy điều ngược lại. Cái gì kéo được nhánh nào chính là cái quyết định nên bỏ tiền vào đâu.
6. Bài học và hệ quả thiết kế
Jitter và phase noise là một con số nhìn từ hai trục. Không có “bộ chuyển đổi” bí ẩn giữa hai miền — chỉ có một tích phân, và cái tích phân đó vô nghĩa nếu thiếu cận. Khi nhận hay đưa một spec jitter, đòi cho được dải offset đi kèm; khi nhận một đường phase noise, biết rằng con jitter suy ra sẽ đổi tuỳ mask tích phân.
Trong băng loop, thủ phạm là reference×N², không phải VCO. Đây là điều phản trực giác đáng nhớ nhất của bài. khuếch đại phase noise đầu vào lên dB, nên một crystal sạch vẫn có thể định sàn output nếu đủ lớn. Muốn hạ noise in-band: crystal tốt hơn, charge pump ít noise hơn, hoặc nhỏ hơn (nếu kiến trúc cho phép) — chứ không phải VCO tốt hơn.
Ngoài băng loop mới là đất của VCO. VCO chỉ trội ở offset xa, nơi vòng phản hồi hết tác dụng. Nếu ứng dụng nhạy với jitter ngoài băng (ví dụ spur xa, hay noise ở offset lớn cho một số chuẩn RF), thì mới đáng đổ công vào VCO.
Loop bandwidth là một tối ưu, và thường bị một ràng buộc khác chặn trước. Đáy chữ U cho jitter thấp nhất, nhưng (ổn định của hệ rời rạc CP), yêu cầu tracking speed (bài Loop Dynamics), hay biên độ ripple đều có thể chặn trước khi ta chạm đáy. Ở con PLL này đáy rơi đúng vào trần aliasing, nên thiết kế lùi về và chịu jitter cao hơn đáy 24% để đổi lấy biên ổn định.
Phase noise oscillator vẫn là thermal và flicker cũ. Không có nguồn noise mới ở tần số cao — vùng là flicker up-convert, vùng là thermal shaped. Những đòn hạ noise ở mức mạch (bài op-amp, bài kT/C) chuyển thẳng lên đây; miền tần số đổi, vật lý thì không.
Tổng kết
- Jitter (miền thời gian, giây) và phase noise (miền tần số, dBc/Hz) là cùng một quá trình pha ngẫu nhiên nhìn từ hai phía Fourier; đổi qua lại bằng , và cận tích phân quyết định con số.
- Phase noise oscillator là thermal + flicker up-convert, gói trong ba vùng Leeson: (flicker), (thermal), sàn. Con VCO neo số: dBc/Hz @ 1 MHz, dB/dec.
- PLL low-pass reference/CP và nhân , high-pass VCO. Với : dB, đẩy crystal lên sàn in-band dBc/Hz. In-band do reference×N² định, out-of-band do VCO định — trực giác “VCO ồn nhất” là sai trong băng.
- Jitter theo là đường U, đáy ở chỗ VCO cắt reference×N² ( MHz, 595 fs). Con PLL chạy MHz (740 fs) vì đáy rơi đúng vào trần aliasing MHz.
- Muốn hạ jitter: sửa đúng nhánh của chữ U. Reference/CP/ cho nhánh in-band; VCO cho nhánh out-of-band; cân giữa hai, trong giới hạn ổn định.
Tham khảo
-
Sheikholeslami, A., Understanding Jitter and Phase Noise: A Circuits and Systems Perspective, Cambridge University Press, 2019 — nguồn chính của bài: duality time↔frequency, ba định nghĩa jitter (period / cycle-to-cycle / TIE), tích phân phase noise ra jitter, và cách các khối trong vòng shape noise. Cách trình bày “một hiện tượng, hai miền” của quyển này là khung xương của mục 1 và 2.
-
Razavi, B., RF Microelectronics, 2nd ed., Chương 8 (Oscillators) và Chương 9 (PLLs) — mô hình Leeson, ba vùng phase noise của VCO, và phân tích noise transfer function của PLL (vì sao reference bị ×N² còn VCO bị high-pass).
-
Razavi, B., Design of Analog CMOS Integrated Circuits, 2nd ed., Chương 7 (Noise) — thermal và flicker ở mức device, gốc của phase noise trước khi up-convert; nối mạch với bài op-amp và bài kT/C.
-
Ba bài PLL của blog: Loop Dynamics (nơi món nợ ×N² được ghi), Locking Transient, Cycle Slip & Acquisition.