← Về trang chủ
Cơ bản IC 09 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

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ới con số cụ thể và ví dụ substrate noise debug thực tế.

signal integritytime domainfrequency domainbandwidthrise timeAMS

Mình hay hỏi junior engineer một câu: “Rise time 1 ns thì bandwidth bao nhiêu?” Câu trả lời phổ biến nhất là im lặng — hoặc “cần biết thêm thông tin.”

Thực ra có một công thức rất đơn giản. Nhưng để hiểu tại sao nó đúng — và quan trọng hơn, tại sao nó ảnh hưởng đến thiết kế hàng ngày — mình cần hiểu mối liên hệ giữa time domain và frequency domain. Hai cách nhìn cùng một tín hiệu, mỗi cách trả lời một loại câu hỏi khác nhau.

Bài này đi qua:

  1. Tại sao cần hai domain — oscilloscope vs spectrum analyzer, mỗi cái trả lời câu hỏi gì
  2. Fourier Transform — build intuition, không chứng minh: mọi tín hiệu = tổng sóng sine
  3. BW0.35/trBW \approx 0.35/t_r — công thức từ đâu ra, con số 0.35 nghĩa là gì
  4. Significant harmonic — concept của Bogatin: harmonic nào còn quan trọng, harmonic nào bỏ qua được
  5. Chọn bandwidth oscilloscope — ví dụ tính toán step-by-step với RSS
  6. Substrate noise debug — ví dụ thực tế từ oscilloscope → FFT → root cause → fix

Tại sao cần hai domain?

Oscilloscope và spectrum analyzer đều đo tín hiệu điện. Nhưng mỗi cái cho một bức tranh khác nhau.

Oscilloscope — time domain — cho mình thấy điện áp thay đổi theo thời gian: tín hiệu lên mức cao trong bao lâu, có overshoot không, settling time bao nhiêu. Spectrum analyzer — frequency domain — cho mình thấy tín hiệu chứa những tần số nào, mỗi tần số mạnh bao nhiêu, noise floor ở đâu.

Cùng một tín hiệu, hai bức tranh khác nhau hoàn toàn. Và trong AMS design, mình cần cả hai:

  • Debug timing violation → oscilloscope
  • Debug EMI hay substrate noise → spectrum
  • Thiết kế bandwidth amplifier → frequency domain
  • Verify slew rate → time domain

Hai domain này không độc lập — chúng là hai mặt của cùng một đồng xu. Vấn đề là mình cần biết cách lật từ mặt này sang mặt kia.


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

Fourier Transform chuyển đổi giữa time domain và frequency 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 tích phân, mình muốn build intuition theo cách thực tế hơn: mọi tín hiệu đều có thể xây dựng từ các sóng sine cộng lại.

Một xung vuông — thứ mình thấy hàng ngày trong digital signal — trong frequency domain không phải thực thể đơn giản. Nó là tổng vô số sóng sine:

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)

Ví dụ, xung vuông 1 GHz1\ \text{GHz} 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ả harmonics lẻ, biên độ giảm dần theo 1/n1/n.

Fourier Transform

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 mình dùng hàng ngày

Xung thực tế khác xung lý tưởng ở đâu?

Xung vuông lý tưởng có rise time bằng 0 — chuyển từ thấp lên cao ngay lập tức. Trong frequency domain, điều đó có nghĩa nó chứa vô số harmonic, bandwidth vô hạn.

Xung thực tế thì khác. Rise time luôn hữu hạn — do bandwidth của driver, do parasitic capacitance trên interconnect, do measurement system. Rise time hữu hạn tương đương bandwidth hữu hạn.

Bogatin đưa ra một quy tắc rất gọn trong Signal and Power Integrity — Simplified, chương 2:

BW0.35tr\boxed{BW \approx \frac{0.35}{t_r}}

trt_r là rise time (10% đến 90%), BWBW là bandwidth tính bằng Hz khi trt_r tính bằng giây.

Tính nhanh — build intuition bằng con số

Rise timeBandwidthGặp ở đâu
1 ns1\ \text{ns}350 MHz350\ \text{MHz}Clock tầm trung, GPIO
100 ps100\ \text{ps}3.5 GHz3.5\ \text{GHz}High-speed SerDes
10 ps10\ \text{ps}35 GHz35\ \text{GHz}112G PAM4 SerDes

Con số bandwidth này nói cho mình biết: measurement system phải có bandwidth tối thiểu bằng giá trị đó để đo chính xác tín hiệu. Nếu oscilloscope chỉ có 1 GHz1\ \text{GHz} bandwidth mà mình đo tín hiệu tr=100 pst_r = 100\ \text{ps} — 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, và mình không biết vì con số vẫn trông “hợp lý.”

0.35 từ đâu ra?

Không phải magic. Lấy RC filter một pole — thứ đơn giản nhất có bandwidth hữu hạn:

BW3dB=12πRC,tr=2.2×RCBW_{-3dB} = \frac{1}{2\pi RC}, \qquad t_r = 2.2 \times RC

Nhân hai thứ 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ới Gaussian filter thì hệ số 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 — đây là hệ quả trực tiếp của single-pole bandwidth-limiting system.


Harmonic nào còn “significant”?

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

Bogatin tiếp cận câu hỏi này rất thực tế: một harmonic là significant nếu biên độ của nó trong trapezoidal waveform còn lớn hơn 70% so với harmonic tương ứng trong ideal square wave. Khi biên độ giảm 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 tín hiệu nữa.

Rise time quyết định harmonic nào là harmonic “cuối cùng còn significant.” Và ranh giới đó xấp xỉ chính là:

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

Bây giờ mình hiểu rõ hơn ý nghĩa: 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 tín hiệu.”

Ví dụ: clock 200 MHz, hai driver khác nhau

Clock 200 MHz200\ \text{MHz} (period T=5 nsT = 5\ \text{ns}). Harmonics ở 200, 600, 1000, 1400 MHz… giảm dần theo 1/n1/n.

Driver chậmtr=500 pst_r = 500\ \text{ps}:

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

Chỉ harmonic fundamental (200 MHz) và harmonic thứ ba (600 MHz) còn significant. Harmonic ở 1 GHz đã bị attenuate đáng kể. Năng lượng tập trung dưới 700 MHz.

Driver nhanhtr=100 pst_r = 100\ \text{ps}:

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

Bây giờ harmonics ở 200, 600, 1000, 1400, 1800, 2200, 2600, 3000 MHz — tất cả đều còn significant. Nhiều hơn rất nhiều.

So sánh Significant Harmonics

Ứng dụng trực tiếp — tại sao driver nhanh hơn gây thêm EMI

Khi team digital tăng tốc driver từ tr=500 pst_r = 500\ \text{ps} xuống 100 ps100\ \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.

Không phải năng lượng tổng tăng — mà phân bố năng lượng thay đổi: nhiều harmonic cao hơn đủ mạnh để gây vấn đề. Đây là lý do EMI engineer luôn hỏi “rise time bao nhiêu” trước khi hỏi bất cứ thứ gì khác.


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

Khi nào dùng domain nào?

Time domain — dùng khi cần debug timing và waveform

Overshoot, ringing, settling time, setup/hold violation — tất cả chỉ nhìn thấy trong time domain. Ringing sau rising edge → reflection từ impedance discontinuity. Settling time dài → Q factor cao. Glitch trong DAC output → code-dependent transient. Slew rate, rise time — đo trực tiếp, rồi tính BW=0.35/trBW = 0.35/t_r để biết tín hiệu gây vấn đề gì ở tần số cao.

Frequency domain — dùng khi cần debug noise, EMI, bandwidth

Mạch analog có noise không biết từ đâu → spectrum analyzer chỉ ra ngay tần số. Spike ở 100 MHz100\ \text{MHz} → switching frequency của power supply. Spike ở 2.4 GHz2.4\ \text{GHz} → coupling từ WiFi. Bandwidth amplifier, phase margin, PDN impedance — tất cả chỉ rõ ràng trong frequency domain.


Ví dụ thiết kế — chọn bandwidth oscilloscope đo clock 500 MHz

Mình đang đo clock 500 MHz500\ \text{MHz} có rise time 200 ps200\ \text{ps}. Cần scope bandwidth bao nhiêu?

Bước 1 — 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 — Oscilloscope cũng có bandwidth hữu hạn

Scope không phải công cụ đo hoàn hảo — nó hoạt động như một low-pass filter giữa tín hiệu thực và màn hình. Harmonic cao bị attenuate → rise time trông chậm hơn thực tế. Scope 1 GHz1\ \text{GHz} có rise time tương đương:

tr,scope=0.351×109=350 pst_{r,scope} = \frac{0.35}{1 \times 10^{9}} = 350\ \text{ps}

Bước 3 — Rise time cộng bình phương (RSS)

Khi tín hiệu đi qua scope, rise time đo được không phải tổng đơn giản. Với các bandwidth-limiting system có đặc tính gần Gaussian — đúng cho hầu hết scope — rise time tổng tính theo Root Sum of Squares:

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

Intuition: mỗi single-pole system làm “rộng” rise time độc lập, variance (bình phương) cộng lại — giống cộng hai phân bố Gaussian độc lập.

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

Sai số đo rise time:

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}}

Muốn sai số dưới 3%:

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<200367 psBWscope>0.3567×10125.2 GHzt_{r,scope} < \frac{200}{3} \approx 67\ \text{ps} \quad \Rightarrow \quad BW_{scope} > \frac{0.35}{67 \times 10^{-12}} \approx 5.2\ \text{GHz}

Verify — nếu lỡ dùng scope 1 GHz thì sao?

tr,scope=350 pst_{r,scope} = 350\ \text{ps}:

tr,measured=2002+3502=40000+122500=162500403 pst_{r,measured} = \sqrt{200^2 + 350^2} = \sqrt{40000 + 122500} = \sqrt{162500} \approx 403\ \text{ps} error=403200200101%\text{error} = \frac{403 - 200}{200} \approx 101\%

Rise time đo được sai hơn 2 lần — và con số 403 ps vẫn trông “hợp lý” nên người đo không nghi ngờ gì. Đây là lỗi phổ biến: scope bandwidth không đủ nhưng kết quả vẫn ra số — chỉ là số sai.

Rule of thumb: Bandwidth scope nên ít nhất gấp 5 lần bandwidth tín hiệu: BWscope5×BWsignalBW_{scope} \geq 5 \times BW_{signal}. Con số này cho sai số dưới 2% — tốt hơn ngưỡng 3% ở trên. Bogatin recommend con số này trong Signal and Power Integrity — Simplified, chương 2, và mình thấy đúng trong thực tế.


Kết nối AMS design — substrate noise debug thực tế

Từ time domain sang frequency domain để tìm thủ phạm

Tình huống phổ biến trong mixed-signal: mạch analog chạy tốt khi test riêng, nhưng tích hợp cùng digital block trên cùng chip thì output có noise.

Bước 1 — Oscilloscope trước

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

Bước 2 — FFT để tìm thủ phạm

Dùng FFT trên oscilloscope, mình thấy ngay 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: có clock 200 MHz nào đó đang coupling 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 µm300\ \text{µm} trên cùng tấm silicon. Cả hai dùng chung p-substrate.

Substrate Noise

Cơ chế coupling — noise đi qua đâu?

Nguồn noise không phải clock signal trên wire — mà là driver buffer bên trong digital block. Mỗi lần clock switching, dòng transient dI/dtdI/dt lớn chạy qua drain junction (pn junction) của transistor. Junction này có CdbC_{db} nối thẳng p-substrate. Dòng transient coupling vào substrate qua CdbC_{db}, lan ra theo substrate resistance, đến bulk của transistor analog.

Substrate voltage dao động → VthV_{th} của transistor analog thay đổi theo body effect → ripple 2–3 mV ở output.

Harmonic nào gây vấn đề?

200 MHz là fundamental — năng lượng lớn nhất. 400 MHz, 600 MHz cũng có mặt nhưng nhỏ hơn. 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}

Harmonic ở 200 MHz và 400 MHz đều còn significant. 600 MHz đang ở ranh giới. Trên 700 MHz đã bị attenuate mạnh.

Nếu driver chậm hơn — 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}

Chỉ còn fundamental 200 MHz significant — 400 MHz và 600 MHz đã bị attenuate. Fundamental vẫn coupling, nhưng harmonic cao không còn gây thêm vấn đề. Đây là lý do slew rate control — cố tình làm chậm rise time — giảm substrate noise mà không cần đổi layout.

Bước 3 — Fix chip đã tapeout

Biết chính xác thủ phạm và cơ chế rồi, nhưng fix không dễ. Guard ring, deep n-well, tách power domain — tất cả chỉ làm được ở lần tapeout tiếp. Respin chip tốn tiền và thời gian hàng tháng.

Với chip hiện tại, mình có vài workaround:

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

Giảm drive strength. Nếu driver có programmable drive strength, giảm xuống để tăng rise time → bandwidth tín hiệu giảm → harmonic cao bị attenuate. Trade-off: timing margin digital bị ảnh hưởng, nhưng thường chấp nhận được.

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

Bước 4 — Nếu làm đúng từ trước tapeout

Quy trình mà nhiều team AMS dùng: đưa noise profile của block “ồn” vào simulation của block nhạy cảm ngay từ giai đoạn thiết kế.

Bước A — Characterize noise profile

Từ transient simulation của digital block, extract Isub(t)I_{sub}(t) — dòng driver inject vào substrate mỗi lần switching. FFT ra noise spectrum: spike ở 200, 400, 600 MHz với biên độ cụ thể.

Kết hợp substrate resistance model từ PDK:

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

RsubR_{sub} khoảng vài ohm đến vài chục ohm tùy process và khoảng cách.

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

Thêm noise source vào bulk terminal 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:

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

Chạy transient, đo ripple output — xem có vượt noise budget không.

Bước C — Quyết định guard ring hay deep n-well

Simulation cho noise 2–3 mV gây ripple vượt budget → có con số cụ thể để justify thêm guard ring dù tốn area. Simulation cho amplifier vẫn đạt spec → tapeout với confidence, không phải hy vọng.

Sự khác biệt không phải may mắn — mà là có hay không bước simulate với noise profile thực tế trước tapeout. Respin vì substrate noise là một trong những lý do đau nhất trong AMS design, vì nó chỉ xuất hiện khi tích hợp đầy đủ — không thấy khi test 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, quyết định deep n-well. 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 là hai cách nhìn cùng một tín hiệu. BW0.35/trBW \approx 0.35/t_r là cây cầu để đi qua lại giữa hai domain.

Thứ nhất: BW0.35/trBW \approx 0.35/t_r — rise time và bandwidth là hai mặt của đồng xu. 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à harmonic còn significant — còn đủ mạnh ảnh hưởng hình dạng tín hiệu.

Thứ hai: Rise time ngắn hơn → bandwidth rộng hơn → nhiều harmonic cao trở nên significant. Driver nhanh hơn không tăng năng lượng tổng — nó thay đổi phân bố năng lượng, đẩy harmonic cao lên, gây EMI và substrate noise.

Thứ ba: Chọn domain phù hợp với câu hỏi. Timing, waveform → time domain. Noise, EMI, bandwidth, impedance → frequency domain. Và đừng chỉ dùng frequency domain để debug — dùng nó để predict vấn đề từ lúc thiết kế.


Tham khảo

  • Bogatin, Signal and Power Integrity — Simplified, 3rd ed., Chương 2 — nguồn chính cho bài này. Hai section “Bandwidth and Rise Time” và “What Does Significant Mean?” giải thích trực quan tại sao BW=0.35/trBW = 0.35/t_r và harmonic nào còn significant trong trapezoidal waveform. Đọc để build intuition, không cần background toán nặng.
  • Bogatin, Signal and Power Integrity — Simplified, Chương 1 — đọc trước nếu chưa quen 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(phải đăng ký).