ARTICLE DETAIL

资讯详情

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

AD20高速差分信号布线实战:从规则设置到等长绕线完整流程

AD20高速差分信号布线实战:从规则设置到等长绕线完整流程 1. 高速差分信号在AD20中的设计定位与核心思路1.1 为什么差分对走线不能靠“手动拉线”硬扛搞过USB、HDMI、PCIe、以太网或者LVDS这类接口的硬件工程师都清楚差分信号和普通单端信号完全是两码事。单端信号只要连通、阻抗大致可控、别绕太远基本就能跑起来但差分对不一样它靠的是两根线之间的电压差来传递信息共模噪声会被接收端自然抵消。这个机制成立的前提是两根线在整条路径上必须尽可能保持对称——等长、等距、等宽、参考平面一致。一旦你用普通交互式布线一根一根去拉问题马上就来了。第一根线拉完第二根线要贴着它走拐角处两根线的实际物理长度很容易差出几十个mil这个差值在低速信号上无所谓但在GHz级别的信号上直接导致差分对内部两根线之间的时序偏斜共模抑制能力急剧下降眼图闭合误码率飙升。更麻烦的是如果你在BGA出线区域或者连接器扇出区域没有提前规划好后面想改都改不动。AD20的交互式差分对布线功能本质上就是把这个“对称性约束”交给软件去实时维护。你只需要告诉软件“这两根线是一对目标阻抗是多少允许的相位误差是多少”剩下的等长绕线、间距保持、过孔对称软件会在你拖拽鼠标的过程中自动帮你算好。这不是偷懒这是把工程师从重复的几何计算中解放出来把精力放在层叠规划、拓扑结构、端接策略这些真正需要判断力的地方。1.2 AD20差分对布线的三个核心能力AD20在差分对处理上我实际用下来最值得依赖的是这三个能力第一原理图层面的差分对定义。你可以在原理图里直接给网络打上差分对标记比如把USB_DP和USB_DM定义为名为USB的差分对。这个定义会同步到PCB布线时软件自动识别。这一步很多人跳过直接在PCB里手动加结果网络一多就乱套后期改版时对不上号。第二PCB规则中的差分对约束。在Design - Rules - Differential Pairs Routing里你可以针对每一类差分对单独设置线宽、间距、最大相位误差、最大过孔数量差异等参数。这些参数不是拍脑袋填的后面我会详细讲怎么根据叠层和阻抗目标反推。第三交互式差分对布线器。快捷键P - I或者从工具栏选Interactive Differential Pair Routing。选中差分对中的任意一根线软件会自动带着另一根一起走拐角处自动做对称处理按数字键3可以切换走线模式45度、圆弧、任意角度按数字键1和2可以调整差分对间距按Tab键可以实时修改线宽和间距。这三个能力串起来才构成一个完整的差分对布线工作流。缺了任何一个你都会在某个环节卡住。1.3 适合哪些人参考这套流程如果你正在画一块带有USB 3.0、HDMI 2.0、千兆以太网、PCIe Gen3以上接口的板子或者你之前用AD20画差分对时总是被DRC报相位误差超限、阻抗不连续、过孔不对称这些问题困扰那这套流程就是给你准备的。我不打算讲太多理论推导重点放在“我在实际项目中怎么一步步操作、怎么设参数、怎么排查问题”上。新手可以照着步骤走老手可以看看有没有能优化的细节。2. 动手之前的准备工作叠层、规则与差分对定义2.1 叠层规划决定了差分阻抗的基准差分阻抗不是你在规则里填个数字就能实现的它是由叠层结构、线宽、线间距、铜厚、介质厚度共同决定的。AD20本身不带场求解器所以你需要先用外部工具或者PCB厂商提供的阻抗计算表格把目标阻抗对应的几何参数算出来。以常见的四层板为例顶层到内层的地平面距离如果是0.2mmFR-4介电常数4.3铜厚1oz那么100欧姆的差分对线宽大概在5mil左右间距在7mil左右。这个数值不是固定的不同板厂因为半固化片型号不同介电常数会有±0.3的波动所以最终参数一定要跟板厂确认。我一般会做一张表把每一层需要走的差分对类型、目标阻抗、计算出的线宽间距都列清楚。这张表在设置AD20规则时直接照着填避免反复试错。差分对类型目标阻抗所在层线宽间距参考平面USB 3.090ΩL15mil6milL2 GNDHDMI100ΩL15mil7milL2 GNDPCIe Gen385ΩL35.5mil7milL2 GND千兆以太网100ΩL15mil7milL2 GND注意这张表里的数值只是示例实际项目必须根据你的叠层和板厂工艺能力重新计算。尤其是HDMI和PCIe阻抗偏差超过10%就可能过不了一致性测试。2.2 在原理图中定义差分对的标准做法很多人习惯在PCB里手动添加差分对但我的建议是尽量在原理图阶段就定义好。原因很简单原理图是设计的源头PCB是下游。如果在PCB里手动加后期原理图改版重新导入网表时手动加的差分对可能会丢失或者错乱。具体操作在原理图里选中需要配对的两个网络标签比如USB_DP和USB_DM右键 - Place - Directives - Differential Pair。然后在Properties面板里给这个差分对命名比如“USB”。命名规则我习惯用接口名不用带_P/_N后缀因为AD20会自动识别正负端。如果原理图里网络标签太多不好找也可以用另一种方法在PCB界面Panels - PCB - Differential Pairs点击Add手动选择两个网络并命名。这种方法适合临时补漏但不适合作为主要手段。2.3 差分对规则的详细参数设置打开Design - Rules找到Differential Pairs Routing这一大类。里面有几个关键规则需要你逐一配置Differential Pair Routing规则这是最核心的。在Where The First Object Matches里选择你定义的差分对比如“USB”。然后在Constraints里设置Min Width / Max Width / Preferred Width根据你的阻抗计算表填比如5mil。Min Gap / Max Gap / Preferred Gap同样根据计算表填比如7mil。Max Uncoupled Length这是允许的最大非耦合长度一般设为100mil到200mil具体看信号速率。速率越高这个值要越小。Max Phase Difference最大相位误差单位是mil。对于USB 3.0我一般设5mil对于PCIe Gen3设3mil对于HDMI 2.0设5mil。Via Style规则差分对的过孔必须成对出现而且两个过孔之间的距离要尽量小。在Routing Via Style里你可以为差分对单独指定过孔类型和尺寸。我通常会用比普通信号稍小的过孔比如8/16mil这样两个过孔可以靠得更近减少寄生电感。Plane Clearance规则差分对穿过平面层时反焊盘的尺寸要控制好。太大则阻抗突变明显太小则加工困难。一般反焊盘直径比过孔焊盘大8到10mil比较合适。实操心得规则设置完之后一定要用Design - Rules - Differential Pairs Routing里的“Report”功能生成一份规则报告逐条核对。我见过太多人规则设完就忘了布线时发现DRC报错才回头查浪费大量时间。3. 交互式差分对布线的完整实操流程3.1 从BGA或连接器扇出的第一步差分对布线最难的地方不是中间走线而是从BGA或者连接器引脚出来的那一段。以BGA为例球间距通常是0.8mm或1.0mm两个差分信号往往不在相邻的球上中间可能隔着一个地球或者电源球。这时候你需要在BGA内部就把差分对引出来而且要保持对称。我的做法是先在BGA内部用较细的线宽比如4mil和较小的间距比如4mil把差分对从焊盘引出走一小段后再过渡到正常的5/7mil。这个过渡区域要尽量短而且过渡点要放在两个焊盘之间的对称位置。AD20的交互式差分对布线器支持在布线过程中动态调整线宽和间距。你按Tab键调出属性面板修改线宽和间距然后继续走线软件会自动在过渡点做平滑处理。但要注意过渡点不能有尖角否则会引起阻抗突变。我一般会在过渡点前后各留10mil的直线段让阻抗变化有一个缓冲。3.2 使用快捷键高效控制走线形态AD20的交互式差分对布线器有一组快捷键熟练之后效率提升非常明显数字键3切换走线模式。按一次切换到45度再按切换到圆弧再按切换到任意角度。高速信号我强烈建议用圆弧模式因为45度拐角在高频下仍然会产生阻抗不连续圆弧过渡更平滑。数字键1和2调整差分对间距。按1减小间距按2增大间距。这个在绕线区域特别有用因为绕线时两根线的间距会自然变化你需要手动微调。数字键4和5调整走线宽度。按4减小按5增大。Shift R切换布线模式有Ignore Obstacle、Walkaround、Push三种。差分对布线我一般用Walkaround遇到障碍时软件会自动绕开同时保持两根线的对称。Shift W调出线宽和间距的快捷菜单可以快速选择预设的几种组合。注意圆弧模式虽然好但会占用更多的布线空间。如果你的板子密度很高圆弧可能放不下这时候45度也是可以接受的但拐角处要尽量用两个45度拼成一个近似圆弧而不是单个90度拐角。3.3 绕线等长的正确姿势差分对走线过程中由于路径上的障碍物或者层切换两根线很容易出现长度差。AD20提供了实时长度监控在PCB面板的Differential Pairs Editor里你可以看到每一对差分对的当前长度和相位误差。如果误差超过规则限制DRC会报错。绕线等长的操作方法是在差分对布线状态下按快捷键T - R或者从菜单Route - Interactive Diff Pair Length Tuning。这时候软件会在你鼠标位置生成一个蛇形绕线区域你可以拖动鼠标调整绕线的幅度和间距。AD20会自动计算需要补偿的长度并在绕线区域实时显示。绕线有几个原则绕线区域尽量靠近长度差产生的位置不要等到走完整条线再绕那样补偿效果不好。绕线幅度不要太大一般控制在3倍线宽以内否则会引起严重的阻抗不连续。绕线间距要均匀两根线的绕线形状要完全对称不能一根绕得多一根绕得少。绕线区域下方必须有完整的参考平面不能跨分割。我实际项目中遇到过一个问题在DDR内存区域差分对时钟线需要绕线等长但绕线区域下方正好有一个电源分割槽。结果绕线完成后信号完整性测试发现时钟抖动明显增大。后来把绕线区域移到参考平面完整的地方问题就解决了。所以绕线之前一定要确认参考平面是否完整。3.4 过孔对称处理与层切换差分对换层时两个过孔必须成对出现而且距离要尽量近。AD20在交互式差分对布线时如果你按数字键2切换层软件会自动在两根线上各放一个过孔并保持对称。但自动放置的过孔位置不一定最优你可能需要手动调整。我的经验是过孔之间的距离控制在30mil以内最好在20mil左右。过孔周围的反焊盘要一致不能一个大一个小。如果换层后参考平面变了比如从L1换到L3参考平面从L2变成了L4那么两个过孔附近需要加缝合电容或者缝合过孔给返回电流提供低阻抗路径。实操心得我习惯在差分对换层区域附近放几个地过孔间距小于λ/20。对于10GHz的信号λ/20大约是1.5mm所以地过孔间距控制在1.5mm以内比较安全。这个细节很多教程不讲但实际测试中影响很大。4. 常见问题排查与实战避坑指南4.1 DRC报相位误差超限怎么办这是差分对布线中最常见的报错。原因通常有三个一是绕线等长没做够二是绕线区域不对称三是软件计算的长度包含了非耦合段。排查步骤打开PCB面板的Differential Pairs Editor找到报错的那一对看它的实际相位误差是多少规则限制是多少。如果误差不大比如规则限制5mil实际6mil那可能是绕线区域不够精确手动微调一下绕线幅度。如果误差很大比如实际20mil那说明有一段线完全没有耦合比如从BGA出来的扇出段。这时候需要在扇出段也做等长补偿或者放宽规则限制。检查绕线区域是否对称。AD20的绕线工具默认是对称的但如果你手动修改过其中一根线对称性就会被破坏。这时候可以删掉绕线区域重新绕。4.2 差分对阻抗不连续的定位方法阻抗不连续会导致信号反射眼图恶化。在AD20里你可以用Layer Stack Manager和Impedance Calculator粗略估算但更准确的方法是做TDR仿真。不过在实际项目中我一般先通过以下几个迹象判断如果DRC报“Uncoupled Length”超限说明有一段线没有耦合那一段的阻抗肯定偏高。如果差分对经过了过孔密集区域过孔的寄生电容会导致阻抗偏低。如果差分对跨过了平面分割返回路径断裂阻抗会严重不连续。定位方法在PCB里用Tools - Signal Integrity选中差分对运行分析。AD20会生成一个阻抗曲线你可以看到哪个位置的阻抗偏离了目标值。然后回到PCB找到对应位置检查是否有过孔、分割、或者线宽变化。4.3 差分对布线常见问题速查表问题现象可能原因排查方法解决方案DRC报相位误差超限绕线不足或不对称查看Differential Pairs Editor重新绕线确保对称阻抗不连续线宽变化、过孔、跨分割Signal Integrity分析优化过渡、加缝合过孔差分对无法选中原理图未定义或命名错误检查Differential Pairs面板重新定义差分对布线时另一根线不跟随规则未匹配或软件bug检查规则Where条件重新设置规则重启软件过孔不对称手动放置或自动放置偏差目视检查手动调整过孔位置绕线区域DRC报错绕线间距太小或参考平面不完整检查绕线区域调整绕线参数或移动位置4.4 几个容易被忽略的细节第一差分对的参考平面切换。如果差分对从L1换到L3参考平面从L2换到L4那么返回电流需要从L2流到L4。这时候需要在过孔附近放缝合过孔否则返回路径断裂信号完整性会严重恶化。我一般会在换层过孔旁边放至少两个地过孔间距小于100mil。第二差分对的端接电阻。很多高速接口需要在接收端加端接电阻比如100欧姆的差分端接。这个电阻的布局非常关键必须尽量靠近接收端引脚而且两颗电阻的走线要对称。我见过有人把端接电阻放在离接收端很远的地方结果信号反射严重眼图完全闭合。第三差分对的测试点。如果在差分对上加测试点测试点的寄生电容会导致阻抗不连续。如果必须加尽量选择小封装的测试点比如0402或者0201并且测试点的走线要尽量短。第四AD20的交互式差分对布线器在复杂板子上的性能。当板子上有大量差分对时AD20的内存占用会明显上升。我遇到过一块板子有200多对差分对布线到后期软件变得很卡。解决办法是把已经布完的差分对锁定减少软件实时计算量或者分区域布线不要一次性打开所有差分对的显示。5. 从布线完成到输出制造的检查清单5.1 布线后的DRC与DFM检查差分对全部布完之后不要急着出Gerber。先跑一遍完整的DRC确保没有相位误差、间距、线宽方面的报错。然后跑DFM检查看看差分对的线宽间距是否满足板厂的最小加工能力。有些板厂的最小线宽是4mil最小间距是4mil如果你的差分对是3.5mil那就需要调整。AD20的Design - Rules - Manufacturing里可以设置板厂的能力参数DRC会自动检查。我一般会把板厂的能力表导入进去这样检查更准确。5.2 差分对的长度报告与阻抗报告在Output - Documentation Output里可以生成差分对的长度报告。这份报告会列出每一对差分对的长度、相位误差、过孔数量。我习惯把这份报告和阻抗计算表一起存档方便后期调试时对照。如果板子有阻抗测试要求还需要在PCB上放置阻抗测试 coupon。这个 coupon 的叠层和线宽间距要和板子上的差分对完全一致否则测试结果没有参考意义。5.3 输出Gerber时的注意事项AD20导出Gerber用File - Fabrication Outputs - Gerber Files。在Layers选项卡里确保所有信号层、平面层、丝印层、阻焊层都勾选。在Drill Drawing里勾选过孔和钻孔层。在Advanced选项卡里确保“Use Software Arcs”勾选这样圆弧走线会被正确输出。注意有些板厂的CAM软件对圆弧走线的处理有问题可能会把圆弧近似成折线。如果你的差分对用了圆弧模式导出Gerber后最好用CAM工具检查一下确认圆弧没有被破坏。5.4 我个人在实际操作中的体会差分对布线这件事软件工具再强大也替代不了工程师对信号完整性的理解。AD20的交互式布线器能帮你保持对称、等长、间距但它不知道你的参考平面是否完整、你的过孔是否合理、你的端接是否到位。这些都需要你在布线之前就想清楚。我踩过最大的一个坑是早期做USB 3.0的时候觉得差分对只要等长就行忽略了参考平面的连续性。结果板子回来测试USB 3.0只能跑到2.0的速度3.0完全跑不起来。后来用TDR分析发现差分对在跨分割的地方阻抗从90欧姆跳到了120欧姆反射严重。重新改板把跨分割的地方加了缝合电容问题才解决。所以我的建议是差分对布线之前先花半小时把叠层、参考平面、过孔策略、端接方案全部规划好画一张草图。这半小时的投入能帮你省掉后面几天的调试时间。AD20的规则和交互式布线器只是执行工具真正的设计决策还是在你手里。
返回列表