2. 信号完整性基础:传输线理论、阻抗匹配、反射与振铃、串扰、地弹与电源噪声、眼图与抖动
做高速接口设计,说白了就是在跟物理定律打交道。我刚开始接触SerDes的时候,总觉得信号不就是0和1吗?后来被一块板子折腾了整整两周,才真正明白——信号在高速下,它就是个波,不是电平。
这一章,我把信号完整性里最核心的几个概念串起来讲。你不需要一次性全记住,但得知道它们是怎么相互影响的。
2.1 传输线理论:信号不是瞬间到达的
低速设计时,我们习惯认为:管脚输出高电平,另一端马上就收到高电平。但在高速下,这个假设不成立。
信号在PCB上的传播速度大约是光速的40%~70%。举个例子,FR4板材上,信号速度大概15cm/ns。如果你的走线长10cm,信号从驱动端到接收端需要约0.67ns。对于DDR4-3200,一个UI(单位间隔)才312ps。你想想看,信号还没跑到,下一个时钟沿就来了。
所以,我们必须把PCB走线当作传输线来处理。传输线的核心参数是特征阻抗Z₀,它由线宽、线距、介质厚度和介电常数决定。
关键公式(记住结论就行):
Z₀ ≈ √(L/C)
L是单位长度电感,C是单位长度电容。微带线和带状线的计算公式不同,但本质都是这个。
我个人习惯在PCB设计阶段,先用Polar Si9000或者HyperLynx算一下目标阻抗。比如DDR走线,我通常控50Ω单端,100Ω差分。
2.2 阻抗匹配:为什么信号会反弹?
信号在传输线上跑,遇到阻抗不连续的地方,就会发生反射。反射系数Γ = (Z_load - Z₀) / (Z_load + Z₀)。
如果负载阻抗等于特征阻抗,Γ=0,没有反射。如果开路(Z_load=∞),Γ=1,信号全反射回来。如果短路(Z_load=0),Γ=-1,信号反相反射。
常见的匹配方式有三种:
- 源端串联匹配:在驱动端串一个电阻,让驱动端输出阻抗加上串联电阻等于传输线阻抗。我常用在时钟信号上,比如22Ω或33Ω串阻。
- 末端并联匹配:在接收端对地或对电源接电阻。DDR的VTT终端电阻就是典型例子。
- AC匹配:串联电容再加电阻到地。适合需要隔直的场合。
我的经验:源端匹配是最省功耗的,但要求驱动端阻抗已知。末端匹配效果好,但会多耗电。DDR4的ODT功能就是动态末端匹配,省了不少事。
2.3 反射与振铃:波形上的毛刺从哪来?
反射的直接后果就是过冲和下冲。如果反射来回多次,就会形成振铃。
我曾经调试一块FPGA板子,时钟信号上有个明显的振铃,频率大概200MHz。查了半天,发现是时钟走线经过了一个过孔,阻抗从50Ω跳到了80Ω左右。信号反射回来,跟原来的信号叠加,就形成了振铃。
振铃的危害:
- 过冲可能击穿芯片输入端的ESD保护二极管
- 振铃可能导致接收端误判逻辑电平
- 增加EMI辐射
解决振铃,我一般从三个方向入手:
- 控制阻抗连续性——减少过孔、避免走线宽度突变
- 增加匹配电阻——源端或末端
- 调整驱动强度——FPGA的IO驱动强度可以软件配置,别开太大
2.4 串扰:隔壁走线在干扰你
串扰就是一条走线上的信号,通过电磁耦合影响到旁边的走线。分为容性串扰和感性串扰。
容性串扰在远端和近端都会出现,感性串扰主要影响远端。实际测量中,我们最关心的是近端串扰(NEXT)和远端串扰(FEXT)。
减少串扰的常用方法:
- 增大线间距——3W原则(线间距≥3倍线宽)是基本要求
- 在敏感信号之间加地线隔离
- 减少平行走线长度
- 使用差分信号——差分对自身抗串扰能力强
注意:串扰不是只发生在同一层。相邻层的走线如果平行且重叠,串扰可能比同层还严重。我见过一个案例,DDR数据线跟时钟线在相邻层平行走了5cm,结果数据眼图完全睁不开。
2.5 地弹与电源噪声:被忽视的隐形杀手
地弹,说白了就是当多个IO同时翻转时,瞬间电流通过地回路电感,在地平面上产生电压波动。这个波动会影响到所有以地为参考的信号。
公式很简单:V_ground_bounce = L * di/dt
L是地回路电感,di/dt是电流变化率。FPGA的IO同时翻转时,di/dt可以非常大。
电源噪声也是类似道理。电源分配网络(PDN)有阻抗,电流变化时就会产生电压波动。
我记得有一次做DDR4接口调试,数据线眼图总是有周期性抖动。查了三天,最后发现是FPGA内核电源的纹波太大,100mV的纹波直接耦合到了DDR的参考电压VREF上。
应对措施:
- 增加去耦电容——不同容值搭配,覆盖宽频段
- 优化电源平面设计——低阻抗PDN
- 控制同时翻转输出(SSO)数量——FPGA设计时要算好
- 使用差分信号——对地弹和电源噪声有天然抑制
2.6 眼图与抖动:信号质量的最终判决
眼图是高速信号质量的综合体现。它把很多个UI的波形叠加在一起,形成类似眼睛的图案。
眼图怎么看?
- 眼高——信号幅度的裕量,越大越好
- 眼宽——时间上的裕量,越大越好
- 抖动——信号边沿的不确定性,越小越好
- 眼图张开度——综合指标
抖动分为两大类:
- 随机抖动(RJ)——由热噪声、散粒噪声等引起,服从高斯分布,无法消除,只能控制
- 确定性抖动(DJ)——由串扰、电源噪声、ISI(码间干扰)等引起,有规律可循
在实际调试中,我习惯先用示波器看眼图。如果眼图闭合,再用抖动分析软件分离RJ和DJ,找到主要矛盾。
一个实用经验:眼图闭合不一定是信号幅度不够。很多时候是抖动太大。我曾经遇到一个PCIe Gen3的链路,眼图看起来很差,但幅度完全正常。最后发现是参考时钟的抖动超标,换了晶振就好了。
知识体系总览
下面这张图,我把本章的核心逻辑串起来了。你可以把它当作调试时的检查清单。
这张图把六个知识点串成了两条主线:上面是信号传输路径上的问题(传输线→匹配→反射→串扰),下面是电源与测量维度的问题(地弹/电源噪声→眼图/抖动)。调试时,我习惯从眼图入手,如果眼图不好,再反向去查是反射、串扰还是电源问题。
一句话总结:信号完整性不是玄学,是物理。每个问题都有根因,找到它,解决它。
公众号:蓝海资料掘金营,微信deep3321