干过几年高速PCB设计的人,大概率碰到过这种场景:板子贴片回来,上电后主控侧的PCIE枚举时好时坏,或者设备跑着跑着突然掉线,看系统日志是LTSSM反复建链失败。很多人习惯性怀疑固件驱动,但相当大比例的问题其实出在物理层——那一对看起来平平无奇的差分走线,没画对。
PCIE差分对走线设计属于典型的"看着简单、做起来全是细节"的活。速率到了Gen3以上,100Ω差分阻抗、对内等长、参考平面、过孔stub、AC耦合电容摆放位置,每一项都会直接决定链路能否跑满带宽。本文从速率演进带来的信号完整性压力讲起,逐个拆解阻抗、等长、回流、过孔、串扰、验证这几个核心环节,把我在实际项目中踩过的坑和验证过的做法一并写出来,适合刚接触PCIE设计的硬件工程师,也适合被链路稳定性问题折磨过、想系统梳理一遍的高速PCB从业者。
1. 从Gen3到Gen5:PCIE差分走线的信号完整性压力从哪来
1.1 一个从"网卡掉线"开始的排查故事
有朋友拿一块常见的WiFi 6无线网卡来找我,说插在转接板上跑网页测速,速度一上来就断流,系统日志里网卡反复消失又出现。刚开始所有人都怀疑是驱动兼容性,换了几个版本无果,后来用协议分析仪抓PCIE链路状态,才发现LTSSM一直在Recovery和Configuration之间徘徊,链路宽度从x1都稳不住。
拆开转接板量了一圈,问题出在从金手指到网卡M.2座之间的PCIE差分对上:同一组差分对的P、N两根线长度差了将近180mil,而且走线在换层时跨越了一段被掏空的电源平面。这就是很典型的"信号完整性欠账"——协议层反复重训只是表象,根子在物理层的差分走线质量。
1.2 差分对为什么能传高速信号,又为什么"娇气"
PCIE传输用的是低电压差分信号,发送端在Tx+和Tx-上各输出幅度相反的一对信号,接收端通过比较两个引脚的电压差来恢复数据。差分结构的最大优势是抗共模干扰:外部噪声会同时耦合到P、N两根线上,相减之后自然抵消,所以它比单端信号更适合GHz级别的传输。
但这个优势有一个前提:P和N两根线的电气长度、参考环境、阻抗特性必须高度一致。如果一根线走表层、另一根走内层,或者一根多绕了很长一段,两根线上叠加的噪声就不再是"共模",噪声抵消能力下降,信号质量会显著恶化。到了Gen4、Gen5这种速率级别,本来接收端眼图余量就那么一点,再被物理层吃掉一部分,链路就直接罢工了。
1.3 LTSSM建链失败:物理层问题的协议层表现
PCIE链路的建立要经过LTSSM状态机,从Detect、Polling、Configuration一路走到L0正常收发数据。在这个过程中,接收端要检测到发送端送来的信号,完成比特锁定、符号锁定、lane编号和极性翻转。任何一个环节收不到合格信号,状态机就会反复重试,最终要么协商到更低速率,要么干脆把链路Disable掉。
实际项目里常见的现象是:板子偶尔能识别设备,但跑一段时间或者温度升高后掉线。这种"时好时坏"最像软件问题,但往往就是物理层信号余量不够。接收端均衡器(CTLE、DFE)虽然能补偿一部分走线损耗,但补偿能力有限,一旦阻抗失配、串扰、抖动这些因素叠加起来,均衡器也救不回来。用Xilinx XDMA做数据采集卡的朋友可能深有体会:上位机偶尔枚举不到设备,逻辑查了很久,最后发现是PCIE走线的阻抗不连续——这类问题用眼图扫一遍就能定位。
1.4 UI越来越短,走线等长从"建议"变成"必须"
理解等长的重要性,要先算一笔时间账。Gen3的单比特宽度是125ps,Gen4缩到62.5ps,Gen5只有31.25ps。信号在FR4内层走线中的传播速度大约6.6mil/ps,也就是说100mil的长度差在Gen4下就占掉了约一个UI的2.4%。
一个UI里既要有建立时间、保持时间,还要容忍抖动和ISI,物理层的每个瑕疵都在压缩这个窗口。这就是为什么PCIE 1.0时代对等长要求相对宽松,而到了Gen4、Gen5,差分对内等长要求基本都收紧到5mil左右——因为在几十ps的UI下面,每1mil的skew都值得计较。顺便提醒一句,Gen6已经转向PAM4调制,多电平信号对信噪比的要求比NRZ更苛刻,对物理层设计余量的挑战只会更大。
2. 100Ω差分阻抗:数值背后是系统互操作逻辑,不是死记硬背
2.1 100Ω从哪来,以及和50Ω单端阻抗的关系
PCIE规范把差分阻抗参考值定在100Ω,发送端的驱动器、接收端的端接电阻、连接器的物理结构都围绕这个值来设计。100Ω听起来像是一个拍脑袋定的数字,实际是PCIE在发射功率、功耗、接收灵敏度和线宽可实现性之间权衡下来的结果。系统里所有器件都按同一个阻抗设计,信号在传输过程中才不会有反射,能量才能尽量从发送端送到接收端。
新手经常问:单端50Ω,差分是不是就是两根50Ω串起来等于100Ω?不是。差分阻抗是两根线在耦合状态下测得的阻抗,它既取决于单端阻抗,也取决于两根线的间距。两根单端阻抗都是50Ω的线,如果距离拉得很远、几乎没有耦合,差分阻抗会接近100Ω;但如果按照常规间距紧耦合走线,两根50Ω线形成的差分阻抗通常只有80到90Ω。所以设计时不能简单地把"线宽"和"阻抗"一一对应,线宽、介质厚度、线间距三个变量是牵在一起算的。
2.2 叠层、线宽、间距:阻抗的三要素是怎么相互牵制的
控制100Ω差分阻抗,本质上是在控制三个东西:走线宽度W、走线到参考平面的介质厚度H、差分对内两条线的间距S。它们对阻抗的影响方向很明确:
| 参数 | 增大时的影响 | 物理原因 |
|---|---|---|
| 线宽W | 阻抗降低 | 导线变粗,单位长度电感下降、电容上升 |
| 介质厚度H | 阻抗升高 | 走线离参考平面远,对地电容变小 |
| 线间距S | 差分阻抗升高 | 耦合减弱,两根线趋近独立单端线 |
| 介电常数Dk | 阻抗降低 | 介质储电能力增强,电容变大 |
工程上一般先用场求解器按叠层算目标线宽和间距,再用阻抗计算器交叉验证。以8层板的一个内层带状线为例,如果介质厚度是4mil、Dk为4.2,要做到100Ω差分,线宽大约4mil、P和N的中心距8到10mil左右。这里的关键是介质厚度H对阻抗影响最敏感,叠层设计时每层厚度都要和板厂确认清楚,不能只给一个"大概"的叠层,否则后面所有阻抗计算都是空中楼阁。
2.3 表层微带走线的绿油修正:容易被忽略的几个欧姆
表层走线和内层走线用的阻抗模型不一样。内层带状线上下都有参考平面,电磁场包裹得均匀,阻抗计算相对准确;表层微带走线只有一面是参考平面,另一面暴露在空气中,还要考虑表面绿油的影响。
绿油是覆盖在铜箔上的绝缘层,介电常数比空气高,会让表层走线的阻抗比理论计算值低几个欧姆。不同板厂的绿油厚度、颜色不同,对阻抗的影响有差异,我遇到过同一块板子在不同板厂打样,表层阻抗差了4到5Ω的情况。设计表层PCIE走线时,阻抗目标最好按100Ω偏差上限调整一档,或者明确要求板厂按"含绿油"模型计算阻抗,别把绿油的影响留给运气。
2.4 玻纤效应:藏在板材编织缝里的skew
FR4板材内部是玻纤布和树脂的复合结构,玻纤布的介电常数大约6,树脂只有3左右,两者差异很大。当差分对的两根线恰好一根压在玻纤束上、另一根落在玻纤布的编织空隙里,两根线的等效介电常数不同,信号传播速度就有差异,从而产生P/N间的skew。
这种skew发生在微小的距离尺度内,普通等长规则是补不回来的,因为它是"同样长度、不同速度"造成的。应对手段有几个:选扁平玻纤布基材,减小编织窗口尺寸;用低Dk板材,比如M6级别的高速材料;有些设计会把走线旋转10度左右,让差分对与玻纤编织方向错开,平均化P/N两根线的Dk差异。当前主流做法还是靠板材选型来解决,内层带状线的玻纤效应比表层微带线更明显,高密度板更要重视。
2.5 阻抗失控的反馈路径:TDR曲线怎么看
阻抗是否达标,板子回来后用TDR测一下就知道。TDR仪器沿走线发送阶跃信号,根据反射波形的幅度和时刻,能还原出整条走线的阻抗随距离的分布曲线。
一条健康的PCIE差分对,TDR曲线应该稳定在100Ω附近,在过孔、连接器、电容焊盘这些位置出现幅度不大的一次性跌落或凸起,然后迅速恢复。如果曲线在某段长期偏高或偏低,就要回查叠层参数和设计规则;如果曲线在特定位置出现很大的凹坑或尖峰,多半是过孔反焊盘设计不当、焊盘stub过长或者参考平面被切断。TDR是定位"问题出在哪一段路"最直接的工具,比反复改软件瞎猜高效得多。
3. 等长匹配的三层逻辑:对等长、组等长、跨链路等长
3.1 等长控制的本质是skew,不是"长度一样"
做等长设计时一定要想清楚一个底层问题:要控的其实是时间上的skew,长度只是时间差的近似表示。差分对内P/N不匹配会产生共模分量,降低接收端的有效信号幅度并增加辐射;不同lane之间skew过大,则可能让接收端的lane deskew缓冲器溢出,导致链路宽度协商失败。
所以等长规则至少有三个层级:第一层是同一差分对内部P/N之间;第二层是同一个方向的所有Tx lane之间,以及所有Rx lane之间;第三层是Tx组和Rx组之间,甚至包括参考时钟对和数据lane之间的关系。很多人只做了第一层,后面两层完全没管,这在高速宽总线场景下迟早出问题。
3.2 常用经验值:规范之外,设计规则怎么定
PCIE设计规则一般在芯片厂商的硬件设计指南里都有,但很多人拿不到完整文档。这里给出一套我自己常用的经验值,适合绝大多数Gen3/Gen4场景,实际项目务必以所用主控/PHY芯片手册为准:
| 匹配对象 | 经验参考值 | 说明 |
|---|---|---|
| 差分对内P/N长度差 | ≤5mil | Gen3以上建议按±5mil控,越严越好 |
| 同方向同组Lane间长度差 | 10~50mil | x4/x8总线内控得越紧,重训概率越低 |
| Tx组与Rx组长度差 | 按芯片手册 | 常见要求控制到±500mil以内 |
| 参考时钟对与数据lane | 按Refclk架构 | Common Refclk和Separate Refclk容差完全不同 |
对差分对内等长,我习惯在实际布线时按5mil以内控制,规则管理器里直接写死,自动布线时就不给犯错的机会。组间等长则根据具体芯片的lane编号分布来约束,不要把不同方向的lane混在一起比较。
3.3 绕线补偿的技术动作:位置比数量更重要
等长做不齐怎么办?靠绕线补偿。但绕线不是随便绕几个S弯就完事,有几个技术细节直接影响效果。
绕线段的差分阻抗要保持和正常走线一致,也就是说绕线时P和N仍然要按原来的间距并行前进,不要为了塞进空间而把两根线临时拉开。绕线采用45度折角或者圆弧,避免出现90度尖角;补偿量尽量分摊在较短那根线的两端各绕一部分,不要把所有补偿堆在一头,否则单点的集中电感会造成阻抗突变。绕线区域不要跨越参考平面的缝隙,如果绕线区块正好压在电源岛分割线上,等长补了,信号质量反而更差。
3.4 少绕了一段线,链路掉到Gen1的真实案例
前面提到那块WiFi网卡转接板,后来我们把问题拆开看,同组Tx lane的差别不只是对内skew,其中一对差分对整体比其他几对短了约250mil。正常情况下这不至于完全断链,但它叠加了过孔换层和参考平面跨分割的问题,最终导致链路只训练到Gen1速率,测速时带宽不够,再加上高温环境噪声变大,就表现为"测速就断流"。
重新改板时做了三件事:补等长、统一换层方式、调整跨分割处的走线路径。再上板测试,链路稳定训练到Gen2以上,测速断流的问题消失。这个case给我的教训是:等长不是孤立的设计指标,它会和阻抗不连续、回流不完整这些问题叠加,单独看每一项好像都在容忍范围内,放在一起就把链路余量吃光了。
4. 参考平面与换层:回流路径一断,好板变废板
4.1 差分信号也需要"回家":回流路径的本质
差分信号虽然主要通过P、N之间的耦合传递,但它仍然存在共模回流电流,而且相邻走线、电源噪声的干扰也需要一个完整的参考平面来形成低阻抗路径。走线正下方的参考平面是信号回流的主要通道,平面越完整、越连续,回路的电感越小,信号受到的干扰越小。
很多人容易把参考平面当成"只要有个地就行",实际上参考平面的位置和完整性直接影响走线的特征阻抗。走线离参考平面越近,回流路径越窄,串扰越小,阻抗越容易控制;而一旦参考平面在某段被切断,回流电流就得绕道,等效增大了回路电感,信号在这个位置会看到明显的阻抗突变,反射随之产生。
4.2 最常见的三种跨分割场景
第一种是走线跨越电源平面被切开形成的缝隙。多层板上电源层往往被划分成多个不同电压的电源岛,岛与岛之间有很窄的分割线。PCIE差分对如果恰好横跨这条分割线,参考平面在这里就断了。
第二种是换层时上下参考层不一致。比如走线从L3层换到L5层,L4层如果是一块电源平面而不是完整地平面,换层前后的参考平面就发生了变化,回流路径必须通过过孔在平面之间跳转。
第三种是连接器和BGA封装区域的大面积掏空。为了避让焊盘和反焊盘,这些区域的地平面通常被挖掉很大一块,走线经过时在一段长度内完全没有参考平面,阻抗和串扰都会明显恶化。这类跨分割有时候无法完全避免,但至少要清楚知道它在整条链路中的位置和长度,把它作为固定的损耗预算项来处理。
4.3 换层过孔的回流地孔:怎么打、打几个、离多远
PCIE差分对换层时,除了信号过孔,旁边必须打回流地孔,作用是给回流电流提供一条从一层平面跳到另一层平面的低阻抗路径。没有这些地孔,回流电流只能绕很远才找到下地的通路,相当于在过孔区域人为制造了一个大电感。
实际设计时,一个差分信号过孔旁边至少配一个地孔,最好配两个,分别位于信号孔的两侧。地孔到信号孔的中心距控制在30到40mil以内,越近越好,但要注意别太近导致地孔的反焊盘和信号孔的反焊盘重叠、破坏参考平面。另外一个很重要的细节:P和N两个信号过孔要一起换层,不能一个在L3换到L5、另一个还在L3继续走一段再换,两根线分处不同层会破坏差分耦合,造成的skew比长度不匹配还难补。
4.4 电源岛分割与缝合电容的调度原则
如果PCIE走线层相邻的平面层是电源层,而这个电源层被切得很碎,走线区域又没有完整地平面可用,设计时就要格外谨慎。优先的做法是调整叠层,让PCIE走线层紧邻的参考层使用完整地平面,保证回流路径的确定性。
如果确实必须用电源平面做参考,要确保一整条PCIE走线下方都落在同一个电源网络里,不能跨越电源岛的缝隙。实在绕不开跨分割时,可以在跨越点附近加缝合电容,用0402或者0201的高频电容跨越两个电源岛之间的缝隙,给回流电流提供一条高频通路。电容值和数量不追求精确,但要尽量靠近分割线放置,并且电容自身到平面的过孔要充分,否则电容就是摆设。
5. 过孔、AC耦合电容、连接器:三处容不得马虎的阻抗不连续点
5.1 过孔stub的容忍阈值:什么时候必须上背钻
高速信号过孔时,从走线所在层到过孔另一端之间会留下一段没有信号经过的铜柱,这段铜柱就是stub。stub的一端连在主走线上,另一端悬空,相当于在信号路径上并联了一根短传输线,会形成反射谐振,吃掉一部分信号幅度。
stub的影响和信号频率、stub长度直接相关。工程上有一个经验判断:当stub长度接近信号最高频率对应波长的1/10时,影响开始明显;到1/20左右就要认真评估了。以Gen4(16GT/s)为例,奈奎斯特频率8GHz,FR4介质内的波长大约720mil,那么超过36到72mil的stub就可能有问题。普通多层板如果PCIE走线在较表层,过孔stub动辄几十mil,所以Gen4以上基本要上背钻,或者改用盲埋孔设计。Gen5时代,stub控制已经变成强制性的设计约束,不再是"可选优化项"。
5.2 反焊盘:调过孔寄生电容的关键旋钮
过孔本身也有寄生电容和寄生电感,尺寸、反焊盘大小决定了寄生参数的大小。反焊盘是过孔在电源或地平面层开挖的避让孔径,这个孔径的大小直接影响过孔对平面的寄生电容:反焊盘挖得越大,过孔和平面之间的面积越小,寄生电容越低,过孔的阻抗就越高。
PCIE高速链路里,过孔寄生电容会让阻抗下跌,在TDR曲线上表现为一个凹坑。适当加大反焊盘可以把这个凹坑压浅。常规信号过孔反焊盘比过孔焊盘大0.3到0.5mm是比较常见的做法,但反焊盘不是越大越好——挖太大等于在平面上开了一条大槽,反而会影响平面的完整性和相邻走线。实际项目里可以让仿真工具跑一下不同反焊盘口径对回波损耗的影响,找一个平衡点。
5.3 AC耦合电容放哪、怎么补偿焊盘
PCIE链路里串接的AC耦合电容用于隔离收发两端的直流电平。摆放位置有一个主流的工程惯例:尽量靠近发送端放置,这样能让接收端看到相对干净的信号路径。电容在物理尺寸上是比走线宽得多的器件,两端焊盘和本体都会造成阻抗突变,速率越高越敏感。
焊盘补偿的核心思路是让电容处的阻抗突变尽量小。具体做法:电容焊盘到走线之间做necking收窄,走线进入焊盘前逐渐变细,减少等效宽度跳跃;电容选型尽量用0402甚至0201小封装,减小焊盘面积;高速板上避免用0603以上的大电容,那种焊盘即使是ADAS级别的走线也需要反复调。有人会在电容焊盘下方的参考平面做局部掏空,这种操作要谨慎,掏多了回流路径变远,反而适得其反。
5.4 金手指与M.2连接器:阻抗目标可能不是100Ω
这里特别提醒一个容易踩的坑:PCIE标准卡(Add-in Card)走金手指接口时,很多版本的CEM规范对插卡侧连接器区域的差分阻抗目标定义成了85Ω,而不是100Ω。原因是金手指连接器引脚密集,很难做到100Ω,规范干脆把目标调整到85Ω来保证良率。这意味着如果你在设计PCIE标准插卡,要分别对待:板内走线可以按100Ω控制,越接近金手指连接器的区域,越要看CEM规范里对这一段的具体要求。
M.2连接器的情况不太一样,它的引脚密度比PCIE金手指低,走线空间更宽松,通常还是按100Ω差分设计。但M.2座子本身有插拔结构和金手指式接触,同样存在阻抗不连续,连接器区域的走线避让、参考平面处理和标准插卡是同一套方法论。
6. 间距、串扰与地隔离:差分对之间的干扰怎么管才合理
6.1 对内间距与对外间距:两套完全不同的思维
差分对内间距和对外间距是两套逻辑,不能混为一谈。对内间距影响的是耦合强度,间距越小,耦合越强,差分信号越"紧密",抗外部干扰的能力越强;但间距太小又会让阻抗失控。对外间距影响的是一对差分线和另一对差分线之间的串扰,间距越大越好。
实际PCB设计中,对内间距通常由阻抗计算决定,在满足100Ω差分阻抗的前提下尽量小;对外间距则要考虑走线到参考平面的高度H,串扰大小主要取决于线和线之间的电距离,而不单纯是物理距离。有些工程师对着所有差分对统一填一个"间距=3倍线宽"的规则,这在PCIE这种高速场景下不够严谨。
6.2 3W还是3H:给单端信号、时钟和电源让路的底线
关于串扰,业界常有两个经验值:3W和3H。3W指线与线中心距不小于3倍线宽,3H指不小于3倍走线到参考平面的介质厚度。高速差分对与其它信号之间,3H比3W更贴近物理本质,因为串扰的耦合路径主要通过介质层,高度H决定回流场的扩散范围。
PCIE走线尤其要和三类东西保持距离:一是时钟信号线,包括PCIE参考时钟本身和其他高速时钟,时钟是周期性信号,串扰到差分对上会造成确定性的周期抖动;二是电源开关节点,DC-DC的开关噪声频率虽然不高,但谐波分量可能落到PCIE频段;三是复位、中断这类跨时钟域的单端信号,它们存在的时间短,但沿的瞬态电流很大,同样值得隔离。垂直方向的交叉比水平方向的平行要好得多,实在避不开平行时,拉大间距或者加地孔隔离是比较务实的手段。
6.3 包地线的双刃剑效应
低速总线时代,包地线是隔离串扰的常规手段,两根信号线之间塞一根接地走线,看起来既规范又专业。但在PCIE这种高速差分场景下,包地线要非常谨慎,甚至不建议每对差分线都包。
有芯片厂商的应用笔记专门讨论过这个问题:高频下,紧贴差分对的包地线如果不能保证沿路充分接地,它反而会成为一个寄生谐振结构,把串扰耦合到自己的谐振模式上,效果适得其反。而且包地线占用的空间会迫使差分对之间的间距变大,或者导致走线绕路,间接增加链路长度和过孔数量。我的习惯是:相邻差分对之间距离足够就尽量不包地;如果间距受限必须隔离,优先用一排间距足够密的地孔,而不是一段没有地孔接地的包地铜皮。
6.4 电源噪声耦合:走线之外的隐藏链路
PCIE链路不稳定,不一定是走线本身的问题,电源质量同样会通过参考平面耦合进信号路径。如果PCIE走线相邻的电源平面噪声大,这个噪声会作为共模干扰叠加到差分信号上,接收端在解调时会出现额外的抖动。
尤其要注意那些大电流拉偏的电源平面,比如GPU核心供电、FPGA内核供电。如果PCIE走线的回流路径和这些大电流平面靠得太近,电源纹波会直接影响信号质量。做PCIE转网口或者树莓派M.2 HAT这类板子时,我会刻意把PCIE走线放在完整地平面层旁边,而不是放在电源平面旁边;电源平面的分割也尽量避开PCIE走线的正下方区域,从根源上减少耦合通道。
7. 从仿真到实测:三步验证走线到底达没达标
7.1 仿真阶段该算什么:S参数、时域眼图、实际链路拓扑
PCIE走线设计不能等板子回来再验证,仿真阶段就要把关键指标跑一遍。对于一条常规的PCIE点到点链路,至少要看插损和回波损耗两个S参数指标:插损反映走线、过孔、连接器对信号幅度的消耗,回波损耗反映各阻抗不连续点的反射情况。更完整的做法是把发送端封装模型、AC耦合电容、过孔、连接器全部搭进链路模型里,在时域跑眼图,看接收端的眼高、眼宽和抖动是否还留有裕量。
仿真工具的选择取决于资源情况,完整的链路仿真可以用HyperLynx或者SystemSI来跑,过孔、连接器这类三维结构提取S参数可以用SIwave或者HFSS。不要迷信仿真能完全等于实测,但仿真至少能帮你发现那些肉眼看不出来的问题,比如某个过孔stub导致的谐振点恰好落在信号谐波上。
7.2 TDR测试:把阻抗异常精确定位到过孔和接头
板子贴片完成后,TDR是排第一的验证手段。把差分探针点到PCIE走线的发送端或接收端焊盘上,仪器会画出整条链路的阻抗曲线。曲线里每一个大的凹陷或凸起,都可以对应回设计文件里的具体位置——是连接器区域、过孔换层点还是AC耦合电容焊盘。
TDR测试还有一个用途:对比同一块板上不同lane的阻抗一致性。PCIE总线是并行意义上的一组差分链路,lane与lane之间的阻抗一致性如果不佳,会导致各lane信号质量参差不齐,制约整体吞吐量。我之前发现过某块转接板x1的两对差分线阻抗差了8Ω,单独看每一对都在公差范围内,但接收端的均衡参数是按整条总线统一的,这就是"单条达标、整体带病"的典型案例。
7.3 链路训练日志反推物理层问题
当实测条件不具备,或者问题出现在客户的现场环境下,链路训练日志往往比仪器先到场。PCIE链路状态机在每次建链过程中会记录卡在哪个阶段:是Detect阶段找不到对端,还是Polling阶段比特锁不稳定,或者是Configuration阶段lane对齐失败。
这些阶段反映的物理层问题各有侧重。Polling阶段的失败通常和信号质量直接相关,可能是指幅过低、抖动过大;Configuration阶段的lane对齐失败,往往和lane间skew过大有关;而链路宽度自动降级(比如x8降到x4、x4降到x1),大概率是有若干lane的信号余量已经接近临界。这些日志虽然看不到眼图的具体形态,但能告诉你下一步该查走线、查等长还是查电源,排查方向不会跑偏。
7.4 一页纸的PCIE差分对走线检查清单
最后整理一份我每次投板前都会过的检查清单,照着逐项勾选可以挡掉大部分低级问题:
| 检查项 | 达标要求 | 验证方式 |
|---|---|---|
| 差分阻抗 | 100Ω(插卡金手指区按CEM规范确认) | 阻抗计算器+场求解器+TDR |
| 对内P/N等长 | ≤5mil | 布线规则+等长报告 |
| 组内同向Lane等长 | 50mil以内(按芯片手册收紧) | 等长报告 |
| Tx与Rx相对等长 | 按主控手册要求 | 等长报告 |
| 参考平面完整性 | 走线正下方无分割,换层点有回流地孔 | 平面审查+仿真 |
| 过孔stub | Gen4以上评估背钻 | 叠层+背钻图纸 |
| AC耦合电容位置 | 靠近发送端,焊盘做necking | 布局评审 |
| 与其它信号间距 | 满足3H,远离时钟和电源开关节点 | DRC规则 |
| 连接器区域 | 反焊盘、掏空区域按规范控制 | 连接器参考设计核对 |
我现在的习惯是,每块板子投出去之前,把这页清单复印出来摆在桌上,对着布线图一项项勾。很多以为"跑不出来的问题",其实在这些环节早就有了隐患,只是一直没被系统地检查过。
最后再分享一个私人的小经验:画PCIE差分对时,不要只盯着局部规则,要从整条链路的角度看——发送端引脚出来经过什么、电容在哪、过孔换几次层、连接器怎么进、接收端又是怎么收的。每经过一个结构,信号质量就损耗一点,损耗预算就那么多,分给走线的、分给过孔的、分给连接器的,都要心里有数。链路越短、换层越少、阻抗越连续,PCIE就越好用。别想着靠接收端均衡器去兜底,均衡是最后的补救,不是设计时的底气。