一、CTLE 到底是什么?

连续时间线性均衡器,英文叫 Continuous Time Linear Equalizer,简称 CTLE。说白了,它就是一个模拟滤波器。它的任务很简单:把信号里被信道吃掉的高频分量,给补回来。

我刚开始做 SerDes 那会儿,总觉得这玩意儿不就是个高通滤波器嘛,有啥好研究的?后来被现实狠狠教育了一回——有一次项目里信号眼图完全闭合,我折腾了三天,最后发现是 CTLE 的零极点位置没调对。嗯,从那以后我再也不敢小看它了。

二、零极点模型:CTLE 的灵魂

2.1 传输函数长什么样?

CTLE 的传输函数,用拉普拉斯变换表示,典型形式是这样的:

H(s) = A * (s + ωz1) / [(s + ωp1)(s + ωp2)]

这里:

  • ωz1:零点频率,决定高频补偿的起始点
  • ωp1:第一个极点,限制高频增益
  • ωp2:第二个极点,进一步滚降,抑制噪声
  • A:直流增益,通常为 0dB 或负增益

你想想看,这个结构其实很巧妙。零点负责把高频抬起来,极点负责把高频压下去。一抬一压之间,就形成了我们想要的带通特性。

2.2 零极点的物理意义

我个人习惯把零点理解成「加速器」,极点理解成「刹车」。信道损耗越大,零点就需要越靠近原点,补偿力度越大。但零点太靠前,噪声也会被放大——这就是个 trade-off。

核心公式(记住这个):

CTLE 的峰值频率 ≈ √(ωz1 × ωp1)

峰值增益 ≈ 20log(ωp1 / ωz1) dB

我在项目中遇到过一种情况:某款 28Gbps 的 SerDes,信道损耗达到 20dB。我一开始把零点设在 2GHz,结果眼图还是闭的。后来把零点降到 1.2GHz,峰值增益多了 4dB,眼图一下就睁开了。这就是零点的威力。

三、高频补偿原理:怎么补?补多少?

3.1 信道损耗长什么样?

PCB 走线、连接器、电缆,这些东西对高频信号的衰减,大致是:

  • 低频段:损耗很小,接近 0dB
  • 中频段:损耗随频率线性增加,约 0.1~0.5 dB/GHz
  • 高频段:损耗急剧上升,趋肤效应和介质损耗主导

CTLE 要做的,就是在信道损耗最大的频段,提供对应的增益补偿。说白了就是「缺多少,补多少」。

3.2 补偿曲线怎么设计?

理想的 CTLE 响应,应该和信道损耗曲线「镜像对称」。信道衰减 10dB,CTLE 就抬 10dB。但现实中做不到完美镜像,因为:

  • CTLE 的零点只有一个,补偿带宽有限
  • 高频噪声会被放大,信噪比会下降
  • 工艺偏差会导致零极点漂移

我的经验:CTLE 的峰值增益一般控制在 6~12dB 之间。超过 15dB,噪声放大就不可接受了。这时候需要 DFE 来接力。

四、增益与带宽的权衡:鱼和熊掌

4.1 为什么不能既要又要?

CTLE 的增益和带宽,本质上是一对矛盾。原因很简单:

  • 增益带宽积(GBW)是固定的,由工艺和功耗决定
  • 增益做高了,带宽必然下降
  • 带宽做宽了,增益必然受限

我曾经在一个 56Gbps PAM4 项目中,为了追求带宽,把 CTLE 的增益压得很低。结果呢?信号幅度不够,DFE 的收敛都成问题。后来我学乖了——先保证足够的增益,带宽不够再用 DFE 的反馈来补。

4.2 实际设计中的取舍

场景 优先增益 优先带宽
长距离背板(>30dB 损耗) ✅ 是 ❌ 否
短距离芯片间互联(<10dB 损耗) ❌ 否 ✅ 是
PAM4 调制(对线性度敏感) ⚠️ 适中 ✅ 是
NRZ 调制(对幅度敏感) ✅ 是 ⚠️ 适中

你看,没有绝对的答案。关键看你面对的是什么信道、什么调制方式。

五、CTLE 的典型架构

5.1 源极退化差分对

这是最经典的 CTLE 实现方式。核心结构就是一个差分对,源极加了一个 RC 并联网络。

传输函数近似:
H(s) ≈ gm * RL / [1 + gm * (Rs || 1/sCs)]

其中:
gm:跨导
RL:负载电阻
Rs:源极退化电阻
Cs:源极退化电容

零点由 Rs 和 Cs 决定:ωz = 1/(Rs × Cs)
极点由负载电容决定:ωp = 1/(RL × CL)

我建议你记住这个结构,因为 90% 的 CTLE 都是基于它变出来的。

5.2 多级 CTLE

单级 CTLE 的增益有限,通常只有 6~8dB。如果需要更大的补偿,就得级联。但级联有个坑:

  • 每一级都会引入额外的相位偏移
  • 级数多了,群延迟会变大,影响信号的眼图对称性
  • 功耗也会线性增加

避坑指南:我曾经在一个项目中用了三级 CTLE 级联,结果眼图虽然睁开了,但抖动反而变大了。后来发现是级间耦合电容没选对,低频分量被衰减得太厉害。记住:CTLE 不是越多越好,够用就行。

六、CTLE 的建模与仿真

做 SerDes 设计,光靠手算是算不出来的。我习惯用 Python 来建模,快速验证零极点位置对眼图的影响。

下面是一个简单的 CTLE 建模代码:

import numpy as np
import matplotlib.pyplot as plt

# 定义 CTLE 参数
fz = 2e9   # 零点频率 2GHz
fp1 = 8e9  # 第一极点 8GHz
fp2 = 20e9 # 第二极点 20GHz
A = 1.0    # 直流增益

# 频率向量
f = np.logspace(8, 11, 1000)  # 100MHz ~ 100GHz
s = 1j * 2 * np.pi * f

# 零极点模型
H = A * (s + 2*np.pi*fz) / ((s + 2*np.pi*fp1) * (s + 2*np.pi*fp2))

# 计算增益
gain_dB = 20 * np.log10(np.abs(H))

# 找到峰值
peak_idx = np.argmax(gain_dB)
peak_freq = f[peak_idx] / 1e9
peak_gain = gain_dB[peak_idx]

print(f"峰值频率: {peak_freq:.2f} GHz")
print(f"峰值增益: {peak_gain:.2f} dB")

# 画图
plt.semilogx(f/1e9, gain_dB)
plt.grid(True, which='both', linestyle='--')
plt.xlabel('频率 (GHz)')
plt.ylabel('增益 (dB)')
plt.title('CTLE 频率响应')
plt.show()

这段代码跑出来,你能直观看到零极点位置对频响曲线的影响。我建议你多改改 fz 和 fp1 的值,看看峰值怎么移动。这是理解 CTLE 最好的方式。

七、CTLE 的局限性

CTLE 不是万能的。它有几个硬伤:

  • 噪声放大:高频增益上去了,噪声也跟着上去了
  • 线性度限制:PAM4 信号对线性度要求高,CTLE 的增益不能太大
  • 无法消除 ISI:CTLE 只能补偿信道损耗,不能消除码间干扰
  • 工艺敏感:RC 时间常数随工艺角变化,零极点会漂移

所以,现代 SerDes 都是 CTLE + DFE + FFE 的组合拳。CTLE 负责粗调,DFE 负责精调,FFE 负责预补偿。各司其职,才能把信号救回来。

一句话总结:CTLE 是 SerDes 均衡的第一道防线。它不完美,但不可或缺。理解它的零极点模型,你就掌握了 SerDes 均衡的钥匙。

CTLE 核心知识体系 CTLE 连续时间线性均衡器 零极点模型 零点 ωz:补偿起点 极点 ωp:限制带宽 峰值增益 = 20log(ωp/ωz) 高频补偿原理 信道损耗镜像补偿 典型补偿 6~12dB 噪声放大需权衡 增益 vs 带宽 GBW 固定 长距优先增益 短距优先带宽 CTLE 是 SerDes 均衡的第一道防线 零极点 → 补偿曲线 → 增益带宽权衡 → 架构实现

这张图把 CTLE 的核心知识点串起来了。从零极点模型出发,到高频补偿原理,再到增益带宽的权衡,最后落到实际架构。你顺着这个脉络学,就不会迷路。

专注资料整理