ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

AD19差分线设计全流程:90欧与100欧阻抗规则、布线及等长调整指南

AD19差分线设计全流程:90欧与100欧阻抗规则、布线及等长调整指南 前阵子帮朋友调试一块USB 3.0的板子现象很典型USB 2.0设备随手一插就识别USB 3.0固态硬盘却反复掉盘重插几次偶尔能认到。查到最后问题出在一对差分线上——本该按90欧规则布的高速信号被我用100欧的老经验处理了。在高速PCB设计里差分线从来不是两根线放一起走这么简单它背后是阻抗匹配、耦合系数、长度约束、参考平面这一整套相互牵连的体系。这篇文章我想把AD19Altium Designer 19下差分线的完整流程掰开揉碎讲一遍从原理图阶段该注意什么到叠层怎么影响阻抗再到规则管理器里90欧和100欧分别怎么设最后是实际布线和等长调整的具体操作。文章适合正在做高速板卡、FPGA周边、接口转换板或者想系统搞懂差分线的朋友不管你是刚接触AD的新手还是已经布过几块板但没深究过阻抗规则的工程师应该都能找到有用的东西。1. 一份看起来正常的差分线到底错在哪先复盘一下开头那个掉盘案例。USB 3.0的TXP/TXN是SuperSpeed差分对规范要求的差分阻抗是90欧。我当时图省事直接套用了千兆以太网的100欧规则布出来的线宽、线距都是按100欧算的。本来想着90和100差不远实际用下来才发现在5Gbps的信号速率下10欧的偏差会造成明显的反射眼图质量下滑接收端误码率上升表现就是设备时好时坏。1.1 表面上是线没走对底层是阻抗错了差分信号的关键参数有三个差分阻抗、单端阻抗和共模阻抗。USB 3.0的差分阻抗要求90欧LVDS和千兆以太网要求100欧485总线按规范是120欧。很多刚入门的同学以为差分布线就是两根线走在一起注意等长但真正决定信号质量的是阻抗是否匹配。走线宽度、线与线的间距、到参考平面的距离三个因素共同决定最终的实际阻抗差一点都不行。1.2 90欧和100欧分别出现在哪些接口我整理了一个常用接口差分阻抗速查表设计前翻芯片手册或者接口规范时可以对照着看。接口/总线常用差分阻抗典型应用场景USB 2.090欧D/D-信号全速/高速模式USB 3.x SuperSpeed90欧SSRX/SSTX差分对LVDS100欧显示屏接口、ADC/DAC数据、视频传输千兆以太网100欧MDI差分对HDMI100欧TMDS数据差分对MIPI DSI/CSI100欧摄像头、显示屏高速通道PCIe85~100欧视版本和拓扑主流按100欧RS-485120欧工控总线更重终端匹配SATA100欧存储接口从这里就能看出来90欧和100欧不是拍脑袋定的每一种接口在规范制定时都做了严格的信号完整性和EMC评估。做设计前先花十分钟翻翻对应接口的规范或者主控芯片的勘误手册比事后加班改板子划算得多。2. 差分阻抗的本质它到底在匹配什么要设置好规则得先理解差分线为什么能抗干扰、为什么非要阻抗匹配。我尽量用不绕弯子的方式讲清楚。2.1 差分信号的双线优势从哪来单端信号是一根信号线 参考地接收端把信号和地之间的电压和阈值比较。差分信号则是用两根线传一对相位相反的信号接收端比较的是P端和N端之间的电压差。这个思路天然带来几个好处外部共模干扰比如电源噪声、辐射耦合会同时叠加在P和N上做差之后被抵消差分线产生的电磁场在近场会相互抵消对外辐射更小由于接收的是差压地平面上的压降对信号的扰动也被显著削弱。在实际PCB上这意味着差分信号的参考平面不那么敏感但这不代表可以随便跨分割。参考平面仍然是回流路径的主要载体一旦被割断回流电流被迫绕行会在走线周围形成一个大回路最终等效于天线辐射和共模噪声。2.2 差分阻抗不是两根线阻抗的简单相加这里有个常见的误区以为差分阻抗等于两根单端线的阻抗乘以2。实际上两条线之间存在电磁耦合差分阻抗的近似公式是Z_diff ≈ 2 × Z_single × (1 - k)其中Z_single是单端特性阻抗k是耦合系数。当两根线的距离越近k越大差分阻抗相比2倍单端阻抗的衰减就越明显。因此想让差分阻抗达到目标值不能拍脑袋决定线宽线距必须用场解算器或阻抗计算工具把耦合效应算进去。耦合强并非总是好事。对于PCB制造来说线距太小会导致蚀刻不均匀、阻抗一致性变差也增加串扰风险。实际设计中普遍采用的思路是弱耦合设计让线距略大于线宽使差分阻抗主要由线宽和介质厚度决定耦合只作为微调因子。这样对抗叠层误差更有利制造良率也更高。2.3 90欧和100欧是怎么来的这几个标准数值的源头一个是历史兼容性一个是信号完整性的综合权衡。USB选择90欧是因为当时制定的SuperSpeed规范在引脚驱动能力、线缆特性、系统功耗之间做了取舍最终锁定90欧。以太网选择100欧则源自早期双绞线特性的延续以及收发器设计的主流共识。你不需要把这些推导过程背下来但必须知道规则值是系统级的跟芯片驱动能力、连接器、线缆都是配套的PCB上改掉等于破坏整套匹配链。3. 弄懂叠层和阻抗计算规则设置才有依据很多同学卡在规则设置这一步是因为直接把网上经验值抄到AD里忘记了自己的板子叠层和别人不一样。叠层不同同样线宽线距算出来的阻抗完全不同。所以我把叠层这部分放在规则设置前面讲顺序不能反。3.1 线宽、线距、参考平面三个最关键的变量差分阻抗由以下几个因素共同决定介质厚度最关键走线层到相邻参考平面之间的绝缘层厚度。厚度越大阻抗越高。线宽线越宽单位长度电容越大阻抗越低。线距同层两根差分线之间的距离。距离越近耦合越强差分阻抗越低。铜厚铜箔越厚线截面越大阻抗越低。介质介电常数材料不同有差异FR4通常取4.2~4.6高速板材会标具体数值。其中介质厚度的影响最大这也是为什么叠层设计要优先定下来。4层板常见的信号-地-电源-信号结构和6层板的信号-地-信号-信号-地-信号结构走线层到参考平面的距离完全不同同样的90欧规则线宽可能从5mil跳到7mil不止。3.2 用SI9000按实际叠层算出来的参考值计算差分阻抗我常用的工具是Polar SI9000以及免费的Saturn PCB Design Toolkit。算之前先向板厂要叠层参数每层铜厚、PP片型号和厚度、成品板厚、介电常数这些参数直接输入工具。拿一个常见的4层板举例总厚度1.6mm表层铜厚1ozL1到L2GND的介质厚度约0.2mm对应PP片2116压制FR4介电常数取4.3。用SI9000选择Edge-coupled Coated Coplanar Stripline表层差分有阻焊层填入参数经过迭代调整线宽5mil、线距6mil左右表层差分阻抗能落在100欧附近。想做到90欧通常要放宽线距或者稍微放宽线宽具体数值要看你的叠层。但要注意以上数值只是示例。每个板厂的压合能力不同PP片残铜率不同最终线宽线距必须让板厂帮你确认。我做过几次板子后养成一个习惯画板之前先给板厂发邮件问他们针对我这个叠层90欧和100欧的差分线推荐线宽线距是多少。板厂因为要保证出货良率给的经验值通常相当准确直接在AD规则里填入就行。4. AD19中如何建立差分对和设置90欧/100欧规则叠层参数算清楚之后就可以回到AD19进行差分对的创建和规则配置了。这里的操作细节比较多按照流程一步步来做能避免不少返工。4.1 原理图阶段就做好网络命名AD识别差分对的第一关是网络命名。虽然软件也能手动指定但规范命名能省大量时间。推荐格式是相同前缀 _P / _N 结尾例如USB3_TX_P和USB3_TX_N或者USB3_TXP和USB3_TXN。在原理图里放置差分对指示器时选中Place菜单下的Directive再选择Differential Pair把它放到P网络和N网络上。放置时要注意检查极性方向正向对应_P负向对应_N一旦方向弄反导入PCB后整对信号就是反的。如果原理图已经在别的工具里画好了网络名也不是_P/_N结尾不用慌。导入PCB后在Design菜单下的Classes里也可以手动把两个网络配对成差分对只是工作量大一些。养成原理图阶段就放差分对指示器的习惯后面导入PCB时AD会自动识别并归入差分对类效率高很多。4.2 在PCB中创建差分对类差分对识别完成后打开Design Classes在Differential Pair Classes分类下新建两个类一个命名90R_Diff用于USB这类接口一个命名100R_Diff用于LVDS、以太网这类接口。把对应的差分对分别拖进各自的类里。这一步非常关键只有按类分好了后面的规则才能用条件语句针对不同类分别设置90欧和100欧参数否则同一种规则覆盖所有差分对必然有一边是错的。4.3 规则管理器中的差分布线参数逐个说人机交互的重点来了。打开Design Rules找到Routing Differential Pairs Routing这里就是差分线宽和线距规则的核心。先为90R_Diff类新建一条规则在Where The Object Matches中选择InAnyClass(90R_Diff)然后设置三项参数Min Width / Preferred Width / Max Width差分线线宽。线宽决定了单端阻抗的基础通常在普通单端线宽的基础上微调。Min Gap / Preferred Gap / Max Gap差分对内部P线和N线的间距。线距主要影响耦合系数进而微调差分阻抗。有些规则版本还会显示Coupling字段本质是通过线距控制耦合度实际效果和Gap联动不必重复纠结。用同样的方法再建一条100R_Diff规则匹配InAnyClass(100R_Diff)。这样两条规则并行AD会自动根据当前布线的差分对属于哪个类应用对应的线宽线距约束。我在实际项目中见过不少人把规则都堆在All Differential Pairs下结果90欧的线跟100欧的线宽度一模一样这就是类管理没做对。除了差分布线规则还有一个容易忽略的Matched Length规则。在Routing Matched Lengths里可以针对差分对类设定等长要求。比如设定目标长度和容差±5mil。布完线之后执行等长调整AD会把差分对内的两条线长度拉齐到这个容差范围内。4.4 一个容易被忽略的Min/Max陷阱在差分线规则设置界面很多初学者只填Preferred Width和Preferred Gap然后直接开始拉线结果走线时发现AD自动把线宽变成别的值或者DRC报错。原因在于没有把Min和Max范围设置合理。AD在实际布线时会根据你当前走线的模式在Min和Max之间动态调整线宽。如果Preferred和Min/Max相差太远走线手感会很奇怪。我通常的做法是把Min设为Preferred的90%Max设为Preferred的110%并勾选对应已启用选项这样AD的自动调整范围可控DRC也不会误报。5. 交互式差分布线实操从AD19命令到走线手感规则设置好之后真正拉线环节也有很多细节。这里的操作我一步步拆开照着做基本不会走弯路。5.1 布局阶段就该确认的几件事差分布线不是从拉线那一刻才开始的。布局时就要确认器件摆放是否照顾了差分走线的路径连接器、主控、终端电阻尽量近少绕路。参考平面是否连续差分线下方不能有被电源分割切断的地平面。如果迫不得已要跨分割必须确认其他层有完整的回流路径或者在跨分割处加缝合电容/缝合地过孔。过孔数量是否可控每个过孔都带有寄生电容和电感对高速信号是个阻抗突变点。布局时尽量让一对差分线的过孔数量相同、位置对称。5.2 从命令到第一段走线在PCB中选择好层通常顶层或底层优先走参考平面完整的层执行Route菜单下的Interactive Differential Pair Routing快捷键是P I D。启动命令后鼠标靠近一对差分网络的任意一根线头或焊盘AD会自动吸附并高亮整对网络。此时按Tab键打开属性面板可以临时调整线宽、线距和过孔规格。注意这里如果改成了规则之外的值走完的线DRC会报错所以除非刻意走特殊拓扑否则让它保持默认用规则值就好。移动鼠标布线时AD默认把两根线锁定成平行走线自动保持规则设定的间距。拐弯时默认走45度斜角这个习惯对差分布线很友好。走线过程中按ShiftR可以切换拐角模式45度、圆弧、任意角度我个人建议高速差分线坚持45度或圆弧不要用直角拐弯直角会产生额外的电容和不连续的阻抗虽然比例很小但积少成多。走完一对线之后按下ESC退出当前布线命令。如果中途发现某段走线不满意可以直接选中对应线段重新走也可以按ShiftF选择整条连接或CtrlH选择铜皮网络后重新布线。5.3 换层、过孔与参考平面连续性差分对换层是高速设计中风险最高的操作之一。在走线状态下按数字小键盘的星号键或CtrlShift滚轮切换目标层AD会自动添加过孔。这里有个原则P和N两个过孔距离尽量近保持成对的过孔结构不要让P在板上绕了一个大弯才换层。换层之后信号回流路径切换到了新的参考平面如果换层点附近没有地过孔来衔接两个平面的回流信号回路会突然增大。解决方法是成对差分过孔旁边加一到两个地过孔形成回流电梯。AD支持通过复制的方式快速放置地过孔选中已有的地过孔按住Shift拖动即可复制保持间距适中不要太远也不要贴得太近导致短路风险。6. 长度匹配别让两根线差得太远差分线等长是新手最常见的误区来源。很多人以为等长的目的是为了让两根线同时到达接收端这个说法不算错但真正的关键在于把共模噪声降到最低。当P和N到达接收端的时刻存在偏差时接收端的差分信号中会混入共模分量造成信号失真和电磁辐射增强。所以高速接口规范通常对差分对内的Skew偏差有严格限制比如USB 3.0要求对内Skew小于几个mil级别具体值以规范为准。6.1 等长误差控制在多少合适常见做法是控制在5mil以内要求非常严格时甚至要做到1~3mil。这里的长度指的是信号实际走的物理长度包括过孔引入的等效长度。过孔的寄生效应在高速下不可忽略一个过孔在长度上大约等效于几十mil甚至更多的走线长度所以如果一对差分线换层次数不同必然需要在一侧补长度。6.2 实操用蛇形线把长度追回来AD19提供了专门的差分对等长调整命令。先选中需要调整的差分对走线执行菜单Tools Interactive Diff Pair Length Tuning选择走线后也可以按U R鼠标会自动进入等长调整模式。默认弹出设置栏中可以设定目标长度、容差和蛇形线振幅、间距。实际操作时我习惯以较长的那根线为准把较短的线拉蛇形线追长度。蛇形线的振幅不要太大一般取线距的3~5倍否则蛇形线之间会产生额外耦合让阻抗出现偏差。间距也要保持在规则限定的线距之外至少不小于2倍线宽不然等于在走线中间塞了一个平行耦合器。调整过程中AD会实时显示当前长度距离目标长度还差多少如果显示绿色或OK说明已经满足容差。如果显示红色继续用鼠标拖动调整蛇形线段数或幅度直到达标。调节完成后按ESC退出。如果退出后DRC仍报长度不匹配检查一下目标长度是否设置正确以及是否有其他线段被误选导致局部调整。6.3 等长检查的三个入口布完线之后检查等长是否满足要求我一般用三个入口互相印证DRC报告Matched Length规则中设定的容差会在DRC中体现直接看是否有报错。PCB面板在PCB面板的Nets模式下列出每根网络的长度排序后一眼看出最短和最长差多少。网络长度列表选中全部差分对网络打开Reports Board Information窗口找到网络长度信息也可以导出CSV做进一步分析。7. 布完之后的事DRC、阻抗验证和常见坑差分线布完不等于万事大吉后面还有DRC和导出前检查。很多问题在布线阶段看着没问题到了生产测试阶段才暴露往往就是这些小细节。7.1 DRC结果里哪些错误要特别留意执行Tools Design Rule Check在规则列表里重点看Differential Pairs Routing和Matched Lengths两类错误。如果是宽度和间距的报错大概率是走线时手动调整了线宽线距不满足Min/Max范围需要回到走线状态重新按规则走。如果是长度报错按上面讲到的方法调整蛇形线直到满足容差。另外还要注意检查Un-Routed Net这一类错误它提示有网络没完全连接。差分对两端的焊盘或过孔如果在内层没有连接上表面看着是实心铜皮实际却存在开路这类问题在多层板上很难一眼看出来只能靠DRC。7.2 跨分割、近距离伴行等典型问题几条我踩过又看到身边同事踩过的坑值得单独列出来跨分割差分线下方电源层的分割槽正好横穿一对线回流路径被迫绕道。解决方法是调整分割槽位置或者在跨分割两侧加0.1uF高频去耦电容作为回流桥。和其他信号线靠得太近差分线之间、差分线和普通信号线之间的间距至少保持3倍线宽以上。我曾见过把差分对和SPI时钟线并排走了2cm结果SPI一跳变LVDS图像上就出现干扰条纹。铺铜导致的阻抗突变差分线两侧如果铺了地铜且距离很近会明显拉低差分阻抗。如果确实需要铺铜和走线边缘的间距至少留出3~5倍线距并让板厂做铜皮间距检查。错误的过孔拓扑P和N分别走不同层或者过孔不对应导致长度差过大。尽量让P和N的路径拓扑一致。7.3 回到开头的掉盘案例做复盘把整个项目复盘一遍我当时的错误链是这样的一开始没有按差分对类区分90欧和100欧规则而是统一用了100欧。布完之后DRC也没报错因为规则里没有做差分阻抗相关的约束等长也没超差。问题出在底层阻抗错了信号反射导致眼图闭合。最终我建了90R_Diff类和100R_Diff类分别设置规则把USB 3.0的信号线重走同时在换层位置补了地过孔。重新打样后掉盘问题彻底消失USB 3.0固态硬盘测速也恢复了正常水平。8. 导Gerber和输出前的最后几道关口很多教程在DRC之后就结束了但实际项目里还有一道关键流程就是AD19导出Gerber。别小看这一步差分阻抗这事在加工环节还可能出问题。导出前我一般做这几件事先确认板厂的叠层参数和自己计算时用的参数一致尤其是阻抗控制层的铜厚和介质厚度然后在Output Job里配置Gerber文件输出选项确保包含所有信号层、电源地平面层、阻焊层和丝印层最后检查钻孔文件是否包含所有孔信息。比较关键的一点是Gerber文件本身不包含这是90欧差分线这种信息。加工厂是根据你的叠层说明文件和阻抗要求通过调整蚀刻参数和阻焊厚度来控制成品阻抗的。所以在发板时除了Gerber文件还需要给板厂一份包含明确叠层要求、阻抗控制要求和线宽线距标注的工程说明。很多新手漏掉这一份文件板厂只能按默认叠层加工成品阻抗自然对不上。关于差分线的长度条件约束AD19在High Speed规则里还有一些更细的选项比如可以针对特定网络组设定总长度范围用于控制差分对到连接器之间的距离。有需要的话可以深入研究一般项目用不到这么细但对特定接口比如DDR4的DQS差分对会比较有用。从原理到规则到布线到验证一整套流程走下来其实差分线设计的核心就是三件事阻抗匹配、等长控制、参考平面连续。AD19只是把这些物理要求变成了界面上的规则和命令。工具永远在变但这三条物理原则不会变。我个人在实际操作中体会最深的一点是规则设置不要追求看起来很全而是要做到每一个规则都有物理依据。你设置的每一个线宽、每一个间距、每一条等长容差都应该能说清楚它是由哪个信号要求决定的。说不清楚来源的规则留着反而是隐患。最后分享一个小技巧在AD19中如果你同时管理多组差分对且阻抗不同可以把规则名称直接命名为阻抗值比如DF_90R_USB3、DF_100R_LVDS这样不仅自己看着清楚别人接手项目时也能很快理解设计意图。一个好的PCB文件应该是即使原始设计者离职一年后其他人打开规则管理器还能一眼看懂每条规则的用途。
返回列表