173、 PCIE等长布线:从时序乱飞到链路稳定调试间里烟雾缭绕——这不是夸张,上周真烧了块板子。问题出在x4的PCIE链路上:第三通道死活训练不到Gen3速度,插上设备要么识别成Gen1,要么直接枚举失败。用示波器抓眼图,发现第三条lane的眼宽明显塌陷,时钟抖动异常。折腾两天才发现,问题不在阻抗、不在端接,而在那几毫米的长度偏差上。等长不是玄学很多人觉得PCIE等长布线是“玄学”——差个几十mil能有多大影响?实际上,PCIE Gen3的比特周期已经缩到133ps,数据在差分对之间、时钟与数据之间、不同lane之间的传播延迟差异直接决定采样窗口的位置。以常见的100mm走线为例,FR4板材上信号传播速度约6in/ns(152mm/ns)。1mm的长度差异会产生约6.6ps的时序偏差。Gen3的UI(单位间隔)是133ps,这意味着10mm的长度差就会吃掉近一半的时序裕量。那些容易踩的坑坑一:只关注差分对内等长新手常犯的错误是拼命把P和N线绕得一样长,却忽略了不同lane之间的相对长度。实际上,PCIE规范明确要求所有数据lane相对于参考时钟的等长误差要在一定范围内。我们有个项目,差分对内误差控制在5mil内,但lane间偏差达到了300mil,结果在高温下频繁出现链路降速。坑二:忽略过孔和连接器的延迟计算走线长度时,别只看PCB表面的蛇形线。BGA焊盘、过孔、连接器引脚都会引入额外延迟。特别是高速连接器,不同pin的电气长度可能差几十