2. CTLE原理:连续时间线性均衡器的频域响应与零极点配置

好,咱们今天聊聊CTLE。连续时间线性均衡器,名字听着挺唬人,对吧?其实说白了,它就是一个模拟滤波器。我刚开始接触SerDes那会儿,也觉得这东西玄乎。后来自己搭了几个电路,跑了仿真,才慢慢摸到门道。

CTLE的核心任务就一个:补偿信道的高频损耗。信号在PCB走线上跑,高频分量衰减得比低频厉害。结果就是眼图闭合,码间干扰(ISI)严重。CTLE的作用,就是给高频分量多加点增益,把信号“扶正”。

一句话总结:CTLE是一个高通滤波器,或者更准确地说,是一个带高频提升的放大器。

2.1 频域响应:你看到的其实是幅频曲线

CTLE的频域响应,我习惯用传递函数H(s)来表示。你想想看,一个简单的CTLE,通常由一个零点、两个极点构成。它的传递函数长这样:

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

这里:

  • A 是直流增益,决定了低频段的放大倍数。
  • ωz 是零点频率,它决定了高频提升的起始点。
  • ωp1ωp2 是极点频率,它们限制了高频增益的峰值,也决定了带宽。

嗯,这里要注意。零点频率ωz通常比第一个极点ωp1低。这样在ωz到ωp1之间,增益会以+20dB/dec的斜率上升。过了ωp1,斜率变平缓。到了ωp2,增益开始以-20dB/dec下降。

我给大家画个图,这样更直观。

CTLE幅频响应曲线 频率 (Hz) 增益 (dB) 0 ωz ωp1 ωp2 直流增益 A +20dB/dec 峰值增益 -20dB/dec 低频区 提升区 平坦区 滚降区

你看这张图,频率从低到高,增益先平,再升,再平,最后降。这就是CTLE的典型幅频响应。我在项目中遇到过一种情况:信道损耗特别大,需要很高的峰值增益。结果CTLE的带宽不够,高频信号虽然幅度提上去了,但相位失真严重。嗯,这就是零极点配置没做好的典型后果。

2.2 零极点配置:实战中的艺术

零极点配置,说白了就是选ωz、ωp1、ωp2这三个频率点。我个人的习惯是,先看信道特性,再定CTLE参数。

具体怎么配?我给你列个表:

参数 作用 典型取值 我踩过的坑
ωz (零点) 决定高频提升的起始频率 信道损耗拐点频率的1/3 ~ 1/2 设得太低,低频噪声也被放大
ωp1 (第一极点) 决定峰值增益的频率位置 信道损耗拐点频率的2~3倍 设得太高,峰值增益不够
ωp2 (第二极点) 限制带宽,抑制高频噪声 数据速率的一半左右 设得太低,信号上升沿变缓
A (直流增益) 整体放大倍数 6~12dB 增益太大,后级DFE容易饱和

小技巧:我建议你先用信道仿真软件(比如HFSS或者CST)提取S参数,算出信道的插入损耗曲线。然后找到-3dB或者-6dB的拐点频率。这个频率,就是你配置零极点的关键参考点。

2.3 实际电路实现:RC退化源极对

讲完理论,咱们看看实际电路。最常见的CTLE实现,就是RC退化源极对差分放大器。结构很简单:一对差分对管,源极之间接一个电阻Rs和一个电容Cs并联。

这个电路的传递函数,我推导过很多次,直接给结论:

H(s) = gm * Rd * (1 + s * Rs * Cs) / [1 + s * (Rs * Cs + Rs * Cgs) + s² * Rs * Cs * Rs * Cgs]

其中:

  • gm 是跨导
  • Rd 是漏极负载电阻
  • RsCs 是源极退化电阻和电容
  • Cgs 是晶体管的栅源寄生电容

你看,零点ωz = 1/(Rs * Cs),第一极点ωp1 ≈ 1/(Rs * Cs + Rs * Cgs)。实际设计中,Cgs通常比Cs小一个数量级,所以ωp1略小于ωz。这就是为什么幅频曲线在零点之后才开始提升——因为第一个极点就在零点附近,把提升的起始点往后推了。

注意:我曾经犯过一个错误。为了追求更高的峰值增益,我把Rs设得很大。结果零点频率降得很低,低频噪声被放大了不少。眼图虽然张开了,但抖动反而变大了。后来我学乖了,Rs和Cs要一起调,不能只动一个。

2.4 自适应CTLE:让电路自己学会调节

现在的SerDes芯片,CTLE很少是固定配置的。因为信道长度、温度、电压都在变,固定配置没法适应所有场景。所以就有了自适应CTLE。

自适应CTLE的核心思想:测量接收信号的质量,然后自动调整Rs和Cs的值

怎么测量信号质量?常见的方法有两种:

  1. 眼图幅度检测:测量眼图的垂直张开度。如果张开度不够,就增加高频提升。
  2. 频谱检测:分析接收信号的频谱。如果高频分量偏弱,就增加零点增益。

我参与过一个项目,用的是眼图幅度检测法。具体做法是:在CDR锁定后,用两个采样器分别在眼图中央和眼图边缘采样。中央采样的幅度减去边缘采样的幅度,就是眼图的垂直张开度。然后查表,找到对应的Rs和Cs配置。

// 伪代码:自适应CTLE调节逻辑
if (eye_height < EYE_HEIGHT_TARGET) {
    if (high_freq_content < THRESHOLD) {
        // 高频不足,增加零点增益
        decrease_Rs();
    } else {
        // 噪声太大,降低峰值增益
        increase_Rs();
    }
} else {
    // 眼图OK,保持当前配置
    keep_current_settings();
}

你想想看,这个自适应过程其实挺像人眼调节瞳孔的。光线强了,瞳孔缩小;光线弱了,瞳孔放大。CTLE的自适应也是这个道理——信号质量差了,自动调整均衡强度。

2.5 实战中的几个关键点

最后,我总结几个实战中容易忽略的地方:

  • CTLE的功耗与性能要平衡。增益做高了,功耗也上去了。我见过有人为了省电,把CTLE的增益压得很低,结果DFE的压力巨大,最后整体性能反而更差。
  • CTLE的带宽要够。如果带宽不够,高频信号的相位会滞后,导致CDR锁定困难。我记得有一次仿真,眼图幅度看着不错,但CDR就是锁不住。查了半天,发现是CTLE的带宽比数据速率低了一截。
  • CTLE的输出共模点要稳定。CTLE的输出会直接送给DFE和CDR。如果共模点漂移,后面的电路都会受影响。我建议在CTLE输出端加一个共模反馈环路。

核心要点:CTLE不是万能的。它只能补偿信道的高频损耗,但无法消除所有ISI。真正的好设计,是CTLE、DFE、CDR三者协同工作。CTLE负责把眼图打开到DFE能处理的程度,DFE负责消除剩余的ISI,CDR负责找到最佳的采样点。这三者缺一不可。

好了,CTLE的原理就聊到这儿。记住零极点配置的套路,再结合你手头的信道特性,CTLE的设计其实没那么难。下次咱们聊聊DFE——那个更“暴力”的均衡器。

专注资料整理