3. 高速串行链路中的信号完整性对CDR的影响
做CDR设计这么多年,我最大的感触是:信号完整性(SI)问题才是CDR锁定的隐形杀手。你调好了环路带宽,选对了鉴相器类型,仿真锁定时间漂亮得很——结果一上实际板子,眼图半睁半闭,CDR根本锁不住。说白了,通道不干净,再好的CDR算法也是白搭。
这一章我们就来拆解信号完整性问题到底怎么“欺负”CDR的。
通道损耗:眼图闭合的元凶
高频信号在PCB走线上一路衰减,幅度越来越小,边沿越来越缓。为什么?趋肤效应和介质损耗。速率越高,损耗越严重。你想想看,接收端看到的是一个歪歪扭扭、眼睛都快闭上的眼图——CDR的采样裕量直接被压缩到零。
我记得在25Gbps背板项目中,一段15英寸的Megtron-6走线,插损在12.5GHz处超过了15dB。眼图高度只剩100mV出头。CDR的Bang-Bang鉴相器在这种条件下几乎一直处于亚稳态。我当时的解决方法是加了一级CTLE,把低频增益提了6dB,再配合DFE才把眼图打开。
反射与阻抗不连续
过孔、连接器、走线分支——这些地方阻抗一跳变,信号就会折返回来叠加到主信号上。反射产生的不是对称的过冲,是畸形的脉冲尾巴。CDR的相位检测器跟着乱跳,环路带宽再宽都追不上。
我来举个实际例子:某12Gbps SAS接口设计,从驱动芯片到连接器有一段微带走线,中间换了一层过孔。过孔残桩长度约20mil。仿真时没在意,测试发现抖动从0.2UI飙升到0.5UI。我们用TDR一打,过孔处阻抗跌到75Ω。把残桩背钻掉后,眼图立马干净了,CDR也顺利锁定了。
反射造成的抖动有个特点——它是数据图案相关的。遇到连续的“1010”翻转,反射会累加;遇到长连“0”后突然翻转,反射更明显。CDR对这种数据相关抖动(DDJ)的容忍度有限,尤其当DDJ的频率落入环路带宽内时,相位误差会被放大。
串扰:来自相邻通道的“噪音”
高速总线里通道挨得近,一条线翻转变,相邻线上就会感应出串扰信号。近端串扰(NEXT)和远端串扰(FEXT)两种。对于CDR,FEXT更致命——它跟主信号同时到达接收端,直接叠加在数据眼图上。
之前做一款56G PAM4 SerDes,通道间间距只有0.8mm。仿真串扰耦合系数-25dB,觉得够安全了。实际测试时,误码率就是下不去。后来发现相邻通道的码间干扰通过FEXT耦合过来,在眼图中央形成了一团“雾”。CDR的时钟恢复电路一遇到这团雾就会产生相位跳变,导致采样点偏移到眼边沿。我们花了一周调整走线间距到1.2mm,串扰降到-35dB以下,问题才根治。
| 串扰类型 | 耦合方向 | 对CDR的主要影响 | 典型规避手段 |
|---|---|---|---|
| 近端串扰(NEXT) | 同方向,近端 | 增加共模噪声,影响VCO | 差分走线、屏蔽地线 |
| 远端串扰(FEXT) | 反方向,远端 | 直接叠加到眼图,增大DJ | 增大间距、使用带状线 |
电源噪声与SSN
CDR内部最敏感的是VCO和相位插值器。电源纹波直接通过器件衬底耦合到振荡频率上,产生相位调制。同步开关噪声(SSN)在数十个I/O同时翻转时,能在电源轨道上产生百mV级别的毛刺。
我见过最典型的案例:一块16通道的收发器芯片,所有通道同时工作时,CDR锁频范围缩窄了40%。测电源发现1.0V核电压噪声峰峰值达到85mV,里面有大量200MHz附近的谐波,刚好落在CDR环路带宽附近。我在VCO的电源引脚上串了一个铁氧体磁珠,再加两个10nF和1μF去耦电容,噪声降到35mV,问题解决。
抖动分解与CDR的容忍度
总抖动(TJ)可以拆成随机抖动(RJ)和确定性抖动(DJ)。RJ是高斯分布的,来自热噪声、散粒噪声;DJ有明确边界,来自前述的损耗、反射、串扰等。
CDR对RJ的忍耐力其实不差——因为它服从高斯,极值出现的概率低,只要采样裕量足够,偶发错误可以靠FEC纠正。但DJ不一样,它有固定的振幅和重复模式,一旦超过CDR的眼图张开度,锁定就会崩溃。
我做CDR链路预算时,会先估算通道带来的DJ分量。比如反射引起的DDJ大概0.15UI,FEXT贡献0.1UI,再加上ISI的0.2UI——总DJ已经0.45UI。再留0.15UI给RJ和裕量,整个链路预算只剩0.4UI给CDR的相位检测器。这种情况下环路带宽必须大于DJ频谱主峰,否则锁相环根本拿不住。
前面讲的损耗、反射、串扰、电源噪声,其实都在干同一件事——把眼图往回缩,把抖动往外推。CDR的锁定裕量就是这两者之间的缝隙。缝隙没了,锁相环就会像没有方向盘的车,永远找不到目标相位。