← Về trang chủ
Cơ bản IC 08 tháng 4, 2026 ⟳ 12 phút đọc

Tín Hiệu Trong Miền Thời Gian và Tần Số — Hai Cách Nhìn Mà AMS Engineer Cần Hiểu Cả Hai

Rise time, bandwidth, và Fourier transform không phải chỉ là lý thuyết tín hiệu. Bài này giải thích tại sao AMS engineer cần chuyển đổi linh hoạt giữa time domain và frequency domain — và những con số cụ thể để build intuition.

signal integritytime domainfrequency domainbandwidthrise timeAMSBogatin

Có một câu hỏi mình hay dùng để test intuition của junior engineer: “Nếu rise time của một tín hiệu là 1ns thì bandwidth của nó là bao nhiêu?” Câu trả lời phổ biến nhất là im lặng — hoặc “phải biết thêm thông tin.”

Thực ra có một công thức rất đơn giản để ước lượng. Nhưng để hiểu tại sao công thức đó đúng — và quan trọng hơn, tại sao nó quan trọng với công việc thiết kế — mình cần phải hiểu mối liên hệ giữa time domain và frequency domain.

Đây là thứ Bogatin giải thích rất tốt trong chương 2 của Signal and Power Integrity — Simplified: tín hiệu không phải chỉ có một cách nhìn. Nhìn nó trong miền thời gian là một góc độ. Nhìn nó trong miền tần số là một góc độ khác. Và engineer giỏi cần chuyển đổi tự nhiên giữa hai cách nhìn đó.


Tại sao cần hai domain?

Hãy bắt đầu bằng câu hỏi thực tế: oscilloscope và spectrum analyzer đều đo tín hiệu điện. Nhưng chúng cho ra hai loại thông tin khác nhau hoàn toàn.

Oscilloscope — time domain — cho mình thấy điện áp thay đổi theo thời gian. Mình đọc được: tín hiệu bắt đầu khi nào, lên đến mức cao trong bao lâu, có overshoot không, có ringing không, settling time là bao nhiêu.

Spectrum analyzer — frequency domain — cho mình thấy tín hiệu đó có chứa những tần số nào, mỗi tần số mạnh bao nhiêu. Mình đọc được: năng lượng tập trung ở đâu, có harmonic không, noise floor ở mức nào.

Cùng một tín hiệu, nhưng hai bức tranh hoàn toàn khác nhau. Và mỗi bức tranh trả lời những câu hỏi khác nhau trong thiết kế.

Trong AMS design, mình cần cả hai. Khi debug timing violation thì nhìn oscilloscope. Khi debug EMI hay substrate noise thì cần spectrum. Khi thiết kế bandwidth của một amplifier thì tính trong frequency domain. Khi verify slew rate thì đo trong time domain. Vấn đề là hai domain này không độc lập — chúng là hai mặt của cùng một đồng xu, và mình cần biết cách chuyển từ mặt này sang mặt kia.


Fourier — cây cầu giữa hai domain

Fourier Transform là công cụ toán học chuyển đổi giữa hai domain:

X(f)=x(t)ej2πftdtX(f) = \int_{-\infty}^{\infty} x(t)\, e^{-j2\pi ft}\, dt x(t)=X(f)ej2πftdfx(t) = \int_{-\infty}^{\infty} X(f)\, e^{j2\pi ft}\, df

Nhưng thay vì nhìn vào công thức, mình muốn build intuition theo cách Bogatin dùng: mọi tín hiệu đều có thể được xây dựng từ các sóng sine cộng lại với nhau.

Đây là insight quan trọng nhất. Một xung vuông — thứ mà mình thấy hàng ngày trong digital signal — không phải là một thực thể đơn giản trong frequency domain. Nó là tổng của vô số sóng sine với tần số khác nhau:

xsquare(t)=4Aπ(sin(2πf0t)+13sin(6πf0t)+15sin(10πf0t)+)x_{square}(t) = \frac{4A}{\pi}\left(\sin(2\pi f_0 t) + \frac{1}{3}\sin(6\pi f_0 t) + \frac{1}{5}\sin(10\pi f_0 t) + \cdots\right)

Tức là một xung vuông 1 GHz1\ \text{GHz} không chỉ chứa năng lượng ở 1 GHz1\ \text{GHz} — nó chứa năng lượng ở 1 GHz1\ \text{GHz}, 3 GHz3\ \text{GHz}, 5 GHz5\ \text{GHz}, 7 GHz7\ \text{GHz}… tất cả các harmonics lẻ, giảm dần theo 1/n1/n.

Và đây là nơi mọi thứ bắt đầu liên quan trực tiếp đến thiết kế.


Rise time và bandwidth — công thức engineer cần nhớ

Từ xung vuông lý tưởng đến xung thực tế

Xung vuông lý tưởng có rise time = 0 — tức nó thay đổi từ thấp lên cao ngay lập tức. Trong frequency domain, điều này có nghĩa là nó chứa vô số harmonic với biên độ không bao giờ về 0. Bandwidth của nó là vô hạn.

Xung thực tế thì khác. Rise time luôn có giá trị hữu hạn — do bandwidth hữu hạn của driver, do parasitic capacitance của interconnect, hay do bandwidth của measurement system. Và rise time hữu hạn tương đương với bandwidth hữu hạn trong frequency domain.

Bogatin đưa ra một quy tắc rất thực tế:

BW0.35trBW \approx \frac{0.35}{t_r}

Trong đó trt_r là rise time đo từ 10% đến 90% của biên độ tín hiệu, và BWBW là bandwidth tính bằng Hz khi trt_r tính bằng giây.

Tính nhanh với con số cụ thể

Với tín hiệu có rise time tr=1 nst_r = 1\ \text{ns}:

BW0.351×109=350 MHzBW \approx \frac{0.35}{1 \times 10^{-9}} = 350\ \text{MHz}

Với tín hiệu tr=100 pst_r = 100\ \text{ps} (điển hình trong high-speed SerDes):

BW0.35100×1012=3.5 GHzBW \approx \frac{0.35}{100 \times 10^{-12}} = 3.5\ \text{GHz}

Với tín hiệu tr=10 pst_r = 10\ \text{ps}:

BW0.3510×1012=35 GHzBW \approx \frac{0.35}{10 \times 10^{-12}} = 35\ \text{GHz}

Đây là con số bandwidth tối thiểu mà measurement system của mình phải có để đo chính xác tín hiệu đó. Nếu oscilloscope chỉ có bandwidth 1 GHz1\ \text{GHz} mà mình dùng nó đo tín hiệu tr=100 pst_r = 100\ \text{ps}, thì mình đang đo một tín hiệu đã bị “lọc” mất phần lớn năng lượng cao tần — rise time đo được sẽ chậm hơn thực tế rất nhiều.

Tại sao 0.35?

Con số 0.35 không phải magic — nó đến từ đặc tính của Gaussian filter (hay single-pole RC filter). Với RC filter một pole:

BW3dB=12πRCBW_{-3dB} = \frac{1}{2\pi RC}

Và rise time của RC filter:

tr=2.2×RCt_r = 2.2 \times RC

Kết hợp lại:

BW×tr=12πRC×2.2RC=2.22π0.35BW \times t_r = \frac{1}{2\pi RC} \times 2.2 RC = \frac{2.2}{2\pi} \approx 0.35

Vậy BW×tr0.35BW \times t_r \approx 0.35 là hệ quả trực tiếp của single-pole bandwidth-limiting system. Với Gaussian filter thì hệ số này là 0.440.44. Trong thực tế, 0.350.35 là con số an toàn cho hầu hết tín hiệu digital.


Spectrum của tín hiệu trapezoidal — harmonic nào còn quan trọng?

Xung vuông lý tưởng không tồn tại trong thực tế. Tín hiệu thực tế có rise time và fall time hữu hạn — mình gọi là trapezoidal waveform. Về mặt toán học, trapezoidal waveform vẫn chứa vô số harmonic — bandwidth của nó vẫn là vô hạn. Nhưng không phải tất cả harmonic đều quan trọng như nhau.

Bogatin tiếp cận theo câu hỏi thực tế hơn: harmonic nào còn “significant”?

Định nghĩa của ông: một harmonic được coi là significant nếu biên độ của nó trong trapezoidal waveform còn lớn hơn 70% so với biên độ harmonic tương ứng trong ideal square wave. Khi biên độ đã giảm xuống dưới 70% — tức đã bị attenuate hơn 3 dB-3\ \text{dB} — harmonic đó không còn đóng góp đáng kể vào hình dạng của tín hiệu nữa.

Rise time quyết định harmonic nào là harmonic “cuối cùng còn significant.” Harmonic nn của một xung vuông có tần số fn=nf0f_n = n \cdot f_0. Với trapezoidal waveform có rise time trt_r, Bogatin chỉ ra rằng harmonic cao nhất còn significant xấp xỉ tương ứng với bandwidth:

BW0.35trBW \approx \frac{0.35}{t_r}

Đây chính là công thức mình đã dùng ở phần trước — nhưng bây giờ mình hiểu rõ hơn ý nghĩa của nó: BWBW không phải “tần số cao nhất trong tín hiệu” mà là “tần số cao nhất mà tại đó harmonic còn đủ mạnh để ảnh hưởng đến hình dạng của tín hiệu.”

Rise time kiểm soát harmonic nào còn significant

Lấy ví dụ clock 200 MHz (period T=5 nsT = 5\ \text{ns}). Ideal square wave của nó có harmonics ở 200 MHz, 600 MHz, 1 GHz, 1.4 GHz… giảm dần theo 1/n1/n.

Với driver có tr=500 pst_r = 500\ \text{ps}:

BW=0.35500×1012=700 MHzBW = \frac{0.35}{500 \times 10^{-12}} = 700\ \text{MHz}

Tức là chỉ harmonic ở 200 MHz và 600 MHz là còn significant — harmonic thứ ba (1 GHz) đã bị attenuate đáng kể so với ideal square wave. Năng lượng của tín hiệu này tập trung chủ yếu dưới 700 MHz.

Với driver nhanh hơn có tr=100 pst_r = 100\ \text{ps}:

BW=0.35100×1012=3.5 GHzBW = \frac{0.35}{100 \times 10^{-12}} = 3.5\ \text{GHz}

Giờ thì harmonic ở 200 MHz, 600 MHz, 1 GHz, 1.4 GHz, 1.8 GHz, 2.2 GHz, 2.6 GHz, 3 GHz đều còn significant — nhiều hơn rất nhiều so với driver chậm.

Ứng dụng trực tiếp: EMI và rise time

Đây là insight quan trọng nhất: rise time ngắn hơn làm cho nhiều harmonic cao hơn trở thành significant — tức năng lượng của tín hiệu trải rộng ra đến tần số cao hơn nhiều.

Với driver tr=500 pst_r = 500\ \text{ps}: harmonics significant đến ~700 MHz

Với driver tr=100 pst_r = 100\ \text{ps}: harmonics significant đến ~3.5 GHz

Khi team digital tăng tốc driver từ tr=500 pst_r = 500\ \text{ps} xuống tr=100 pst_r = 100\ \text{ps}, những harmonic ở 1 GHz, 1.4 GHz, 1.8 GHz… vốn trước đây đã bị attenuate mạnh — giờ trở nên significant. Đây là năng lượng mới xuất hiện ở tần số cao, coupling vào substrate, radiating ra ngoài, và gây EMI.

Đây là lý do EMI engineer luôn lo lắng khi team digital muốn “tăng tốc driver để giảm timing margin” — không phải vì năng lượng tổng tăng lên, mà vì phân bố của năng lượng đó thay đổi: nhiều harmonic cao hơn trở nên đủ mạnh để gây vấn đề.


Hai domain — hai công cụ debug khác nhau

Bây giờ mình có thể trả lời câu hỏi thực tế hơn: khi nào dùng time domain, khi nào dùng frequency domain?

Khi nào nhìn time domain

Debug timing và waveform quality. Overshoot, ringing, settling time, setup và hold time violation — tất cả những thứ này chỉ nhìn thấy được trong time domain. Nếu mình thấy ringing sau rising edge, mình biết có reflection từ impedance discontinuity. Nếu mình thấy settling time dài, mình biết Q factor của hệ thống cao.

Verify slew rate và rise time của driver. Đây là đặc tính time domain trực tiếp. Từ rise time đo được, mình tính BW=0.35/trBW = 0.35/t_r để biết tín hiệu này sẽ gây vấn đề gì ở tần số cao.

Debug glitch và transient. Glitch trong tín hiệu analog — ví dụ code dependent glitch trong DAC — chỉ thấy rõ trong time domain với trigger phù hợp.

Khi nào nhìn frequency domain

Debug noise và EMI. Khi mạch analog có noise mà không biết từ đâu, spectrum analyzer sẽ chỉ ra ngay tần số của noise đó. Nếu thấy spike ở 100 MHz100\ \text{MHz}, mình biết đó là switching frequency của power supply. Nếu thấy spike ở 2.4 GHz2.4\ \text{GHz}, mình biết có coupling từ WiFi.

Verify bandwidth của amplifier. AC simulation trong SPICE là frequency domain analysis. Gain và phase margin — những thứ quyết định stability — chỉ rõ ràng khi nhìn trong frequency domain.

Phân tích PDN (Power Delivery Network). Impedance của PDN được đo và spec trong frequency domain. Nếu ZPDN(f)Z_{PDN}(f) vượt quá target impedance ở một tần số nào đó, mình biết mạch sẽ có noise ở tần số đó khi có load transient.


Ví dụ thiết kế — chọn bandwidth cho measurement system

Mình đang đo tín hiệu clock 500 MHz500\ \text{MHz} với rise time 200 ps200\ \text{ps}. Oscilloscope mình có bandwidth bao nhiêu là đủ?

Bước 1 — Tính bandwidth của tín hiệu:

BWsignal=0.35200×1012=1.75 GHzBW_{signal} = \frac{0.35}{200 \times 10^{-12}} = 1.75\ \text{GHz}

Bước 2 — Hiểu tại sao oscilloscope làm chậm rise time

Oscilloscope không phải công cụ đo hoàn hảo — nó có bandwidth hữu hạn của chính nó, tức là nó hoạt động như một low-pass filter đặt giữa tín hiệu thực và màn hình hiển thị. Khi tín hiệu đi qua filter này, các harmonic cao bị attenuate — và hệ quả là rise time trông chậm hơn thực tế.

Nếu oscilloscope có bandwidth BWscopeBW_{scope}, rise time tương đương của nó là:

tr,scope=0.35BWscopet_{r,scope} = \frac{0.35}{BW_{scope}}

Ví dụ scope 1 GHz có tr,scope=0.35/1×109=350 pst_{r,scope} = 0.35 / 1 \times 10^9 = 350\ \text{ps}.

Bước 3 — Công thức cộng bình phương (RSS)

Khi tín hiệu đi qua oscilloscope, rise time tổng mà mình đo được trên màn hình không phải là tổng đơn giản tr,signal+tr,scopet_{r,signal} + t_{r,scope}. Với các bandwidth-limiting system có đặc tính Gaussian — và đây là approximation tốt cho hầu hết oscilloscope — rise time tổng được tính theo công thức Root Sum of Squares (RSS):

tr,measured=tr,signal2+tr,scope2t_{r,measured} = \sqrt{t_{r,signal}^2 + t_{r,scope}^2}

Intuition của công thức này: mỗi single-pole system làm rộng rise time độc lập với nhau, và khi ghép nhiều hệ thống Gaussian lại thì variance (bình phương) cộng lại — giống như cộng hai phân bố Gaussian độc lập. Kết quả là rise time tổng luôn lớn hơn từng thành phần riêng lẻ, nhưng không lớn bằng tổng tuyến tính.

Bước 4 — Tính sai số và tìm bandwidth cần thiết

Sai số đo rise time là:

error=tr,measuredtr,signaltr,signal=tr,signal2+tr,scope2tr,signaltr,signal\text{error} = \frac{t_{r,measured} - t_{r,signal}}{t_{r,signal}} = \frac{\sqrt{t_{r,signal}^2 + t_{r,scope}^2} - t_{r,signal}}{t_{r,signal}}

Nếu mình muốn sai số dưới 3%, cần tìm tr,scopet_{r,scope} thỏa mãn:

1+(tr,scopetr,signal)2<1.03\sqrt{1 + \left(\frac{t_{r,scope}}{t_{r,signal}}\right)^2} < 1.03

Bình phương hai vế: 1+(tr,scope/tr,signal)2<1.06091 + (t_{r,scope}/t_{r,signal})^2 < 1.0609

Tức (tr,scope/tr,signal)2<0.0609(t_{r,scope}/t_{r,signal})^2 < 0.0609, hay tr,scope/tr,signal<0.247t_{r,scope}/t_{r,signal} < 0.247

Làm tròn an toàn: tr,scope<tr,signal/3t_{r,scope} < t_{r,signal}/3

Với tr,signal=200 pst_{r,signal} = 200\ \text{ps}:

tr,scope<200 ps367 pst_{r,scope} < \frac{200\ \text{ps}}{3} \approx 67\ \text{ps}

Tương đương bandwidth oscilloscope:

BWscope>0.3567×10125.2 GHzBW_{scope} > \frac{0.35}{67 \times 10^{-12}} \approx 5.2\ \text{GHz}

Verify — nếu dùng scope 1 GHz:

tr,scope=350 pst_{r,scope} = 350\ \text{ps}, rise time đo được:

tr,measured=(200)2+(350)2=40000+122500=162500403 pst_{r,measured} = \sqrt{(200)^2 + (350)^2} = \sqrt{40000 + 122500} = \sqrt{162500} \approx 403\ \text{ps}

Sai số:

error=403200200101%\text{error} = \frac{403 - 200}{200} \approx 101\%

Rise time đo được sai hơn 2 lần so với thực tế — và người đo không biết vì số liệu vẫn trông “hợp lý.”

Rule of thumb: Bandwidth oscilloscope nên ít nhất gấp 5 lần bandwidth của tín hiệu cần đo (BWscope5×BWsignalBW_{scope} \geq 5 \times BW_{signal}). Con số này tương đương với tr,scopetr,signal/5t_{r,scope} \leq t_{r,signal}/5 — cho sai số dưới 2%, tốt hơn ngưỡng 3% ở trên. Bogatin recommend con số này và mình thấy đúng trong thực tế.


Kết nối với AMS design — tại sao cả hai domain đều cần thiết

Ví dụ 1 — Substrate noise: từ time domain sang frequency domain để tìm

thủ phạm

Đây là tình huống khá phổ biến trong mixed-signal design: mạch analog hoạt động tốt khi test riêng lẻ, nhưng khi tích hợp cùng digital block trên cùng một chip thì output bắt đầu có noise.

Bước 1 — Nhìn oscilloscope trước

Mình connect oscilloscope vào output của amplifier và thấy một ripple định kỳ chồng lên tín hiệu analog — biên độ khoảng 2–3 mV, trông khá đều đặn. Nhìn trong time domain chỉ biết được noise, không biết từ đâu.

Bước 2 — Chuyển sang frequency domain để tìm thủ phạm

Dùng FFT của oscilloscope, mình thấy ngay một spike rõ ràng ở 200 MHz — và các harmonic nhỏ hơn ở 400 MHz, 600 MHz. Con số 200 MHz nói thẳng với mình: có một clock 200 MHz nào đó đang coupling noise vào mạch analog.

Trace lại floorplan: digital block chạy clock 200 MHz nằm cách analog block khoảng 300 µm trên cùng tấm silicon. Nhìn từ ngoài thì xa, nhưng cả hai đều dùng chung p-substrate bên dưới.

Floorplan chip — vị trí digital block, analog block, driver buffer,
và đường coupling qua substrate

Cơ chế coupling — noise đến từ đâu trong digital block?

Nguồn noise không phải là clock signal trên wire — mà là driver buffer bên trong digital block, tầng inverter cuối cùng drive clock đến các flip-flop.

Mỗi lần clock chuyển từ 0→1 hay 1→0, các transistor bên trong driver switching mạnh — dòng transient lớn dI/dtdI/dt chạy qua drain junction của NMOS và PMOS. Drain junction là pn junction, tức nó có CdbC_{db} — và CdbC_{db} nối thẳng với p-substrate bên dưới. Dòng transient này coupling vào substrate qua CdbC_{db}, lan ra xung quanh theo substrate resistance, và cuối cùng đến bulk của transistor analog.

[Hình: Cross-section — driver inverter với Cdb coupling vào substrate, substrate resistance, bulk của NMOS analog]

Khi substrate voltage dao động, VthV_{th} của transistor analog thay đổi theo body effect — và đó là nguồn gốc của ripple 2–3 mV ở output.

Tại sao spike ở 200 MHz mà không phải tần số khác?

200 MHz là fundamental frequency của clock — đương nhiên nó có năng lượng lớn nhất. Các harmonic ở 400 MHz, 600 MHz cũng có mặt nhưng nhỏ hơn.

Câu hỏi quan trọng hơn: harmonic nào còn đủ mạnh để gây vấn đề? Driver có rise time tr=500 pst_r = 500\ \text{ps}, tức bandwidth:

BW=0.35500×1012=700 MHzBW = \frac{0.35}{500 \times 10^{-12}} = 700\ \text{MHz}

Có nghĩa là harmonic ở 200 MHz và 400 MHz đều còn significant — biên độ của chúng chưa bị attenuate đáng kể so với ideal square wave. Harmonic ở 600 MHz đang ở vùng ranh giới, và các harmonic trên 700 MHz đã bị attenuate mạnh.

Nếu driver có rise time chậm hơn — ví dụ tr=1.6 nst_r = 1.6\ \text{ns}:

BW=0.351.6×109220 MHzBW = \frac{0.35}{1.6 \times 10^{-9}} \approx 220\ \text{MHz}

Lúc này chỉ còn harmonic fundamental ở 200 MHz là significant — harmonic ở 400 MHz và 600 MHz đã bị attenuate đáng kể. Fundamental vẫn coupling vào substrate như cũ, nhưng các harmonic cao hơn không còn đủ mạnh để gây thêm vấn đề. Đây là lý do slew rate control của driver — cố tình làm chậm rise time — là một kỹ thuật giảm substrate noise mà không cần thay đổi layout.

Bước 3 — Fix trong thực tế: không đơn giản như viết lại code

Lúc này mình biết chính xác thủ phạm và cơ chế. Nhưng fix thật sự thì không dễ.

Thêm guard ring, tăng separation, hay dùng deep n-well để isolate analog block — tất cả những thứ đó chỉ có thể làm trong lần tapeout tiếp theo. Spin lại chip tốn tiền tapeout, tốn thời gian hàng tháng. Không ai phê duyệt spin chỉ vì 2–3 mV noise trừ khi nó block toàn bộ spec của sản phẩm.

Vậy với chip đã tapeout, mình có thể làm gì?

Clock gating có chọn lọc. Nếu digital block có thể gate clock của một số sub-block không cần thiết trong lúc analog đang sampling — đây là fix không tốn chi phí silicon. Nhiều mixed-signal chip có kiến trúc “quiet window” — một khoảng thời gian ngắn mà digital activity bị giảm tối đa để ADC lấy sample sạch.

Slew rate control của driver. Nếu driver có programmable drive strength, giảm drive strength để tăng rise time — bandwidth của tín hiệu giảm xuống, harmonic cao bị attenuate hơn. Trade-off là timing margin của digital signal bị ảnh hưởng, nhưng thường chấp nhận được nếu chỉ cần tăng rise time vừa phải.

Decoupling ngoài chip. Thêm decoupling cap sát chip để giảm noise trên supply rail. Không fix được substrate coupling trực tiếp, nhưng giảm được một phần dI/dtdI/dt qua supply bounce.

Tất cả những thứ trên đều là workaround. Fix thật — guard ring, deep n-well isolation, tách power domain — chỉ có trong lần tapeout tiếp theo.

Bước 4 — Câu chuyện giả định: nếu làm đúng từ trước tapeout

Giả sử mình quay lại trước lúc tapeout. Quy trình mà nhiều team AMS dùng — và mình nghĩ là đúng — là đưa noise profile của các block “ồn ào” vào simulation của block nhạy cảm ngay từ giai đoạn thiết kế. Với ví dụ này, block nhạy cảm chính là amplifier đang bị ảnh hưởng — nhưng quy trình tương tự áp dụng cho bất kỳ block analog nào: ADC, bandgap reference, hay LDO.

Bước A — Characterize noise profile của digital block

Từ simulation của digital block, mình extract waveform của substrate current — dòng Isub(t)I_{sub}(t) mà driver inject vào substrate mỗi lần switching. Đây là transient simulation đơn giản: đo dòng chạy qua bulk terminal của các transistor trong driver.

FFT của Isub(t)I_{sub}(t) cho ra noise spectrum: spike ở 200 MHz, 400 MHz, 600 MHz với biên độ cụ thể ở từng tần số. Kết hợp với substrate resistance model — thường lấy từ PDK hoặc extract từ layout tool — mình tính được điện áp noise tại vị trí dự kiến của amplifier:

Vsub,noise(f)=Isub(f)×Rsub(f)V_{sub,noise}(f) = I_{sub}(f) \times R_{sub}(f)

Với RsubR_{sub} khoảng vài ohm đến vài chục ohm tùy process và khoảng cách giữa hai block.

Bước B — Inject noise vào simulation của amplifier

Thay vì simulate amplifier trong môi trường lý tưởng, mình thêm noise source vào bulk terminal của các transistor nhạy cảm nhất — thường là input differential pair, vì VthV_{th} của chúng ảnh hưởng trực tiếp đến offset và gain. Noise source này có waveform lấy từ bước A.

Trong SPICE, cách đơn giản nhất là thêm một voltage source nhỏ vào bulk:

Vnoise_sub bulk_M1 0 dc 0 sin(0 2m 200Meg)
* 2mV tại 200MHz — estimate từ Vsub_noise(f) ở bước A

Sau đó chạy transient simulation và đo ripple ở output của amplifier — xem nó có vượt quá noise budget không.

Bước C — Quyết định có cần guard ring hay deep n-well không

Nếu simulation cho thấy noise 2–3 mV từ substrate đã tạo ra ripple vượt quá noise budget của amplifier — thì đây là con số cụ thể để justify thêm guard ring hay deep n-well vào layout, dù nó tốn thêm area.

Nếu simulation cho thấy amplifier vẫn đạt spec dù có noise đó — thì mình tapeout với confidence, không phải với hy vọng.

Sự khác biệt giữa hai trường hợp không phải là may mắn hay kinh nghiệm — mà là có hay không có bước simulate với noise profile thực tế trước tapeout. Respin silicon vì substrate noise là một trong những lý do phổ biến và đau nhất trong AMS design, vì nó thường chỉ xuất hiện khi tích hợp đầy đủ — không thấy khi test từng block riêng lẻ.

Bài học: Frequency domain không chỉ là công cụ debug sau tapeout. Nó là công cụ để predict vấn đề từ lúc thiết kế — estimate noise coupling, check separation có đủ không, quyết định có cần deep n-well hay không. Debug bằng FFT sau tapeout là tốt. Dùng frequency domain analysis để không cần debug mới là mục tiêu thực sự.

Tổng kết

Time domain và frequency domain không phải hai thứ riêng biệt — chúng là hai cách nhìn khác nhau vào cùng một tín hiệu. Fourier Transform là cây cầu nối giữa hai domain, và BW0.35/trBW \approx 0.35/t_r là công thức engineer dùng hàng ngày để đi qua cây cầu đó.

Ba điều cần nhớ:

Thứ nhất: Rise time và bandwidth là hai mặt của một đồng xu — BW0.35/trBW \approx 0.35/t_r. Đây không phải tần số cao nhất trong tín hiệu mà là tần số cao nhất mà tại đó harmonic còn đủ mạnh để ảnh hưởng đến hình dạng tín hiệu — tức còn “significant” theo nghĩa của Bogatin.

Thứ hai: Rise time ngắn hơn → bandwidth rộng hơn → nhiều harmonic cao hơn trở nên significant. Đây là lý do tăng tốc driver làm tăng EMI và substrate noise — không phải vì năng lượng tổng tăng, mà vì nhiều harmonic cao hơn trở nên đủ mạnh để coupling và radiate.

Thứ ba: Chọn domain phù hợp với câu hỏi đang cần trả lời. Timing và waveform quality → time domain. Noise, EMI, bandwidth, và impedance → frequency domain. Quan trọng hơn, đừng chỉ dùng frequency domain để debug sau tapeout — dùng nó để predict vấn đề từ lúc thiết kế, inject noise profile thực tế vào simulation, và tapeout với confidence thay vì hy vọng.


Tham khảo

  • Bogatin, Signal and Power Integrity — Simplified, 3rd ed., Chương 2 — nguồn chính cho bài này. Phần “Bandwidth and Rise Time” và “What Does Significant Mean?” là hai section quan trọng nhất — Bogatin giải thích rất trực quan tại sao BW=0.35/trBW = 0.35/t_r và harmonic nào còn significant trong trapezoidal waveform.
  • Bogatin, Signal and Power Integrity — Simplified, Chương 1 — đọc trước để có context về signal integrity fundamentals.
  • Eric Bogatin’s Signal Integrity AcademybeTheSignal.com — video và webinar miễn phí, tone giải thích tương tự sách.