Cơ bản IC 09 tháng 9, 2026 ⟳ 12 phút đọc

Self-bias mức transistor: nối body vào source để cắt body effect — và cái giá phải trả ở layout

Source follower đo ra gain 0.81 thay vì gần 1, cặp vi sai tail chậm bất thường — thủ phạm hay là cái body bị ghim GND. Nối body↔source (Vsb=0) khử body effect, kéo gain về ~0.98 và trả lại swing. Nhưng với NMOS nó bắt bạn mua một deep n-well, thêm diện tích và một C_well nặng treo vào chính node source. Bài này dựng số body effect thật rồi cân đo được/mất.

body-effectself-biassource-followerdeep-nwelllayoutVth
Nhận bài viết mới

Không spam. Chỉ bài kỹ thuật AMS đáng đọc — gửi qua email khi có bài mới.

Có một con số hay làm người mới bực: dựng một source follower NMOS chuẩn chỉnh, mô phỏng ra gain 0.81 thay vì gần 1 như sách hứa. Kiểm lại gmg_m, kiểm lại dòng, mọi thứ đúng — mà vẫn thiếu gần hai phần mười. Hoặc một cặp vi sai chạy tốt nhưng node đuôi (tail) chậm bất thường, chuyển dòng ì ạch dù transistor không to. Hai chuyện tưởng không liên quan, hoá ra chung một thủ phạm: cái body của con NMOS đang bị ghim xuống GND.

Mẹo chữa thì cũ và gọn — nối body thẳng vào source để Vsb=0V_{sb}=0. Trên blog さわざわブログ tác giả gọi đây là self-bias, và điểm mình thấy đáng viết lại không phải cái mẹo (ai học analog cũng gặp), mà là cái giá của nó ở layout — thứ mà, đúng như tác giả nhắc, nhiều người vẽ schematic xong quên mất. Với NMOS, “nối body vào source” không miễn phí: nó bắt bạn mua một deep n-well, tốn diện tích, và treo một tụ well khá nặng vào đúng node bạn đang muốn cho nhanh.

Đây không phải cái self-bias của mạch dòng tham chiếu không phụ thuộc nguồn — cái đó mình viết riêng ở bài constant-gm. Cùng một chữ, hai mạch khác hẳn nhau; bài này nói về self-bias ở mức một con transistor.


Mục lục

  1. Body effect: Vsb kéo Vth lên
  2. Chỗ nào Vsb ≠ 0 cắn vào mình
  3. Self-bias: nối thẳng body vào source
  4. Trả giá ở layout: well cách ly
  5. Nên hay đừng — bảng cân nhắc
  6. Tổng kết

1. Body effect: Vsb kéo Vth lên

MOSFET là linh kiện bốn cực, và cái cực thứ tư — body (đế) — hay bị quên vì trong sơ đồ nó thường nối lẳng lặng về GND (NMOS) hay VDD (PMOS). Nhưng nó là một cái “gate thứ hai” yếu: điện áp giữa source và body điều chế độ dày vùng nghèo dưới kênh, và qua đó điều chế luôn ngưỡng VthV_{th}. Khi source bị đẩy lên cao hơn body một lượng VsbV_{sb}, ngưỡng phình theo:

Vth=Vth0+γ(2ϕF+Vsb2ϕF)V_{th} = V_{th0} + \gamma\left(\sqrt{2\phi_F + V_{sb}} - \sqrt{2\phi_F}\right) Hai panel: trái Vth vs Vsb tăng từ 0.45V lên ~0.76V khi Vsb đi 0→1.5V, đánh dấu ΔVth≈0.14V ở Vsb=0.6V; phải η=gmb/gm giảm từ 0.27 xuống 0.16 theo Vsb, đánh dấu η≈0.21 ở Vsb=0.6V

Lấy bộ tham số điển hình (Vth0=0.45V_{th0}=0.45 V, γ=0.5 V\gamma=0.5\ \sqrt{\text V}, 2ϕF=0.842\phi_F=0.84 V): chỉ cần Vsb=0.6V_{sb}=0.6 V — mức rất bình thường ở source của một follower — ngưỡng đã đội thêm ~0.14 V, và tới Vsb=1V_{sb}=1 V là ~0.22 V. Trong một thế giới nguồn 1.2 V thì 0.14–0.22 V headroom mất trắng là chuyện lớn.

Nhưng VthV_{th} phình mới là nửa vấn đề. Nửa còn lại tinh hơn: cái “gate thứ hai” ấy có transconductance riêng, gmbg_{mb}. Ở mọi phân tích small-signal nó song song với gmg_m, và tỉ số

η=gmbgm=γ22ϕF+Vsb\eta = \frac{g_{mb}}{g_m} = \frac{\gamma}{2\sqrt{2\phi_F + V_{sb}}}

thường rơi vào 0.15–0.25 (panel phải). Nghĩa là body lặng lẽ bơm thêm 15–25% transconductance “ma” vào mạch — đôi khi có lợi, thường thì phá.


2. Chỗ nào Vsb ≠ 0 cắn vào mình

Với NMOS đế chung, body đứng ở GND. Chừng nào source cũng ở GND thì Vsb=0V_{sb}=0, chẳng sao. Rắc rối bắt đầu ở đúng những mạch mà source bị nhấc lên khỏi GND:

  • Source follower. Source chính là ngõ ra, đu đưa theo tín hiệu và ngồi ở một mức DC dương. Vsb=Vout>0V_{sb}=V_{out}>0 luôn luôn. Đây là nạn nhân kinh điển, và là ví dụ mình dùng cả bài.
  • Đuôi cặp vi sai / các tầng xếp chồng. Con transistor ngồi trên một con khác có source cao hơn GND cả một VDSV_{DS}. Cascode, current source xếp tầng, level shifter — tất cả đều dính.
  • Switch truyền dẫn. Transmission gate hay sampling switch dẫn một mức áp cao thì thân–source cũng lệch, VthV_{th} đội lên làm điện trở ON xấu đi (liên quan tới bài sampling switch).

Quay lại con số 0.81 ở đầu bài. Gain DC của source follower:

Av=gmgm+gmb+gds=11+η+gds/gmA_v = \frac{g_m}{g_m + g_{mb} + g_{ds}} = \frac{1}{1 + \eta + g_{ds}/g_m}

Cắm η0.21\eta \approx 0.21 (ở Vsb=0.6V_{sb}=0.6 V) và gds/gm0.02g_{ds}/g_m \approx 0.02 vào: Av1/1.230.81A_v \approx 1/1.23 \approx \textbf{0.81}. Không phải mạch sai — chính gmbg_{mb} ăn mất gần 0.2 gain đó. Trong sơ đồ nó vô hình, vì cái cực gây ra nó không được vẽ ra.


3. Self-bias: nối thẳng body vào source

Nếu VsbV_{sb} là thủ phạm, cách triệt để nhất là ép nó về 0: nối body thẳng vào source. Source đi đâu, body theo đó, hiệu điện thế thân–source luôn bằng 0. Thế là VthV_{th} đứng yên ở Vth0V_{th0}gmb=0g_{mb}=0 — cái gate thứ hai bị vô hiệu.

Hai source follower cạnh nhau. Trái: body nối GND, Vsb=Vout>0, callout gain≈0.81 swing đỉnh hụt. Phải: body nối vào node source (Vsb=0), callout gain≈0.98 full swing

Đặt cạnh nhau thấy rõ: cùng một con NMOS, cùng dòng đuôi, chỉ khác chỗ nối cái cực thứ tư. Bên trái body xuống GND — gain 0.81, và đỉnh ngõ ra còn bị VthV_{th} phình cắt bớt. Bên phải body bám source — η\eta về 0, gain

Av=11+0+gds/gm11.020.98A_v = \frac{1}{1 + 0 + g_{ds}/g_m} \approx \frac{1}{1.02} \approx \textbf{0.98}

gần như bằng 1, và trả lại luôn phần swing đã mất vì ngưỡng không còn đội lên theo tín hiệu. Với một cascode hay tầng xếp chồng, lợi ích y hệt: headroom lấy lại được vài trăm mV, đúng thứ quý nhất ở nguồn thấp.

Trên schematic, đây là một sợi dây. Vấn đề nằm ở chỗ sợi dây đó về mặt vật lý là gì.


4. Trả giá ở layout: well cách ly

Đây là phần mình muốn nhấn, và là chỗ blog gốc nói đúng cái nhiều người bỏ qua. “Nối body vào source” nghe như thêm một via, nhưng nó đòi hỏi mỗi transistor phải có một body riêng để mà nối — và với NMOS trong công nghệ bulk chuẩn, body là cả tấm đế p chung của chip. Không tách ra được. Muốn có một p-well riêng cho con NMOS này, bạn phải bọc nó trong một deep n-well.

Hai mặt cắt. Trái NMOS thường: n+ source/drain trong p-substrate chung nối GND, body=đế. Phải NMOS cách ly: p-well riêng (body) chứa NMOS, bọc bởi deep n-well và vành n-well nối VDD, p-well nối source (Vsb=0); các tụ tiếp giáp Cj (đỏ) rải dọc biên p-well–deep-nwell — chính là Cwell treo vào node source

Nhìn hai mặt cắt cạnh nhau:

  • Trái — NMOS thường. Source, drain nằm thẳng trong đế p. Body cái đế, bị ghim GND cùng với cả chip. Rẻ, gọn, không tốn gì thêm — nhưng bạn không có quyền chọn thế body, nên source nổi lên là ăn body effect, hết cách.
  • Phải — NMOS cách ly. Con NMOS giờ ngồi trong một p-well riêng, được cô lập khỏi đế chung bằng một cái “bồn tắm” deep n-well cộng vành n-well hai bên. p-well đó mới nối được vào source cho Vsb=0V_{sb}=0. Còn cái bồn deep n-well thì phải nối lên VDD để giữ tiếp giáp ngược.

Giá phải trả có ba khoản, và khoản thứ ba là cái hay bị quên:

  1. Diện tích. Deep n-well cần khoảng cách bao và spacing tới các well khác — một con NMOS cách ly to hơn hẳn con thường. Nhồi cả một cặp vi sai hay một dãy cascode vào well cách ly là một khoản diện tích thật.
  2. Latch-up và nhiễu đế. Thêm một tiếp giáp p–n–p–n nữa là thêm đường latch-up phải lo, thêm guard ring, thêm quy tắc.
  3. Điện dung well treo vào source. Đây là điểm mấu chốt. Tiếp giáp p-well–deep-n-well là một diện tích lớn, và vì p-well nối source còn deep n-well nối VDD (đất xoay chiều), cái CwellC_\text{well} đó treo thẳng từ node source xuống đất AC. Bạn vừa chữa body effect thì lại vừa chất một tụ ký sinh không nhỏ lên đúng node source — mà source thường là node bạn cần cho nhanh (đuôi cặp vi sai, ngõ ra follower). Đổi một khuyết tật DC (gain, headroom) lấy một khuyết tật AC (tốc độ). Chuyện CwellC_\text{well} này họ hàng với mấy tụ ký sinh mình mổ ở bài MOSFET tự ký sinh — cùng một bài học: cực thứ tư không bao giờ miễn phí.

Để không phải đoán, mình vẽ hẳn con này ra layout sky130 thật. Lấy nfet_01v8, W/L=10/0.5 μmW/L = 10/0.5\ \mu\text{m} chạy tail 100 µA ở nguồn 1.8 V, dựng bản cách ly deep-nwell (kèm vành n-well và n+ tap để bọc kín) rồi cho magic DRC tới khi sạch. Cái tub p-well cách ly đo ra 67 µm² — to hơn hẳn trực giác, vì chỉ riêng luật bao deep-nwell với vành n-well đã ăn diện tích. Ghép mật độ tiếp giáp p-well–deep-nwell từ model PDK (pw2dn: cj0.39 fF/μm2c_j\approx 0.39\ \text{fF}/\mu\text{m}^2, cjsw0.37 fF/μmc_{jsw}\approx 0.37\ \text{fF}/\mu\text{m}) lên đúng hình học đó cho Cwell28 fFC_\text{well}\approx \textbf{28 fF} ở phân cực làm việc, well ngược ~1.4 V (và ~41 fF lúc chưa phân cực). Tụ tiếp giáp của riêng cái source con NMOS chỉ tầm 1.8–2.6 fF; cộng thêm CwellC_\text{well}, node source vọt từ ~1.8 lên ~31 fF, gấp ~17 lần so với NMOS thường (panel giữa) — chỉ vì một sợi dây nối body vào source.

Panel trái hình dưới là con NMOS cách ly đó sau khi cho DRC sạch: cột poly dọc ở giữa là gate W=10 μmW = 10\ \mu\text{m}, vành p+ ôm sát là body tie, ngoài cùng là tub deep-nwell với vành n-well và n+ tap để bọc kín. Chính cái tub 67 µm² này là diện tích tiếp giáp treo lên source.

Ba panel. Trái: layout thật con isolated NMOS (DRC=0), gate poly dọc giữa, vành p+ body-tie, tub deep-nwell + vành n-well + n+ tap. Giữa: cột tụ ở node source — NMOS thường 1.8 fF (chỉ Cjs), self-bias 30.7 fF (Cjs 2.6 + Cwell 28), gấp ~17 lần. Phải: f_-3dB ở node source vs tải, đường body→GND trên đường self-bias; ở tải 20 fF băng thông 5.4→2.4 GHz, chậm 2.3 lần, tách ra ~1.9 lần do Cwell và ~1.2 lần do mất gmb; ở tải nặng 1000 fF hai đường vẫn cách 1.2 lần — phần dư đó là do mất gmb chứ không phải tụ

Cái giá ở miền tần số thì cho một source follower chạy AC trên ngspice là ra ngay. Ở node source, tần số cực f3dBf_{-3\text{dB}} tụt trông thấy — với tải nhẹ 20 fF, băng thông rơi từ 5.4 xuống 2.4 GHz, chậm 2.3 lần (panel phải).

Nhưng 2.3 lần đó không phải một mình CwellC_\text{well} gây ra. Ngoài ba khoản layout ở trên còn một khoản thứ tư — khoản duy nhất không đến từ layout, và cũng là chỗ rất dễ quy sai nguyên nhân: mất gmbg_{mb}. Tách ra thì tụ chịu khoảng 1.9 lần, còn 1.2 lần nữa là của nó. Ở follower, gmbg_{mb} nằm ngay trong điện dẫn ngõ ra, Rout=1/(gm+gmb+gds)R_\text{out} = 1/(g_m + g_{mb} + g_{ds}), nên khử body effect thì gain bò lên gần 1 mà RoutR_\text{out} cũng phình lên đúng tỉ số ấy (0.99/0.841.180.99/0.84 \approx 1.18). Cái gmbg_{mb} vừa bị dập tắt hoá ra vẫn đang âm thầm giúp node source nhanh hơn — bỏ nó đi là mất luôn phần đó.

Hai đầu đồ thị cho thấy hai cơ chế tách bạch. Tải nhẹ thì CwellC_\text{well} trội, hai đường doãng rộng — node càng nhanh phạt càng đau. Tải nặng hàng trăm fF thì thêm 28 fF chẳng đáng gì, nhưng hai đường không chập lại: ở 1000 fF vẫn còn chậm 1.2 lần, đúng bằng phần RoutR_\text{out} — dấu vết của gmbg_{mb} đã mất. Đây là câu “đổi khuyết tật DC lấy khuyết tật AC” nói bằng số: trên chính con này gain follower đi từ 0.84 (body→GND) lên 0.99, đổi lại cực ở source lùi hơn gấp đôi.

Một điểm đáng ghi lại từ lúc extract: magic mặc định không tự lộ tụ tiếp giáp p-well–deep-nwell (tech chỉ mô hình hoá deep-nwell↔đế ~0.12 fF/µm²), nên con CwellC_\text{well} ở trên là lấy model junction pw2dn của PDK áp lên hình học tub trích từ layout DRC-clean — đúng phép mà một công cụ PEX làm cho junction. Và vì CwellC_\text{well} bám theo diện tích tub, device to hơn thì nó còn phình tiếp.

Với PMOS thì câu chuyện dễ thở hơn nhiều: PMOS vốn đã nằm trong n-well riêng của nó, nên nối body (n-well) vào source gần như miễn phí — chỉ là một tiếp xúc n-well thay vì kéo về VDD. Đó là lý do bạn thấy self-bias body–source ở PMOS thường xuyên hơn, còn ở NMOS thì người ta cân nhắc kỹ vì phải cõng nguyên cái deep n-well.


5. Nên hay đừng — bảng cân nhắc

Không có câu trả lời chung; nó là một phép đổi. Mình gom lại thành bảng để lúc ngồi vẽ còn nhớ:

Body → GND/VDD (thường)Body → Source (self-bias)
VthV_{th}phình theo VsbV_{sb}giữ nguyên Vth0V_{th0}
gmbg_{mb}có (η ≈ 0.15–0.25)= 0
Gain source follower~0.8~0.98
Headroommất theo VsbV_{sb}lấy lại
Diện tích (NMOS)nhỏlớn (deep n-well)
Tụ vào node sourcenhẹnặng (CwellC_\text{well})
Latch-up / guard ringít lophải lo thêm

Rút thành mấy nếp gấp quyết định:

  • Nên khi node source chậm mà cần chính xác: source follower/buffer cần gain sát 1, cascode ở nguồn thấp cần headroom, mạch mà mất mát VthV_{th} ăn thẳng vào spec — và tốc độ ở node đó không phải giới hạn.
  • Đừng vội khi node source là node tốc độ cao: chất thêm CwellC_\text{well} vào đuôi cặp vi sai đang chuyển dòng nhanh có thể hại nhiều hơn lợi. Cân cụ thể bằng sim, đừng nối theo phản xạ.
  • PMOS thì gần như cứ nối — vốn đã có well riêng, giá rẻ.
  • NMOS thì tính diện tích trước: một con cách ly có đáng không, hay cả khối gom chung một well cách ly cho đỡ tốn.

Điểm mình mang về từ blog gốc, và cũng là điểm mình hay dặn lại chính mình: cái cực thứ tư luôn có mặt trong phương trình dù nó không có mặt trong sơ đồ. Vẽ nó ra — cả trên schematic lẫn trong đầu — trước khi nó cắn mình ở lần đo đầu tiên.


6. Tổng kết

  • Body effect khiến VsbV_{sb} đội VthV_{th} lên (~0.14 V ở Vsb=0.6V_{sb}=0.6 V với γ=0.5\gamma=0.5) và thêm một gmbg_{mb} với η=gmb/gm0.15\eta = g_{mb}/g_m \approx 0.150.250.25.
  • Nó cắn ở mọi mạch có source nổi khỏi GND: source follower (gain tụt còn ~0.8), đuôi cặp vi sai, cascode, switch.
  • Self-bias = nối body↔source ép Vsb=0V_{sb}=0: VthV_{th} về Vth0V_{th0}, gmb=0g_{mb}=0, gain follower lên ~0.98 và lấy lại headroom.
  • Với NMOS cái giá là deep n-well: diện tích, latch-up, và nhất là CwellC_\text{well} nặng treo vào node source — trên con sky130 10/0.5 µm (layout thật, DRC sạch) đo ra ~28 fF. Băng thông node source chậm ~2.3× ở tải 20 fF, mà chỉ ~1.9× trong đó là do tụ; ~1.2× còn lại là do mất gmbg_{mb} làm RoutR_\text{out} của follower phình lên (đổi khuyết tật DC lấy khuyết tật AC). PMOS thì gần như miễn phí.
  • Quyết định là một phép đổi: nối khi node source cần chính xác mà không cần nhanh; cân nhắc kỹ khi nó là node tốc độ cao.

Tham khảo

  • さわざわブログ — “ボディ・ソース接続構造について(セルフバイアスの使い方)” — nguồn ý tưởng cho bài này; nhấn đúng cái CwellC_\text{well} treo vào source mà designer hay quên. Blog analog rất đáng đọc: sawazawablog.com.

  • Razavi, Design of Analog CMOS Integrated Circuits, 2nd ed. — body effect (§2), gmbg_{mb} và gain source follower (§3), well/đế trong layout.

  • Baker, CMOS Circuit Design, Layout, and Simulation, 4th ed. — mặt cắt deep n-well / triple-well, luật spacing và latch-up. cmosedu.com.

  • Bài MOSFET tự ký sinh — các tụ ký sinh cùng họ với CwellC_\text{well}. Bài constant-gm bias — cái self-bias nghĩa khác (mạch dòng tham chiếu), đừng lẫn.