ARTICLE DETAIL

资讯详情

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

AD19差分走线全流程:从阻抗计算规则配置到蛇形等长与DRC检查

AD19差分走线全流程:从阻抗计算规则配置到蛇形等长与DRC检查 做高速板这些年AD19的差分走线功能我几乎每块板子都要用。HDMI、USB3.0、千兆网口、LVDS时钟随便哪个没处理好板子贴回来就是一阵折腾要么眼图不过关要么EMI测试被卡要么干脆通信闪断找不着原因。说实话很多工程师把差分走线理解成两根线并排拉齐就开始干活等发现问题再回头改规则、调等长改板周期硬生生被拉长。这篇东西我就来把AD19里差分走线的完整链路——从差分对物理参数怎么定、规则表怎么配到交互布线的具体手法再到蛇形等长的长度计算和绕线方式——一次说清楚尽量让新人在第一版就把事情做对。1. 在动线之前先把差分对的物理底子想明白很多人一上来就打开AD19的规则管理器填线宽填线距这是个本末倒置的动作。差分走线不是说你在AD里勾了个差分对选项、把两根线走得一样长就完事了。它背后的信号完整性逻辑决定了你这条差分线在真实板子上能不能达到预期的抗干扰能力和眼图质量。1.1 差分信号为什么能抗干扰差分信号是用两根线传输一对大小相等、极性相反的信号接收端只看两条线上电压的差值。这里面有个非常朴素的好处如果外部电磁干扰同时耦合到两根线上这叫共模干扰两根线的电压都往上抬了同样的幅度相减之后干扰被抵消掉了。你可以把它想成两个人抬一桶水如果两边肩膀被人同时往下按了一下桶本身不会歪因为两边受力是对称的干扰就是那个同时按下来的力差值信号就是桶的平衡状态。这个特性带来的直接收益有三个更强的抗外部干扰能力、更低的对外电磁辐射因为两根线的电流方向相反各自产生的磁场大部分相互抵消、以及更低的参考地回流要求线对之间的回流可以通过对方线实现对地平面的连续性宽容度略高。这也是为什么高速串行信号几乎清一色走差分——USB、PCIe、SATA、HDMI、LVDS、千兆以太网无一例外。1.2 决定差分质量的三个数字线宽、线距、到参考层的距离谈到差分走线绕不开一个参数差分阻抗Zdiff。它的数值由两件事决定单根线对参考层的特性阻抗Z0以及两根线之间的耦合程度。Z0主要由线宽W和到参考层的介质厚度H决定线越宽、离参考层越近Z0越低。而两根线之间的耦合主要由线间距S决定间距越小耦合越强差分阻抗降得越明显。工程上常用的近似经验公式大致长这样Zdiff ≈ 2 × Z0 × (1 - 0.48 × e^(-0.96 × S / H))看到这个公式你就能明白一个常被忽视的事实改动线距S对差分阻抗的影响和改动线宽W对差分阻抗的影响是耦合在一起的你不能只盯着其中一个参数调。而且这里真正起锚定作用的其实是Z0也就是参考层距离H和线宽W——H又取决于层叠结构。换句话说如果板厂的层叠厚度变了你原来算好的5mil线宽8mil线距差分阻抗可能整个偏掉。所以正规流程一定是先定层叠再算阻抗最后反推线宽线距。1.3 不同接口的差分阻抗目标值参考先把标准值摆出来这是做项目时最常用到的起点接口类型目标差分阻抗典型应用场景USB 2.0 / USB 3.090Ω数据线、高速外设HDMI100Ω音视频传输4对差分LVDS100Ω显示屏接口、图像传输千兆以太网100ΩRJ45差分对4对PCIe85Ω高速扩展总线DDR差分时钟100Ω内存时钟线对我看到过不少工程师把USB的90Ω做成100Ω还在那儿奇怪为什么眼图测试悬边那么大。规格都记错了后面全白忙。1.4 叠层结构怎么定线宽线距一个4层板的实操样板假设最常见的1.6mm四层板叠层是顶层信号、二层完整地平面、三层电源平面、底层信号。顶层的差分线参考的是第二层的地平面此时介质厚度通常约0.2mm考虑半固化片做100Ω差分、线宽5mil时线距经验值大概在8mil左右做90Ω差分线距可能要放到9~10mil或者把线宽稍微加粗到5.5mil。这些数字不是拍脑袋来的可以用SI9000或者AD自带的层叠管理器先粗算最靠谱的方式还是发给板厂让他们的阻抗工程师帮你叠。记住一个原则先定层叠再算阻抗最后定线宽线距顺序不能反。层叠定了之后线宽线距在软件里就是一个可以直接落进规则表的确定值了。2. AD19差分规则设置从原理图命名到规则表的完整链路物理参数确定了接下来就是把这些数字落实进AD19里。很多人卡在这一步的原因不是不会填规则而是整个流程的先后顺序没理顺导致规则不生效、网络对不上、DRC乱报。2.1 原理图网络命名的规范从源头避免P/N匹配失败AD19识别差分对最重要的一条依据是网络名的后缀。通常约定是正端以_P结尾负端以_N结尾两者共用一个基础名。比如USB_D_P和USB_D_N就是一对差分HDMI_CLK_P和HDMI_CLK_N是另一对。命名必须规范统一否则在PCB里执行创建差分对操作时你会发现大量网络找不到配对伙伴。注意几个细节基础名大小写要完全一致不要出现USB_D_P和usb_d_n这种不匹配后缀最好只用_P和_N不要混用_PLUS、_MINUS等花样如果芯片厂商提供的封装引脚名本身就是P和N结尾在原理图网络标号阶段就要转换好不要在PCB环节才来补救。2.2 在PCB中创建差分对两种常用路径原理图画完后编译通过进入PCB界面。执行菜单Design-Differential Pairs或者在PCB面板里找到Differential Pairs Editor。这里有两条常用路径按网络名自动匹配点击Auto GenerateAD会扫描当前PCB中的所有网络根据_P/_N后缀自动生成候选差分对。养成编译后第一时间做这个操作的习惯比手动一对对拖快得多。手动创建在差分对编辑器中点击Add分别指定正端网络和负端网络。适用于网络命名不规范、但不想回原理图改的临时场景。建完差分对后再建立一个对应的差分对类Differential Pair Class把这块板子上所有需要走差分的网络都归进去。这样做的好处是后面设置规则时可以按类统一应用不用一条一条网络去匹配效率高且不容易漏。提示AD19的差分对是物理对象而非单纯的规则对象你在原理图里定义了差分属性后导入PCB时会自动生成但前提是原理图侧的差分指示符已经放置正确。最省心的做法还是在原理图中用Place-Differential Pair放好差分标记这样网络一进PCB就自动成对无缝衔接。2.3 规则表配置的逐项拆解差分规则的核心入口在Design-Rules找到Routing-Differential Pairs Routing。这里需要配置几个关键项每一项背后都有逻辑Min Width / Preferred Width / Max Width差分走线的线宽。这里填的应该是你根据层叠和阻抗目标反推出来的宽度值比如前面算的5mil。注意如果布线时用了阻抗计算工具线宽通常是单值不要给太宽的浮动范围否则布线时容易失控。Min Gap / Preferred Gap / Max Gap同一差分对内部两根线之间的间距也就是上面说的S值。这是决定耦合程度的关键参数一般也按阻抗计算结果填死。Min Coupling Length耦合长度阈值。这个参数的意义是只有当两根线并行走线长度超过该值时AD才认为这是有效差分否则它可能按普通单端处理。默认值通常够用但在连接器出线区域、BGA内部走线比较短的情况下注意别让它误判可以把阈值适当调小。Sweep / Gap Tolerance等高级选项差分对布线时的间距渐变控制。新手可以暂时不动采用默认即可。但如果你想走一段收紧间距的渐变线来匹配阻抗这里就是调的地方。还有一类很容易被忽略的规则就是差分对到其他网络的间距规则。差分对内部的S可以很小但差分对与相邻信号或相邻差分对之间的距离不能跟着变小否则会产生严重的串扰。实践中我一般会设一条Differential Pair到其他网络的间距规则至少是3倍线宽3W规则和相邻差分对之间则要求更大间距。同样是5mil线宽内部间距8mil对外间距至少15~20mil起步。2.4 不同差分对的独立规则用优先级和查询语句精准命中项目里往往有多种阻抗需求USB要90ΩHDMI要100Ω。如果全部用同一个规则就会互相冲突。AD19的解决方案是规则系统自带优先级和查询语句对一个规则添加query限定让它只应用于特定的差分对类或网络。比如给USB差分规则写InDifferentialPairClass(USB_Diff)它会优先于全局差分规则生效。在规则列表里调整优先级顺序更具体、限定范围更小的规则优先级要更高。AD19的规则优先级从1开始数字小的优先级高。这块是很多新手掉坑的重灾区全局有一条100Ω差分规则又没有新建90Ω的规则结果USB差分网络全部按100Ω走线等板子做出来阻抗测试不合格才发现规则压根没生效。3. 交互式差分布线从起点到终点的实操手法规则配好了差分对建好了可以开始拉线了。这一步看着只是走线但在AD19里交互式差分布线有几个关键设置直接影响你的布线效率和最终质量实际操作中还隐藏着不少细节。3.1 启动差分交互布线的入口与快捷键在AD19里执行Route-Interactive Differential Pair Routing或者用快捷键I-I然后用鼠标点选已配对好的网络再点击起点就进入差分布线模式。此时光标上会同时拖着两根线移动时光标保持在两根线的中间位置线宽和线距自动套用你之前设好的规则。布线过程中几个键盘快捷键能极大提升效率Tab键布线过程中打开属性面板可以临时查看或覆盖当前的线宽、线距一般在调试时应急用正式规则别靠临时改。Shift W如果规则里给线宽开了多个挡位比如Min/Preferred/Max不同值可以在这里快速切换当前线宽。*键换层时自动放置过孔并切换到另一布线层。Shift R切换布线模式忽略障碍/推挤/绕障等。差分走线时遇到BGA区域内的过孔或焊盘推挤模式往往能帮你快速绕开。3.2 布线过程中的走线手法等长意识要从第一段线就开始不要等全部走完才开始想等长的问题第一段线就决定了后面的调整空间。实操经验是这样的每对差分两端的出线方式尽量对称。比如从连接器出来两个引脚是上下排列的出来之后要先走一小段直线再汇合不要让一根线直接拐弯去追另一根否则会人为制造长度差。过孔位置尽量对称放置。五对HDMI差分如果过孔位置不统一后面等长的工作量会成倍上升因为每一对都要绕出不同的弧度来补偿。拐角首选135度钝角避免90度直角。高频信号在直角拐弯处会产生阻抗突变和辐射虽然现如今的板材和频率下未必会出大问题但没必要踩这个坑。换层时要在过孔附近加一对地过孔做回流路径这个动作在高速差分中几乎不可省略。差分对本质上对回流地依赖较低但换层瞬间如果参考平面改变了回流路径会出现断点地过孔能把这种不连续性降到最低。3.3 从连接器到芯片的完整一拖一个HDMI差分对的实例演示拿HDMI的一对数据线来演示完整流程。HDMI连接器通常有19个引脚其中4对差分信号分别是Data2、Data1、Data0和CLK。目标阻抗100Ω我们在规则里已经把线宽设为5mil、线距8mil。从连接器焊盘出发由于连接器引脚间距可能比较小无法一出来就直接达到8mil线距这时候可以走一小段逼线引脚焊盘中心距小于目标间距时走线被迫先靠近焊盘。这段逼线尽量短个人习惯不超过50~80mil之后迅速放开到8mil间距保持平行走线。走到BGA侧如果芯片引脚排列较密同样会出现一段BGA内的非理想出线这段布局影响较大尽量控制在100mil以内且保持两根线长度基本一致。整段线走完后回到差分对编辑器中查看每根线的实际长度记录差值。你会发现即便很小心两端出线方式的不同、过孔位置偏差还是会产生几十mil的长度差这就是下一步等长要处理的。3.4 等长意识要从第一段线就开始这句话再看一遍我再强调一次这个观点因为它是菜鸟和老手之间最明显的差距。有些人布线的时候追求视觉整齐同一对的两根线并排走得很漂亮结果到了芯片端一根线多拐了一个弯、多走了一段延长线另一根线却直直地进焊盘等长一瞬间就差了40mil。正确的习惯是走完差分对的第一时间就打开长度报告看一眼。AD19在Reports-Board Information里可以查看各网络线的长度或者在布线结束后用Differential Pairs Editor的长度列直接看到每对两根线各自的长度。发现差值偏大当场返回布线调整那一小段不必要的大拐弯而不是全部走完再统一处理后者也能修正但绕线的工作量和美观度都差很多。4. 蛇形等长长度差怎么算、绕线参数怎么填差分对等长是高速信号里面最容易做得过分也最容易做得不够的一步。很多人拿到一把蛇形线就开始拉看到DRC不报了就觉得完事。实际上蛇形等长的目标长度、补偿容差、绕线样式和振幅间距每个参数都有讲究。4.1 目标长度从哪里来以最长那对为基准多对差分信号比如HDMI的4对之间要求的是组内等长也就是所有差分对的实际长度都要往同一个目标长度靠拢。目标长度一般取所有配对中最长的那一对的实际长度或者取满足时序要求计算出的最大允许长度。更严谨的做法是按信号时序余量来算先查芯片手册里关于该组信号skew偏斜的规格再结合信号的上升沿时间估算允许的走线长度差。举个例子某接口芯片要求HDMI组内差分对之间长度差不超过5mil那目标长度就是最长的差分对长度其他对都绕线补到这条线一样长保证组内齐平。如果你在做一个全新设计没有现成的参考长度我建议先用Reports生成当前网络长度报告确定最长的那对是多少然后预留一定余量比如预留10~15mil作为目标长度给后面的调整留下缓冲。4.2 AD19的等长调节工具Tune Diff Pair Length面板参数解读AD19里做差分等长用的是Route-Tune Differential Pair Length点选需要绕线的差分对中较短的网络对进入等长调节模式。此时面板上有几个参数很多人不调直接用默认值导致绕出来的蛇形又密又乱其实每一项都有它的物理含义Target Length目标长度。填上述确定好的基准值AD会实时显示当前走线长度和目标值的差你边拖动边看差值归零。Max Amplitude蛇形绕线的最大振幅也就是蛇形凸起的高度。振幅越大单段绕线能补偿的长度越多但占据的面积也越大。一般建议不超过60~80mil太大会造成有效的线间间距过大分析困难而且在窄通道里根本摆不开。Gap蛇形相邻段之间的间距。这个必须遵守前面说的间距规则个人建议最小不小于3倍线宽也就是15mil左右起步。间距太小相邻段之间的耦合会改变局部阻抗等于给自己埋雷。Style绕线样式。常见的是Accordion手风琴式像连续的Z字形和Trombone长号式像回形针。Accordion会沿布线方向连续摆动占用长度较多但实现简单Trombone在两侧各走一段折返占用横向空间较大但纵向更紧凑。具体选哪个取决于通道形状不要死板地只用一种。提示做蛇形绕线时把AD19的Ghost幽灵预览功能打开你可以在落定之前看到绕线将占用的实际区域避免绕到一半发现旁边有别的信号线挡路又得撤销重来。这个功能在密集板中非常救命。4.3 什么时候手动绕什么时候放心让工具绕AD19的等长调节工具在大多数情况下能实现自动补偿即你拖动蛇形整体长度时它会自动根据目标长度伸缩你只管按住鼠标沿走线方向拖动到指定位置。但有三种情况必须手动出手绕线区域有障碍物比如旁边就是排阻或过孔自动蛇形会跟它们打架需要手动一段段调整位置。长度差过大超过200mil自动蛇形会绕出一大片密集的曲线此时建议重新调整布局或走线路径别硬用蛇形去填这个坑。拐弯处靠近连接器或BGA引脚自动蛇形容易把自己绕进拥挤区域需要手动缩小振幅或移动起始点。另外蛇形绕线不是越多越好。每绕一次蛇形信号线就多了一次方向突变相当于增加了多处阻抗不连续点。能通过调整走线路径来补偿的长度差优先通过路径调整解决蛇形是最后手段。4.4 绕完之后如何确认等长结果绕完之后建议做一次全面长度评估而不只是看DRC有没有报错。方法是在Design-Rules里设置一条Length规则或Matched Length规则为对应的差分对类设置最小/最大长度和容差然后跑一遍DRC。这里特别提醒一点AD19的DRC对于差分对等长的检测和普通网络长度检测是不同的规则体系。普通网络用的是Routing-Length差分对则要看High Speed-Matched Length或差分对自身的长度匹配规则。如果只设置了普通网络的长度规则差分对长度超了DRC也可能不报不要因此误以为等长已经合格。5. 走线完成后的DRC排查与生产衔接到了这一步差分走线和等长都做完了但别急着出Gerber。根据我做过的项目经验这里还有两个高频问题等着你一是DRC规则本身配置不当导致误报或漏报二是板厂生产沟通环节没做到位导致阻抗做偏。5.1 常见差分相关DRC错误根因与解法把实际遇到过的DRC报错整理成一张表方便你对照排查DRC问题常见根因处理建议Un-Routed Net差分对其中一根线没走完或走线悬空检查每对差分两端的焊盘连接特别留意扇出是否完整Differential Pair Clearance Violation差分对间距S被错误地减小或规则里Gap设置过小查看违规位置确认是否有线不小心被推挤到太近Length Violation等长规则设置后实际长度超差检查目标长度设置和Group包含的网络确认所有要求等长的网络都已加入Breakout Violation差分出线区域长度超过耦合长度阈值导致该段被识别为普通走线调整Coupling Length阈值或缩短出线逼线段长度Stub Violation走线出现了分支stub差分信号的分支会严重恶化信号质量删除多余的测试点、过孔分支保持差分走线单一连续排查思路是先看DRC报告里报的是什么类型的错误再定位到具体坐标判断是规则设置问题还是走线问题。我见过很多次新手把规则里的Min Gap填得比实际阻抗要求还要大导致DRC不断报错最后把规则一改走线又耦合不足、阻抗偏高了。所以排查之前先回去核对规则表里的数字和阻抗计算报告是否一致这是最快的定位手段。5.2 规则设置完毕到出Gerber前的三个自检动作出Gerber前我会固定执行三个自检每次都帮我拦下过不少潜在问题跑一遍完整DRC并导出报告不只是看错误列表还要看警告列表。有些警告比如差分对长度差超了容差但没到错误阈值是DRC默认按警告处理的容易被忽略恰恰这种问题最容易流到板厂。用3D视图或高亮模式检查差分对交叉屏幕上看PCB平面走线有时两条走线在不同层视野重叠会造成视觉假象。用高亮或分层视图确认每对差分的两根线没有交叉、没有跨越到对方的网络。核对差分对报告在Differential Pairs Editor里导出当前所有差分对的正负网络名、实际长度、长度差逐对核对一遍。尤其在改版项目中这项工作能快速发现上一次改板遗留的超差问题。这三个动作加起来不到十分钟但能避免很多低级错误我建议你把它们固化到自己的出图前检查清单里。5.3 与板厂沟通阻抗叠层别把算好的阻抗捂在自己手里这一步特别重要尤其当你不是在大厂成熟平台做板而是走快速打样渠道时。你把PCB文件发给板厂板上差分线的阻抗是否准确很大程度上取决于板厂给的叠层结构。所以出Gerber包时应该把阻抗要求明确写进工艺说明里最稳妥的方式是给出叠层信息并附上阻抗要求明确标注哪些网络需要控制阻抗目标阻抗是多少如HDMI差分100Ω±10%。用文字截图并用的方式最保险。如果方便把你自己算的线宽线距也写上去让板厂按你的叠层核算阻抗而不是等到EQ工程确认阶段才发现双方计算的介质厚度不一样。板厂回传EQ后仔细核对他们的叠层表中介质厚度、铜厚、阻焊厚度是否和你设计时用的一致。遇到过工厂把半固化片叠层顺序调整导致介质厚度变了0.05mm阻抗就跑偏的案例这种问题在图纸审查阶段发现远比板子做出来之后发现要好处理得多。最后再分享一个从实战中沉淀出来的小经验差分等长和阻抗控制这两件事一定是在设计阶段就要先定规则、再走线、后验证一条龙做完不要留到最后靠DRC去兜底。我做过的几个高速项目中凡是差分规则一次配到位、走线过程中就保持等长意识的项目试板阶段的信号质量都非常稳定反过来凡是先随便走走、后面再统一调整的项目几乎无一例外都在时序或EMI上多花了一两轮改版周期。AD19这套差分能力本身很成熟用好它的关键在于你对每个参数背后的物理意义是不是真的理解了——当你明白了线距为什么影响阻抗、目标长度为什么取最长那对、蛇形振幅为什么不能太大这些东西就不会再是软件里冷冰冰的数字而是你手里真正可控的指标。
返回列表