
某周调试一块带网口的板子PHY用的是一颗常见的千兆PHY原理图完全照抄芯片手册推荐电路变压器、共模电感、端接电阻一个不少结果样机联调时链路协商速度只能稳定在100M甚至偶尔掉到10M。拿示波器看MDI引脚的差分波形眼图明显发花抖动大GND端拿电流钳一夹共模电流大得离谱。检查半天问题出在差分线布局一对TXD差分线从PHY引脚出来绕了大半个板子才到变压器中途换了两次层其中一个过孔旁边还没有地过孔参考平面也因此断了两截。把这对线重新约束到顶层、保证L2地平面完整、过孔旁边补上回流地孔之后千兆协商一下就稳了。这篇就聊聊以太网口差分线的布局优化从差分线原理、布局分区、AD16里的规则设置到手动布线和等长调节最后是发板前的自查清单。内容偏向工程落地适合刚接触网口设计、或者已经在做PCB但遇到协商不稳定、丢包、辐射超标的硬件工程师参考。1. 差分线布局为什么是网口设计的生死线1.1 差分信号工作原理与100Ω阻抗的来源差分信号是用一对等幅反相的走线P和N也叫和-来传输信息的信号形式。接收端真正关心的是两端电压的差值也就是UdiffUP-UN。外界的电磁干扰通常同时叠加到两根线上形成共模分量在接收端的差分检测下被抵消这是一个天然抗干扰的结构。差分对在PCB上的核心指标是差分阻抗。为什么以太网非要100Ω因为IEEE 802.3标准、RJ45连接器、网线双绞线特性阻抗100Ω、变压器和PHY芯片整条链路都按100Ω设计。一旦PCB上的差分阻抗偏离比如只有80Ω或120Ω信号到达阻抗突变点时就会产生反射。反射系数ρ(Z_L-Z_0)/(Z_LZ_0)100Ω到80Ω的变化能产生约11%的反射这部分反射能量会在链路上来回反弹抬升抖动、压缩眼高严重时直接吃掉接收端的噪声余量。有个常见误区以为差分线只要两根线走在一起就是差分线。实际上还有两个隐含条件一是两根线要等长对内等长因为等幅反相的信号如果到达时间不同反相分量就会出现相位偏移理想的共模抵消就失效了二是两根线要等距且间距可控因为差分阻抗直接由线宽、线距和到参考平面的距离共同决定。与差分信号经常一起出现的还有LVDS低压差分信号这类标准。LVDS的电压摆幅很小驱动端差分输出高值VOH典型约1.4V低值VOL典型约1.1V共模电压为1.2V差分摆幅约250mV到350mV接收端只要检测到100mV的差分电压就能判为有效电平。正是因为摆幅小LVDS对布线噪声非常敏感所以100Ω终端电阻、等长、完整参考平面这些要求一个都不能少。以太网和LVDS电平标准不同但PCB布局的核心逻辑完全一致。1.2 百兆与千兆的本质差异从两对线到四对线如果只做10/100M以太网布局压力其实小很多。100BASE-TX使用两对差分线一对发送、一对接收速率100Mbps编码是MLT-3三电平信号本身的裕量相对宽松哪怕PCB上有点小瑕疵协商到百兆往往问题不大。千兆以太网1000BASE-T完全不是一个量级。它使用四对差分线同时双向收发每对线速率250Mbps编码采用PAM-5五电平。这意味着每一对线在发送的同时还要接收PHY内部的回波抵消电路需要精确知道发送信号的幅度和相位才能把它从接收信号中减去。回波抵消的效果与整条链路的阻抗匹配度和时延一致性强相关。PCB上只要有一对差分线阻抗偏差大或者四对线之间长度不一致回波抵消就做不干净结果就是协商失败、丢包、误码。所以工程上对待千兆网口会把四对差分线的对间等长也纳入考核。通常要求四对线长度差控制在50mil以内严格一点做到25mil。对内等长同一对的P和N要求更高一般做到5mil以内。换算成时延FR4介质中信号传播速度约每英寸160ps到180ps5mil约0.9ps先不深究数学只要记住结论对内是尽量完全等长对间是越接近越好。1.3 变压器与隔离带以太网口特有的模拟/数字分界以太网口与普通高速接口最大的不同在于链路中有一个隔离变压器。变压器通常集成在网络座子里也有独立封装的。它的作用有三个一是提供电气隔离把外部线缆的浪涌、雷击能量挡在系统之外二是共模信号抑制把双绞线上耦合的共模噪声挡在变压器外侧三是阻抗匹配和直流偏置隔离。变压器的存在把网口分成两个域接口侧RJ45到变压器和芯片侧变压器到PHY。接口侧的地通常是chassis ground机壳地芯片侧的地是系统的signal ground信号地/数字地。这两个地之间必须保留一道隔离带不能直接大面积连通否则外部干扰会顺着地平面直接窜进系统内部。隔离带通常用磁珠、高压电容跨接高频时提供回流路径低频时阻断地环路。这段变压器加隔离带的结构直接决定了网口布局的走向RJ45必须放在板边变压器放在RJ45和PHY之间的某个位置差分线在这三者之间按分区走线。这也是以太网口布局的第一优先级比任何其他器件都重要。2. 布线的后半段从布局开始网口区布局的关键顺序2.1 RJ45、变压器、PHY的三点一线很多人画好原理图直接就摆器件等布线时才发现网口区挤得挪不开手。我的做法是先把网口区当成一个独立子模块来排布顺序固定先定RJ45再定变压器最后定PHY。RJ45的位置由结构和散热决定一般贴着板边放置保证网线插拔受力时板卡不易变形。连接器外壳要实现有效的机壳地连接铺铜要宽、过孔要多并且建议在连接器附近放置一个高压电容常见1000pF/2kV到2200pF/2kV把chassis ground和signal ground桥接起来这样既能抑制高频共模又不会让低频地环路短路。变压器建议贴近RJ45放置很多参考设计甚至把变压器放在连接器正后方。这样接口侧的短线很短浪涌能量还没被放大就被拦截住。变压器到PHY的那段差分线才是我们重点布线的对象。PHY芯片放在变压器靠芯片侧的方向两者之间的走线要尽量短而直理想距离不超过1500mil板上空间紧张时也尽量小于2500mil。距离一旦太长差分阻抗的累积偏差和共模噪声拾取都会变大。器件级排布也有讲究串阻、共模电感靠近PHY引脚Bob Smith端接电阻通常是75Ω电阻加1nF电容和TVS/ESD防护器件靠近RJ45一侧。共模电感的位置对辐射影响很大放在PHY近端时抑制PHY侧共模噪声的效果更好这也是大多数千兆PHY参考设计的做法。2.2 隔离带怎么画才不会被短路隔离带的实体是PCB内电层地平面上的一条缝隙。在AD16里这个分割带通常放在L2或L3地平面层用Polygon Cutout或直接在铺铜时开出空槽。缝隙宽度不用太大1mm左右足够关键是它要从RJ45下方的板边开始一直延伸到变压器下方把变压器两侧的地彻底分隔开。最常见的翻车点是画好了隔离带结果忘记在其它层同步处理或者整板铺铜时自动把缺口又填上了。我在一层上专门放了一个机械层轮廓用Keepout或规则区域标明隔离带范围铺铜后逐层检查L2、所有内电层是否都在这个范围内出现对应的空隙。隔离带两侧如果要连通只能通过指定的磁珠、电容或单点连接任何未经声明的铜箔跨越都是隐患。还要注意隔离带的作用是分隔接口地与信号地而不是让网口区域悬空。RJ45外壳、连接器安装孔、变压器接口侧引脚、Bob Smith电路参考的地都属于chassis ground这一侧PHY、共模电感、PHY侧端接、变压器芯片侧引脚属于signal ground这一侧。这两侧必须各自有完整的参考平面中间用隔离带切开再通过一个低阻抗高频路径例如高压电容桥接。这样既满足隔离的初衷又不至于让参考平面完全断裂。2.3 参考平面完整性最容易忽视的隐性规则差分信号在PCB上的回流特性与单端信号不同它主要靠相邻的那根线回流但仍然需要一层连续的地平面作为共模回流通道。如果差分线下方正好是隔离带缝隙或者被电源层分割共模回流路径被迫绕路整根线的特性阻抗就会在跨越点突变导致反射和共模辐射。实际布线时我的铁律是每对差分线路径下方必须是连续完整的GND参考平面不允许有任何分割线从线下方穿过也不允许上面有其它信号线平行伴随超过一段距离。如果差分线必须换层那么过孔旁边一定要成对放置地过孔给共模回流一个近距离换层通道。原理很简单回流喜欢走阻抗最小路径你在信号换层的地方不给它地孔它就绕很远去找路径绕路的过程就形成大环天线。这个要求看起来简单实际排查时最耗时。因为内电层分割往往发生在BGA扇出、电源分区、接口隔离带这些地方如果层叠设计时没有统筹很容易在某个角落出现跨分割的走线。所以建议在布局完成之后先把网口四对差分线的预期路径画在机械层上再拿到内电层平面去比对确认整条路径都没有跨缝再开始拉线。3. AD16中的差分线约束参数含义与配套实操3.1 层叠设计与差分阻抗估算差分阻抗不是AD软件自动算出来的它取决于层叠结构、线宽、线距、介质厚度等参数。设计网口前先算清楚层叠这是所有差分线工作的前提。以常见的4层1.6mm板为例L1顶层为信号层L2为GNDL3为电源L4底层。L1到L2之间的介质厚度PP片通常做0.1mm到0.2mm。表层微带线的差分阻抗可以用近似公式估算Z_diff ≈ 2 × Z0 × (1 - 0.48 × e^(-0.96 × s / h))其中Z0是同等线宽的单端特性阻抗s是差分线线距h是信号层到参考平面的介质厚度。假设线宽6mil、线距6mil、h4mil约0.1mmFR4板材介电常数4.2左右用Polar Si8000或Saturn PCB Toolkit这类软件算出来Z0约56Ω到60Ω差分阻抗约100Ω到105Ω刚好落在标准范围内。实际生产时材料公差、铜厚、绿油都会影响阻抗通常把线宽做5.5到6mil、线距6mil作为设计目标留出8%的余量。如果用的是4层板但信号部分走内层L3那就是带状线结构上下都有参考平面阻抗更低通常需要更宽的线7到8mil才能做到100Ω。以太网口信号不建议走内层主要原因是内层扇出过孔多、参考平面情况复杂对非高速工程师来说表层微带线更容易控制。4层板网口差分线的推荐目标值可以参考这个表参数推荐目标备注目标差分阻抗100Ω允许95~105Ω线宽0.15mm6mil视层叠而定线距0.15mm6mil紧耦合对内等长偏差≤5milP/N长度差对间等长偏差≤50mil四对线互差差分对间距≥3倍线距防对间串扰3.2 在AD16中定义差分对AD16里要布差分线第一步是把网络对定义成差分对这样后续的规则、布线、等长工具才能操作。方式一在原理图中放置差分对标记。Place → Directives → Differential Pair两个网络分别命名为TX1_P和TX1_N这种带P/N后缀的格式或者MDI0和MDI0-这种带加减号的格式。确认网络的P/N命名规则一致导入PCB后AD会自动组成差分对。方式二在PCB中手工添加。打开Design → Classes切换到Differential Pair Classes右键添加新类比如ETH_Diff然后把对应的P/N网络对添加进去。也可以在PCB面板PCB → Differential Pairs Editor里查看和管理所有差分对。定义完成后PCB面板中可以看到每对差分对并显示它们的目标阻抗和当前长度。建议在定义完差分对后立即设置所有差分对的网络颜色四对线分别用不同颜色高亮拉线时不容易张冠李戴。我的习惯是TX1用红色、TX2用黄色、RX1用绿色、RX2用蓝色这样无论内部走线多乱一眼能区分。3.3 差分对布线规则与条件差分线长度的设置差分对规则集中在Design → Rules → Routing → Differential Pairs Routing中。新建一条规则把对象范围指定到刚才的差分对类ETH_Diff然后在Constraints里设置Target Impedance目标阻抗100ΩMin/Max Width线宽5mil / 7mil目标6milMin/Max Gap线距6mil / 10mil目标6milAD在布线时会用这条规则帮你实时检查超出规则范围会高亮报警。如果层叠已经确定这里的目标值就等于用软件算出来的实际线宽线距不要拍脑袋。热搜词里那个ad怎么条件差分线长度在工程里指的就是给差分线加上长度条件和长度匹配约束。AD16中有两块地方处理这件事第一绝对长度条件。规则High Speed → Length把对象设为ETH_Diff类设置Min Length和Max Length。比如变压器到PHY允许1800mil到2200mil超出这个范围DRC会报错。这个约束适合给链路总长度设一个可见的天花板避免绕线绕到失控。第二相对匹配条件。规则High Speed → Matched Lengths对象设为ETH_Diff类设置Tolerance容差。如果要约束四对线之间的长度差把容差设为50mil如果要约束同一对P/N线的长度差需要对象范围细化到某一对差分对容差设为5mil。匹配长度规则还可以指定一个基准锚点比如以最长网络为基准或指定网络为基准四对线统一向基准看齐。设置规则的本质是让工具在布线过程中替你做检查而不是凭感觉拿尺子量。规则设得越细DRC报出的问题越早返工率越低。我在网口项目里差分阻抗规则、绝对长度规则、匹配长度规则这三条全部开满一次投板前DRC就能拦截90%的布局坑。4. 手动布差分线的完整走线流程与等长处理4.1 交互式差分对布线 vs 单根复制手动布AD16中布差分线有两条路径。第一条是使用交互式差分对布线命令菜单Route → Differential Pairs → Interactive Differential Pair Routing或者直接在PCB工具栏里点差分对布线图标它会自动识别已经定义好的差分对在布线时始终保持P和N的间距与形状同步。推荐新手优先用这个效率高也不会出现两根线间距忽宽忽窄的问题。第二条是先布一根线然后复制镜像出另一根。这是一种更原始的方式在特定场景下仍然有用有些工程师觉得交互式差分对布线在某些拐角处自动处理得不够理想比如绕线侵入禁布区于是选择手动控制单根线另一根通过粘贴偏置复制。但这种方式需要你手动保证等距和等长比较费时间也很容易漏掉弧形拐角处的微小不等长。实操中我会两种方式混用常规路径用交互式差分对布线遇到绕线、禁布区密集的地方退到单根模式精修。4.2 手动布线实操分解从PHY到RJ45以典型千兆网口为例四对差分线从PHY引脚出来经过共模电感、串阻到达变压器再从变压器到RJ45如果RJ45带集成变压器则只需要布PHY到连接器的部分。完整的差分线布局流程我通常分四步第一步从PHY引脚把差分对拉到共模电感或串阻。这一段线宽完全按规则参数走尽量短尽量少拐弯。PHY引脚如果是BGA扇出差分对扇出时容易出现P和N呈飞鸟状分开的情况要特别注意出线后就尽快收敛成平行线。第二步过串阻、共模电感后重新收敛成差分线前往变压器。共模电感两端引脚间距通常较大差分对经过它之后线距可能和之前不一样。最好在电感出线端做一小段变线距过渡让差分间距慢慢回到目标值不要突然拐个90度再收窄。第三步进入变压器区域。变压器引脚按数据手册的引脚顺序排列P和N各在一侧。拉线时尽量让差分对以垂直方向进入变压器中心不要在变压器正下方绕线或放置过孔。变压器正下方是地平面隔离带的跨接位置走线只允许在变压器引脚之间直线通过。第四步从变压器到RJ45如果变压器分立。这一段属于接口侧走线要求同样严格但因为路径很短只要参考平面干净就没太大问题。如果RJ45是带变压器的连接器这最后一小段可以被认为集成在连接器内部PCB上只需要处理PHY到连接器的差分线。手动布线过程中的细节我总结成几条经验拐弯用45度或圆弧严禁直角和锐角。差分对的P和N在每一段都要并排走不要出现一段P单独走了1mm再去汇合的情况。换层尽量少必须换层时在换层点旁边对称加一对地过孔。差分线周围300mil内不要有电源开关节点、时钟线等强干扰源。四对差分线之间拉开间距至少3倍线距否则对间串扰会让千兆回波抵消更加吃力。4.3 等长调节工具的使用逻辑与绕线位置选择差分线布完后进入等长调节阶段。AD的交互式长度调节工具很方便选中需要调节的差分对后菜单Route → Interactive Length Tuning或差分对的Interactive Differential Pair Length Tuning从目标线的一端开始拖动AD会根据当前长度与目标长度的差自动生成绕线。Tab键弹出的属性面板里关键参数有三个Target Length目标长度、Amplitude振幅即绕线凸出的宽度、Gap绕线间距也就是相邻绕线之间的距离。目标长度可以直接输入也可以使用从当前长度取整的方式。振幅和间距要设成合理的值绕线太窄而没有拉开与旁边线的间距会造成局部串扰绕线太宽又会侵占元件间空间。绕线放在哪一段很有讲究。行业内比较一致的看法是绕线尽量放在接收端附近或传输线的中段偏后不要放在源端PHY引脚附近因为源端的波形过渡区集中绕线引入的容性负载可能影响驱动器的边沿。实际操作中我习惯把绕线放在两端的端接器件之后也就是过了共模电感、串阻之后那段差分线上这样既不影响PHY引脚扇出的干净度也不会扎进变压器下方的地缝区。绕线的样式AD提供锯齿Mitered、圆弧Rounded和矩形Rectangle等几种。以太网差分线推荐用圆弧或45度锯齿不要用矩形。矩形绕线的内角近直角局部电容突变明显高速下会引入额外的反射。绕线完成后再看整体确认没有进入禁布区。千兆以太网四对线的等长调节顺序我习惯先调对内等长让每一对的P和N长度差小于5mil再调对间等长以最长的那对为基准把其余三对绕到50mil容差内。这个顺序的好处是对内等长决定信号质量对间等长决定时序对齐两个目标分开处理思路清楚。5. 发板前的自查清单与量产后的信号验证5.1 网口差分线的最终自查清单走线完成、DRC清零不等于可以发板。我从几块量产板的教训里总结了一份网口区的自查清单每次投板前逐项过检查项要求常见翻车点差分对定义四对线全部在Differential Pair类中漏定义一对DRC不报差分检查差分规则目标阻抗100Ω线宽线距与层叠匹配规则对象范围写错避开了ETH_Diff类对内等长P/N ≤5mil元器件引脚处P和N路径不对称对间等长四对互差≤50mil绕线只做了对内忘了对间匹配参考平面L2完整GND无跨分割隔离带阴影区、BGA扇出区跨缝回流地孔换层处对称地孔只打了信号过孔地孔漏打隔离带L2/L3分割连续无铜箔搭桥铺铜update后吞掉分割带间距差分对间≥3倍线距共模电感区域对间过近这一套下来基本把网口布局的隐性坑扫了个遍。检查时可以单独开一个网口走线检查的自定义层把四对线全部高亮逐对在3D视图和平面层视图里一起看。5.2 DRC规则复核与常见排查在Design → Rules里把差分相关规则全部勾选运行完整的DRC。注意检查两件事一是Differential Pairs Routing规则有没有真正生效二是High Speed相关的Length规则有没有被其它规则覆盖。AD的规则是有优先级的按对象范围精确度排序如果同时存在一个All范围的长规则和一个ETH_Diff范围的具体规则实际生效的是范围更精确的那个。这个优先级概念经常被忽略导致设置了跟没设置一样。发板后如果遇到问题按照现象找根因的效率会高很多。协商速度上不去最常见的原因是四对线中有一对没走好比如跨分割、阻抗突变导致PHY回波抵消失败大流量时丢包优先查对间等长和差分对间的串扰辐射超标查共模电感位置、隔离带完整性、RJ45外壳接地偶尔能连上但一碰网线就掉查连接器固定和chassis ground连接是否牢靠。5.3 实测验证眼图、TDR与误码率做完布局也只是完成了一半上板后的实测才是验收标准。我自己习惯的验证顺序是先跑误码率测试再测眼图有条件再测TDR阻抗。误码率测试最简单也最直接用PC或测试工装打流把带宽压到接近100%长时间观察丢包率。千兆网口在正常布局下丢包率应该为0偶尔出现个位数的丢包就要警惕连续丢包基本可以判定布局或焊接问题。这类测试用开源工具就能做不需要昂贵仪器。眼图测试需要示波器。把探头接到MDI差分线上看接收端眼图是否落入规范模板。眼图发花、眼高缩小、抖动增大说明链路的阻抗匹配或串扰出了问题。我遇到过一次眼图眼高偏小排查发现不是走线问题而是共模电感选型不对直流偏置损耗偏大换一颗相同封装但额定电流更大的电感就恢复了。这类经验说明确认布局无误时还要回看器件参数是否匹配。TDR测阻抗是最直观的判断方式100Ω差分线的阻抗曲线在整条路径上应该平直任何冲上冲下的尖峰都对应一个阻抗突变点。TDR结果可以和AD的规则设置互相验证如果实测差太多往往是层叠板材的实际介电常数和计算值不一致回来后修正层叠参数下次设计就有更准的基础数据。5.4 顺手再说说LVDS差分线的电平参数很多人搜lvds的差分线高值和低值其实是想知道LVDS输出的高电平和低电平到底是多少。按TIA/EIA-644标准LVDS驱动端的共模电压为1.2V典型差分输出摆幅VOD在250mV到450mV之间也就是P和N两个端子之间的电压差。换算成单端对地电压高值VOH约为1.4V低值VOL约为1.1V。接收端要求最小差分输入阈值±100mV也就是说接收端看到P和N的差超过100mV就能正确判为1或0。这个电平范围远比以太网信号线要低所以LVDS走线更强调等长、紧耦合和完整参考平面规则上和以太网差分线是一个思路。做了这么多年硬件我个人的体会是以太网口差分线布局优化的核心其实就一句话——让每一对差分线都有一条完整、连续、干净的参考路径。规则设置、工具操作和布局顺序全部是围绕这句话展开的。这套方法我不敢说能解决所有网口问题但至少在你因为网口不稳定被叫到实验室的时候手里有一份可以逐项排查的思路而不是对着示波器发呆。最后分享一个小习惯每块带网口的板子发板前我会把四对差分线的走线截图打印出来用彩笔沿着每对线从头描到尾描到跨分割、进禁布区、绕线侵入元件区的时候用红笔圈出来。这一步不花多少时间但几乎每次都能在最后一关逮住一两个DRC规则覆盖不到的视觉问题。板子回来后也建议第一时间上电先把眼图测出来再谈其它测试让数据说话。