## 信号完整性(SI)基本概念归纳总结 ### 什么是信号完整性? 信号完整性——说白了,就是让信号在传输过程中不被“污染”。从芯片A的发送器走到芯片B的接收器,信号该是多少伏还是多少伏,该什么时候到就什么时候到。这个看起来简单的要求,在PCIe Gen3以上就变得特别棘手。 我刚开始做PCIe项目时,总以为SI是玄学。直到有一次,一块Gen4板卡在实验室测眼图,眼图中间那个“眼睛”几乎全闭上了,厂家直接打了“FAIL”。拆下来一量,发现微带线阻抗差了好几欧姆——就是从那儿开始,我彻底信了SI这件事。 PCIe的速率从2.5GT/s一路干到32GT/s(Gen5),信号的一个bit宽度已经缩到31.25ps。你想想,一个过孔、一个拐角、一根短线头的反射,就能让接收器采样出错。所以理解SI,是做好PCIe仿真和一致性测试的第一步。 ### 信号完整性的三大杀手 从工程实战角度看,SI问题可以归结为三类:反射、串扰、损耗。这三兄弟,我基本在每个项目里都打过交道。 #### 反射 反射的发生是因为阻抗不连续。信号在传输线上走,遇到阻抗突变,一部分能量往回弹。反射波跟入射波叠加,导致波形畸变、过冲、振铃。
一个典型场景:PCIe差分对布线时,从表层走到内层,过孔特性阻抗跟走线不匹配。信号弹回来,眼图上下抖动,眼高直接缩水。
我做过一次Gen3的板卡调试,遇到一个长拓扑走线,中间有两处换层,反射波互相叠加导致接收端电压摆幅降得太低——PCB改版才解决。你想想,如果仿真阶段就把这些反射算准,能省多少改板费。 #### 串扰 串扰是相邻信号线之间的电磁耦合。PCIe差分对自身有抗共模能力,但差模转共模之后,串扰也会影响眼图。
我的实测经验:在PCIe Gen4主板上,我曾经把一对差分线旁边紧贴着跑了一根时钟线,结果近端串扰(NEXT)导致接收端抖动大了接近1ps。后来拉开3倍线宽间距,串扰降了6dB以上。
串扰分近端(NEXT)和远端(FEXT)。对PCIe来说,接收器本身的共模抑制比(CMRR)能滤掉一部分,但别指望它能扛住所有串扰。布线时“3W原则”只是起点,高频时最好做到5W甚至更大间距。 #### 损耗 损耗来源于导体损耗(铜皮粗糙度、趋肤效应)和介质损耗(介质损耗角正切)。PCIe信号随着距离增长,幅度衰减、上升沿变缓,眼图会越来越闭合。 我见过一块长通道板卡,走线超过12英寸,16GT/s下眼图基本看不到了。后来用了低loss板材(如Megtron 6)和更宽的走线(阻抗控制下微带线宽加到4.7mil),才勉强通过规范。
注意:损耗不是线性的。高频分量(眼图上升沿、下降沿的高次谐波)衰减更快。所以损耗过大时,眼图不仅幅度变小,上升时间也变慢——这叫“色散”。PCIe接收器均衡电路(CTLE/DFE)可以补偿一部分,但板级损耗太大时,均衡也帮不上忙。
### 眼图与抖动 眼图是SI质量的“体检报告”。波形叠加在一起,眼睛睁开越大越好。抖动是眼图闭合的主要推手。 抖动分成随机抖动(RJ)和确定性抖动(DJ)。RJ是热噪声引起的,符合高斯分布;DJ来自于串扰、电源噪声、ISI(码间干扰)等。总抖动Tj = 14.069 × RJ + DJ(这个系数对应10⁻¹² BER,PCIe一致性测试常用的误码率)。 我在项目中见过一个隐蔽的问题:某块Gen4背板眼图抖动超标,查了三天,发现一颗去耦电容焊反了,导致电源纹波耦合进时钟。换掉电容,抖动直接降了一半。所以排查抖动时,不要只看信号路径,电源和地回路也是重灾区。 ### 频域与S参数 SI不是只看时域。频域提供了另一个视角——S参数。S21(插入损耗)告诉你在不同频率上信号衰减了多少;S11(回波损耗)反映阻抗匹配情况;S12/S21(反向隔离度)反映串扰。
我建议:做PCIe通道仿真时,把S参数扫到3倍时钟频率(比如Gen4基频4GHz,扫到12GHz以上)。为什么要高?因为眼图边缘的高频分量决定了眼高和眼宽。很多仿真工具只看S21@4GHz就拍脑袋,结果做出来板子高频滚降严重,一致性测试秒挂。
下面的表格归纳了PCIe Gen3到Gen5的典型频率目标: | 代际 | 基频 (GHz) | 建议扫到频率 (GHz) | S11典型要求 | S21最大插损 | |------|------------|-------------------|-------------|-------------| | Gen3 | 4 | 12 | < -10 dB @ 4GHz | < -20 dB @ 4GHz | | Gen4 | 8 | 24 | < -10 dB @ 8GHz | < -15 dB @ 8GHz | | Gen5 | 16 | 32-48 | < -10 dB @ 16GHz | < -12 dB @ 16GHz | 注:高频S参数测量需要去嵌和校正,否则探头/夹具引入的误差会淹没真实信号。 ### 阻抗与匹配 PCIe差分对目标阻抗通常是85Ω(也有100Ω的老标准)。单端阻抗45Ω(差分2倍)。实际设计中,我会把它当做硬约束:走线参数(线宽、间距、介质厚度)必须精确计算,并且通过TDR验证。 我曾经遇到过一个案子:设计文档写着85Ω,layout工程师按85Ω走,结果TDR测出来是90Ω。回来一查,是参考层的铜皮挖了一部分,局部阻抗翘上去了。所以说,仿真和实测必须对账,不能100%信任单点计算。 信号完整性(SI)核心概念框架 传输线 反射 串扰 损耗 眼图 & 抖动 S参数 阻抗匹配 三大杀手(反射/串扰/损耗)→ 影响眼图质量 → 通过S参数与阻抗匹配来评估和控制 上图画了SI的核心框架:传输线是舞台,反射、串扰、损耗轮流捣乱,最后通过眼图、S参数、阻抗匹配来量化和控制。 ### 综合实战要点 我做PCIe仿真时,一定会走一遍这个流程: 1. 先做叠层设计和阻抗计算,确保板材和线宽能跑目标速率。 2. 提S参数(通道拓扑:发送端IC + 过孔 + 走线 + 连接器 + 背板 + 接收端IC),扫频范围3倍基频以上。 3. 回波损耗S11和插入损耗S21看是否在规格内;同时跑眼图仿真,看眼高、眼宽、抖动是否符合PCIe一致性模板。 4. 如果有串扰风险(长平行走线或紧邻时钟/数据),额外提取串扰S参数,做近端/远端串扰分析。 5. 最后,TDR实物验证阻抗连续性,眼图仪测眼图,对比仿真结果。
避坑提醒:仿真时别忘了包含封装寄生参数(封装通常有0.3~0.5nH的电感和几十fF的电容)。我曾经因为忽略封装模型,仿真眼图全pass,实物测出来全fail——浪费了两周时间。从那以后,我每次都要求芯片厂提供IBIS-AMI或等效的封装模型。
说完这些,我觉得SI基本概念就这些。但你想想看,光知道概念还不够——下一步得动手仿真,把每个参数调到位。这个咱们后面章节慢慢展开。