MOSFET làm sampling switch: Ron, charge injection, clock feedthrough
Con switch lấy mẫu ở đầu mỗi ADC hay trong switched-cap filter chỉ là một MOSFET, mà MOSFET đóng thì kèm điện trở Ron còn mở thì hắt điện tích lên tụ, đủ để làm sai giá trị mình vừa giữ. Mình dựng lại Ron, charge injection và clock feedthrough bằng số thật BSIM3 180nm trên con SAR ADC 10-bit của blog, rồi nhận ra thủ phạm không nằm ở pedestal 0.38 LSB người ta hay lo, mà ở chỗ Ron của switch phình lên hàng kiloohm khi tín hiệu lớn, rồi NMOS tắt hẳn nên gần nửa trên của dải 1.8 V coi như không lấy mẫu được.
Không spam. Chỉ bài kỹ thuật AMS đáng đọc — gửi qua email khi có bài mới.
Con transistor làm switch là thứ bạn sẽ gặp đến phát chán trong mixed-signal. Mọi ADC lấy mẫu tín hiệu lên tụ qua một sample-and-hold switch; mọi switched-cap filter hay SC gain stage chạy bằng các switch đóng/mở theo pha clock; CDAC trong SAR ADC đảo tụ giữa và đất bằng switch; analog mux dồn hàng chục kênh cảm biến vào một ADC là switch; chopper/auto-zero amp đảo cực tín hiệu ở kHz–MHz để dời offset (bài mismatch) — cũng switch. Sang mạch số thì transmission gate là mux, XOR, latch. Học kỹ ba chỗ không lý tưởng của nó một lần, xài lại cả sự nghiệp.
Bản thân con switch rẻ đến khó tin: một MOSFET, kéo gate lên thì dẫn, kéo xuống 0 thì hở. Nhưng nó không phải công tắc lý tưởng ở hai điểm: lúc đóng nó là một điện trở chứ không phải dây dẫn, và đúng khoảnh khắc mở nó hắt một gói điện tích ra hai đường, làm lệch chính cái điện áp mình vừa giữ trên tụ.
Bài này dựng ba chỗ không lý tưởng đó từ đầu — on-resistance, charge injection, clock feedthrough — rồi mới ráp số lên con SAR ADC 10-bit đã theo suốt blog. Kết cục hơi ngược trực giác: trên con ADC đó charge injection gần như vô hại, chỉ 0.38 LSB mà phần lớn còn là offset; thứ thật sự giết một NMOS trần lại là nổ lên kiloohm và chuyện nó tắt hẳn khi vượt ~1.06 V.
Mục lục
- MOSFET đóng — on-resistance
- MOSFET mở — charge injection
- MOSFET mở — clock feedthrough
- Ráp số lên con ADC 10-bit của blog
- Chỗ NMOS thật sự chết
- Bốn cách chữa
- Khi nào thật sự fail: 1 pF và 100 MSPS
- Bài học
1. MOSFET đóng — on-resistance
Khi gate ở và điện áp rơi trên switch () còn nhỏ, NMOS ngồi ở vùng triode và cư xử đúng như một điện trở:
Ba điều đọc ra ngay từ mẫu số:
- . Muốn switch “cứng” hơn thì làm nó rộng ra — gần như là đòn bẩy duy nhất, vì đã bị ghim ở .
- đổi theo . Với NMOS lấy mẫu, source chính là node tín hiệu, nên . càng cao thì overdrive càng teo, càng lớn. Body effect ( dâng theo ) còn đội thêm.
- Có một trần cứng. Khi cao tới mức , overdrive về 0 và NMOS tắt hẳn dù gate vẫn đang ở . Trên 180nm nguồn 1.8 V, chỗ đó rơi vào V — gần nửa thang trên không đi qua nổi một NMOS trần.
Ba điều đó không phải suy đoán square-law tay: hình trên trích thẳng LUT BSIM3 180nm (Murmann gm/ID kit, cùng bộ số bài tụ ký sinh MOSFET), lấy ở cho đúng con switch 3.3/0.18 µm của bài. Đáy thang ; giữa thang ( V) đã leo lên ~0.82 kΩ; và quanh V vọt qua 5 kΩ — switch coi như tắt. LUT là con số đáng tin nhất ở đây; mô hình tay ở mục 4–5 (500 Ω khi bỏ body, ~1 kΩ khi kể body) kẹp quanh nó, đủ để lấy chiều và bậc.
Đó là mặt “đóng”, và nó đã cho thấy hai giới hạn: không phẳng, và có một mức mà switch đơn giản ngừng dẫn. Hai mục kế nói mặt “mở”.
2. MOSFET mở — charge injection
Lúc switch đang đóng, trong kênh có một lớp điện tích đảo. Gate rơi từ về 0, kênh biến mất trong vài trăm picosecond, và gói điện tích đó phải chảy đi đâu đó — một phần ngược về source (nguồn tín hiệu), một phần xuôi về drain, tức node tụ lấy mẫu .
Gói điện tích trong kênh, ở triode strong-inversion:
Phần của nó rơi lên đẩy điện áp đã giữ lệch một bước — chỗ lệch này gọi là charge injection, hay pedestal:
là tỉ lệ chia điện tích giữa hai phía. Lấy khi hai đầu cùng trở kháng và clock rơi chậm — first-cut về phía xấu. Clock nhanh cộng nguồn tín hiệu trở kháng thấp kéo xuống, vì điện tích chạy về phía nguồn dễ hơn là ở lại trên .
Điểm cần để ý: phụ thuộc , qua cả số hạng tường minh lẫn . Đó là lý do sách hay cảnh báo injection sinh distortion — mục 4 sẽ soi trên con ADC thật thì phần méo đó lớn cỡ nào.
3. MOSFET mở — clock feedthrough
Đường thứ hai độc lập hẳn với điện tích kênh. Giữa gate và drain luôn có một tụ overlap (mép gate chồng lên vùng source/drain), và cạnh clock rơi 1.8 V ghép thẳng qua tụ đó xuống node — chính là mũi tên xanh nét đứt trong hình trên. Phân áp điện dung cho:
Khác charge injection ở một điểm quan trọng: overlap gần như thuần hình học, không đổi theo vùng hoạt động (bài tụ ký sinh MOSFET mổ kỹ chỗ này), và cũng cố định. Nên feedthrough gần như một offset thuần — bước rơi xuống bằng nhau ở mọi (hình trên), không bám tín hiệu, và vì thế dễ trừ hơn hẳn so với injection.
4. Ráp số lên con ADC 10-bit của blog
Ba công thức trên chỉ có nghĩa khi cắm số thật. Lấy đúng con SAR ADC 10-bit đã theo suốt blog: bài kT/C chốt pF, còn bài op-amp và kickback dùng cho ns. Full-scale 1.8 V, nên 1 LSB mV, nửa LSB mV.
Size cho 500 Ω. Giữa thang V, bỏ body effect, V. Với , để cần ; cho .
Charge injection. (cùng mốc bài kickback/op-amp, không lấy 9.8 của LUT gm/ID vì số đó gồm cả overlap), nên fF. Cắm vào với :
| (không body) | theo LSB | |||
|---|---|---|---|---|
| 0 V | 1.30 V | 6.71 fC | 0.67 mV | 0.38 LSB |
| 0.9 V | 0.40 V | 2.06 fC | 0.21 mV | 0.12 LSB |
Con lớn nhất, ở , là 0.67 mV = 0.38 LSB — nằm dưới nửa LSB. Pass, và pass vì = 5 pF to, đúng khuôn “may nhờ tụ lớn” mà bài kickback đã chỉ.
Clock feedthrough. Overlap cho fF, nên mV. Một offset, coi như không đổi trên thang.
Vậy 0.67 mV kia là distortion hay chỉ là offset? Nếu và cố định thì là hàm bậc nhất của :
— sai số gain 0.052%, cỡ nửa LSB nếu ai đo gain tuyệt đối, mà ADC thì thường calib gain. Một đường thẳng không sinh HD.
Ứng viên méo thật là body effect: dâng theo . Cắm , V (mốc 180nm dùng ở các bài khác), vẽ rồi trừ đường thẳng best-fit trên 0–0.9 V, phần dư chỉ đỉnh 4 µV — 0.003 LSB. Vài microvolt thì 10-bit không nhìn thấy. Công thức “injection phụ thuộc tín hiệu → distortion” đúng về nguyên tắc, nhưng trên 5 pF với cố định, phần cong theo rơi xuống dưới sàn quantization.
Hai số trong mục này là tính tay, giả định, cố định — chúng cho bậc độ lớn. Con số đi vào tape-out vẫn phải đọc từ transient sim đúng khoảnh khắc clock ngắt.
5. Chỗ NMOS thật sự chết
Nếu injection chỉ là offset cộng gain, thì cái gì mới giết một NMOS trần? Quay lại đúng hai giới hạn ở mục 1: và cutoff.
Panel trái vẽ lại pedestal ở mục 4 — đường xanh (không body) thẳng, đường đỏ (có body) cong nhẹ rồi rơi về 0 khi switch tắt. Panel phải mới là chỗ đau.
Giữa thang, body effect đội từ 0.5 lên 0.71 V, overdrive còn 0.19 V, kΩ tính tay — hơi quá tay so với LUT (0.82 kΩ ở mục 1), vì và lấy mốc sách chứ chưa extract; số thật nằm giữa hai con đó. Dù chốt ở đâu thì cũng cỡ 1.6–2× mốc 500 Ω dùng để tính ở bài kickback/SAR. không còn 2.5 ns, và vì phi tuyến nên DAC settle không đều trên thang. Đây mới là nguồn méo đáng lo, không phải pedestal.
Rồi tới trần cứng: NMOS tắt ở V. Full-scale 1.8 V thì gần nửa thang trên đơn giản là không lấy được, và chỗ này không dính gì tới điện tích — switch đang mở. Đó là lý do CMOS transmission gate và bootstrapped switch tồn tại, chứ không phải vì cái 0.67 mV.
6. Bốn cách chữa
Bốn cách, xếp từ rẻ tới đổi kiến trúc. Dummy xử lý pedestal; ba cái kia còn phải chữa luôn .
Dummy , clock đảo. MOSFET phụ, source và drain nối vào node , rộng bằng nửa switch chính, gate ăn clock ngược. Lúc switch chính tắt, dummy bật và hút đúng nếu và matching tốt. Triệt được phần dễ — offset/gain của inversion charge. Không chữa cutoff, không chữa , và matching dummy-vs-main giới hạn phần còn lại. Cùng họ với neutralization ở bài kickback: giảm vài lần, không đổi bậc.
CMOS transmission gate. NMOS đổ electron (kéo xuống), PMOS đổ hole (kéo lên), hai phía bù nhau. Chỗ bẫy: size cho khớp thì , lúc đó không khớp vì điện tích tỉ lệ chứ không tỉ lệ . Size cho charge khớp () thì PMOS gấp ba. Dù chọn phía nào, hai chạy ngược chiều theo nên chỉ triệt đúng một điểm, thường là giữa thang. TG cứu được nửa thang mà NMOS không đi qua, và kéo đỡ biến thiên. Người ta dùng vì vậy; injection thì chỉ hết ở một điểm.
Đây là chỗ nổ ở mục 5 được chữa, bằng số thật cùng LUT: NMOS (đỏ) tắt khi vượt ~1.06 V, PMOS (xanh, ) tắt đối xứng khi tụt dưới ~0.7 V, nhưng mắc song song thì (đen) chưa bao giờ vượt ~0.6 kΩ — phủ trọn thang mà một NMOS trần bỏ dở. Đổi lại là điện dung switch và clock gấp đôi (cần cả clock đảo), và như trên, injection chỉ khớp ở một điểm.
Bottom-plate sampling. Đây là câu trả lời analog cho switched-cap.
Tín hiệu vào bottom plate, top plate neo . Khoảnh khắc nhạy cảm là lúc mở switch top (): nó đang ngồi ở điện áp cố định, nên của nó không phụ thuộc . Phần rơi lên vì thế chỉ là offset — calib được; phần còn lại bị nguồn nuốt. Switch bottom () mở sau, khi top đã float, nên injection của không đổi điện tích đã khoá trên .
Với SAR, đó là lý do top-plate sampling (một switch, trên top) rẻ hơn nhưng linearity kém, còn bottom-plate tốn thêm switch và clock pha nhưng biến injection thành thứ calib được. Cùng họ tư duy với auto-zero ở bài mismatch: đẩy sai số về dạng hằng số rồi trừ.
Bootstrapped switch. Tụ precharge , rồi mắc giữa gate và source lúc lấy mẫu, nên khoá ~ với mọi . Hệ quả kép: gần như phẳng trên cả thang, và gần như không còn phụ thuộc (body effect còn một chút qua ), tức injection thành offset. Đây là chữa đúng bệnh của mục 5, cái giá là mạch bootstrap: vài transistor cộng tụ, phải cẩn clock và reliability của . Low-voltage và ADC nhanh gần như luôn đi đường này.
7. Khi nào thật sự fail: 1 pF và 100 MSPS
Trên 5 pF / 1 MS/s, injection 0.38 LSB. Thu nhỏ thì bậc đổi ngay, dù không đụng.
Bài kT/C đã chỉ: CDAC thermometer/segment kéo về sàn ~1 pF. nhân 5 → 3.35 mV = 1.9 LSB ở . Lúc đó pedestal vượt nửa LSB, dummy/bottom-plate không còn là “cho chắc” mà là bắt buộc. Cùng ngưỡng 3.4 pF mà bài kickback đặt cho comparator: tối ưu nhỏ đi thì cả kickback lẫn injection của switch cùng vượt vạch, dù netlist comparator không đổi một dòng.
Tốc độ: bài kickback đã đặt 100 MS/s, = 500 fF. Ô ~0.6 ns/bit ở đó là ngân sách của switch tham chiếu DAC lúc bit-trial, không phải ô sample. Ngay cả khi sampling switch vẫn 500 Ω ( không béo), chia 10 thì nhân 10 → cỡ 2.1 mV = 1.2 LSB giữa thang, 6.7 mV = 3.8 LSB ở . Nếu ô sample cũng bị ép xuống cùng loại ~0.6 ns, đòi ps → , , nhân thêm ~3 lần nữa, cỡ 6.5 mV = 3.7 LSB giữa thang (first-cut, không body). Đây đúng xung đột lớn cứu biên độ / nhỏ cứu settling, chỉ đổi thủ phạm từ kickback sang chính cái switch.
Corner: biên độ đi theo , hình học gần đứng im; và trôi thì mới là thứ chạy. Worst case settling vẫn là SS/nóng như bài kickback đã chỉ — mobility tụt, lên ~1.6×. Injection thì không có corner “giết” tương đương; thứ giết là lúc nóng cộng cao.
(Các hệ số nhiệt và là ước lượng điển hình 180nm. Chiều thì tin được; số cuối lấy từ sim corner cộng transient lúc clock ngắt.)
8. Bài học
MOSFET-switch có ba đặc tính phải nhớ. Đóng thì , không phẳng theo . Mở thì hắt điện tích hai đường: charge injection bám tín hiệu, và clock feedthrough qua gần như offset.
Tính pedestal trước khi sợ HD. Trên 5 pF, 0.67 mV = 0.38 LSB, phần lớn là offset cộng gain 0.05%. Phần dư sau khi trừ đường thẳng, với cố định, chỉ vài microvolt.
NMOS trần không lấy được full-scale 1.8 V. Cutoff ~1.06 V và ~1 kΩ giữa thang mới là lý do có CMOS TG và bootstrap, không phải cái 0.67 mV.
Thu thì bậc đổi. 1 pF → 1.9 LSB; 500 fF ở 100 MS/s → vài LSB dù chưa béo. Cùng câu chuyện tối ưu mà kickback đã cảnh báo.
Chọn cách chữa theo thứ đang fail. Dummy cho pedestal; bottom-plate biến injection thành offset; bootstrap chữa luôn và cutoff. Đắt dần theo đúng thứ tự đó.
Tổng kết
- MOSFET-switch: đóng là điện trở đổi theo và tắt hẳn khi overdrive về 0; mở thì hắt charge injection (, bám tín hiệu) và clock feedthrough (qua , gần như offset).
- Ráp lên con ADC 10-bit / 5 pF: switch 3.3/0.18 µm cho ~500 Ω giữa thang, pedestal tối đa 0.67 mV = 0.38 LSB, feedthrough 0.15 mV.
- gần tuyến tính → offset + gain; body effect trên 0–0.9 V còn dư vài µV. Méo 10-bit không nằm ở đây.
- NMOS tắt ~1.06 V, giữa thang đã 1 kΩ. CMOS TG / bootstrap là để đi hết thang.
- Bottom-plate mở switch ở trước, injection thành offset. 1 pF hoặc 100 MS/s thì pedestal vượt LSB — lúc đó mới phải chữa đúng nghĩa.
Tham khảo
-
Baker, R. J., CMOS Circuit Design, Layout, and Simulation, 4th ed., §25.1 (The MOSFET Switch) — on-resistance, charge injection, clock feedthrough và cách giảm (dummy, half-size switch); đúng xương sống của bài này, còn bottom-plate sampling nằm ở §25.2.1. Website: cmosedu.com.
-
B. Razavi, Principles of Data Conversion System Design, Ch. 6 — sampling, charge injection, clock feedthrough trong ADC; cùng nguồn bài kickback.
-
B. Razavi, Design of Analog CMOS Integrated Circuits, phần switched-capacitor — dummy , bottom-plate sampling, và vì sao phụ thuộc tốc độ cạnh clock.
-
Johns & Martin, Analog Integrated Circuit Design — MOS switch, CMOS TG, bootstrap; góc thiết kế mạch lấy mẫu.
-
Bài liên quan: kT/C — không chữa noise, có làm injection tệ hơn; kickback — ngưỡng và xung đột high-speed; tụ ký sinh MOSFET — overlap vs ; two-stage Miller op-amp — buffer nuốt charge lúc acquisition.