YAOTU INSIGHTS

嘉立创EDA专业版:差分对、等长布线与铺铜实战全攻略

嘉立创EDA专业版:差分对、等长布线与铺铜实战全攻略
做了这么多年PCB每次看到有人在嘉立创EDA专业版里被差分对、等长、铺铜这三件事反复折磨我都想说一句你们不是不会操作是没搞明白这三件事背后的逻辑。我自己从AD转过来用嘉立创EDA专业版做高速板最初也被它的交互布线和铺铜逻辑搞得头大但一旦把思路理顺效率翻倍是实打实的。这篇文章就把差分对等长布线、铺铜实战这块一次性讲透从原理到操作再到避坑全是我实际画板子时验证过的路子。先说明一点这篇文章不是软件操作手册的复读而是按我自己的使用习惯把那些文档里写得含糊、论坛里吵来吵去的问题用最直接的方式讲清楚。适合正在用嘉立创EDA专业版做项目、却被“到底怎么设置差分规则”“等长怎么拉才对”“铺铜后板子反而出了问题”卡住的人。1. 为什么差分对、等长、铺铜这三件事会一起卡住你很多人在嘉立创EDA专业版里遇到问题第一反应是搜快捷键、搜菜单在哪里然后照着操作一遍发现还是不对。其实这三件事卡人的地方不在操作而在底层逻辑。你只有知道差分信号在传输什么、等长到底在匹配什么、铺铜在解决什么问题才能在软件里做出正确的取舍。1.1 差分信号到底在解决什么问题差分信号不是“两根线传两个信号”而是“两根线传一个信号”——一个正相、一个反相接收端看的是两端的差值。这个设计的核心好处有两点抗共模干扰和抑制电磁辐射。外部噪声对两根线的干扰基本相同相减之后就抵消了两根线上的电流方向相反产生的磁场也相互抵消对外辐射就小。这就是为什么USB、HDMI、RS485、以太网这类接口都喜欢用差分。但差分信号有个前提两根线必须尽量等长、等宽、间距恒定。等长是为了保证正反信号到达接收端的时间一致否则差值就不是干净的信号会出现共模噪声间距恒定是为了保证差分阻抗稳定如果某一截两根线靠太近或太远阻抗突变就会产生反射。1.2 等长不只是为了“好看”等长的问题比差分对更普遍因为很多普通并行总线也需要等长。DDR地址线、数据线、VGA的RGB信号、SDIO的DATA线这些都属于并行时序总线。接收端在时钟沿采样所有信号必须在同一个时间窗口内稳定到达如果一个信号晚到了几个纳秒采样就可能采到错误电平。我记得有个初学者朋友画DDR的板子地址线差了快100mil跑起来总是莫名奇妙死机。他用示波器测了半天也没发现大问题最后把地址线等长拉齐问题就消失了。时序这东西就是这样不出问题的时候你感觉不到它的存在一出问题就是间歇性的、难复现的特别难查。1.3 铺铜与回流路径的关系铺铜在一部分人眼里是“给板子接地”这话对了一半。铺铜的核心作用是提供一个完整的回流路径。每一个信号电流不管走的是表层还是内层都必须有一个回流电流回到源端。回流电流会沿着信号路径正下方的参考平面走走的是阻抗最小的路径。如果参考平面在信号下方被切断回流电流就不得不绕路环路面积变大对外辐射和串扰都会增加。这就解释了为什么很多人铺铜之后EMC反而更差——不是铺铜错了是铺铜铺出了悬浮铜皮、把参考平面切碎了、或者在地平面里留下了一个“孤岛”。电机驱动板上大面积铺铜导致高EMC往往就是对回流路径理解不到位导致的。铺铜不是“撒一把地就完了”要铺得让回流路径连续、完整。2. 嘉立创EDA专业版差分对设置与交互布线原理讲完进实操。嘉立创EDA专业版里差分对布线的整个流程我建议按“先设规则、再设差分、再布线、最后检查”的顺序走别急着一上来就拉线。2.1 设计规则先做对绝大多数差分对布线出问题的根源都是规则没设对。在嘉立创EDA专业版里打开“设计规则管理”找到“差分对”分类里面可以设置差分线的线宽和间距。很多人在这里直接填一个整数了事但正确的做法是先算一下这个差分对的阻抗需求。USB 2.0一般是90欧差分阻抗RS485一般是100~120欧。要实现某个目标阻抗线宽和间距是配套的。我自己的经验是先确定铜厚、板厚和叠层然后用Si9000或厂家提供的阻抗计算工具算一个大概的线宽间距组合再把数值填进去。嘉立创EDA专业版自身也有阻抗计算相关的支持实在不行就用厂家的在线计算器。这里有一个关键选项容易被忽略差分对“允许时延调整”或者走线在不同层时的规则切换。高速差分建议尽量减少换层如果必须换层在换层点附近放置过孔作为参考平面连接保证回流连续。2.2 差分对网络分配规则设好之后还要告诉软件哪些网络是一对。在嘉立创EDA专业版里选中两个网络可以用“差分对”功能把它们设置成差分组。设置完以后两个网络会被当成一个整体看待布线时可以同时拉两根线。我见过有人在原理图里把差分信号命名为P和N但在PCB里忘了做差分对设置结果布线时只能一根一根拉等长靠肉眼间距靠感觉。这样最后做出来的板子差分质量完全没有保障还会花掉两倍时间。设置差分对这个动作花不了一分钟值得养成习惯。2.3 真正的交互式差分布线差分对布线的操作在嘉立创EDA专业版里非常顺手。进入布线模式工具栏会切换到布线相关工具选择“差分对布线”工具点击其中一个焊盘软件会自动找到对应的差分对然后同时生成两条走线。用Shift空格或按提示可以在不同拐角模式之间切换推荐使用45度模式直角对高速信号不利。走线过程中注意观察软件显示的实时阻抗提示和长度提示。嘉立创EDA专业版在差分布线时会实时显示当前差分对的两根线长度差如果发现差距越来越大立刻停下来调整路径不要等到最后统一绕线。2.4 换层过孔与回流路径差分对换层是很多人的噩梦。线走到一半发现被东西挡住必须换到背面。换层本身不是问题问题是很多人换层之后忘了处理回流路径。每个信号过孔旁边建议放一个地过孔让回流电流在换层的瞬间有连续路径可走。在嘉立创EDA专业版里可以手动放地过孔也可以用过孔阵列功能快速打一排。我自己的习惯是差分对的两个信号过孔之间或旁边紧挨着放一个地过孔距离越近越好。高频差分对换层如果不配地过孔信号完整性会明显下降EMI也会变差。3. 等长布线实战先从走线拓扑说起等长布线的大坑在于很多人一上来就开绕蛇形线结果绕完一看不是绕得太密导致串扰就是绕的方向挡住了其他信号。等长的正确思路是先梳理拓扑再走线最后才用蛇形线微调。3.1 等长不是蛇形线的代名词记住这句话蛇形线是等长的最后手段不是第一手段。同样的等长目标如果两条信号线的物理路径本身就很接近那需要绕的幅度就很小。很多人布线时不管路径随手乱拉最后发现一条线比另一条短了500mil再急着加蛇形线又挤又丑还引入串扰。正确做法是在布线之前先规划路径。把DDR地址线、数据线这些需要等长的信号在布局阶段就确保它们的起点和终点相对集中。走在同一层尽量并行、同向、间距一致。这样走出来的线天然就比较接近等长后续调整量会大大减少。3.2 建立等长组的正确方式在嘉立创EDA专业版中等长需要先建立“网络类”或者“等长组”。你可以把需要等长的多个网络放进一个组然后设定目标长度和误差范围。软件会按组内最长的网络为基准或按你设定的目标值实时显示每个网络距离目标还差多少。这一步要特别注意误差设置。比如DDR地址线通常要求正负20~50mil以内具体看芯片手册别拍脑袋填一个5mil那会让布线难度暴增而且实际意义不大。差分对内部等长要求比较严通常在5mil以内而一组并行信号之间的等长要求反而宽松一些但也不能掉以轻心。3.3 蛇形线与缝隙调整经验蛇形线绕法有几个硬经验是画了无数板子之后才真正理解的第一蛇形线的平行段间距要大于等于3倍线宽。否则两条平行走线之间会产生耦合反而把信号搞坏。第二蛇形线的振幅不要太大一般不超过线间距的3~5倍。第三蛇形线尽量靠近信号线的起点或终点附近绕不要在中间位置绕减少对中途信号的影响。在嘉立创EDA专业版里你可以手动推挤或调整蛇形线。选中一段走线用“调整走线”功能前后拖动软件会自动让线保持45度或圆弧拐角。如果发现某一截线的间距太近用推挤功能把它们推开但推挤之后要重新检查等长状态。3.4 实例DDR地址线等长怎么拉以DDR2/DDR3的地址线组为例实际操作步骤是所有地址线先在同一个层、用相同线宽拉出来尽量保持起点到终点的路径长度接近。把所有地址线加入一个等长组打开长度显示面板看组内最长的那根线是多少。以它为目标逐一对短的线进行蛇形补偿。我不建议一开始就设定一个“理论目标值”然后让所有线去够它——那样往往不现实因为板子空间就那么大。比较现实的做法是先拉出最长路径其他线去匹配它。嘉立创EDA专业版里可以设置“以最长线为基准”这样操作效率最高。拉完之后把误差控制在允许范围内再跑一遍DRC确认没有违反规则。4. 铺铜实操铜皮、禁区与过孔阵列铺铜这个环节很多人觉得简单但真正能让铺铜“不添乱”是需要点功夫的。嘉立创EDA专业版的铺铜逻辑和AD不太一样用顺手了也还好但有几个细节必须注意。4.1 大面积铺铜还是网格铺铜先分清两种铺铜的适用场景。大面积实心铺铜导电能力强、散热好、回流路径连续适合大多数数字电路和功率电路。网格铺铜的散热效果在热设计上更均匀焊接时不容易起泡适合需要焊接的场合或者高频电路中减少涡流损耗。在嘉立创EDA专业版里铺铜工具就在顶部工具栏选择“铺铜”后可以定义铜皮边界也可以直接沿着板框画一个覆盖整个板子的区域。但我强烈建议不要一上来就全板铺铜而是先布完关键信号线再做局部铺铜。全板铺铜之后走线调整时铜皮会自动避让这会拖慢软件响应速度而且很多电感效应是你看不到的。4.2 禁止铺铜区的设置禁止铺铜区可以说是铺铜的“安全阀”。以下几个位置一定要设置晶振下方。晶振本身是强辐射源下方铺铜会把噪声耦合到地反而变成天线串到其他电路。正确的做法是在晶振正下方禁止铺铜周围用地过孔做包围。天线区域。如果你的板子有天线蓝牙、WiFi、Zigbee天线正下方必须禁止铺铜否则会严重恶化天线增益。这一点在嘉立创EDA专业版里叫“铺铜禁布区”绘制一个闭合多边形再把属性设为“禁止铺铜”之后的铺铜会自动绕开。隔离带。在强弱电交界、高压低压交界区域设置一条禁止铺铜的隔离带能减少热噪声和泄漏电流的路径。4.3 接地过孔阵列怎么打地过孔阵列的作用是把表层地和内层地平面紧密连接起来降低回流阻抗抑制EMI。很多人打地过孔时随手打几个间距毫无规律效果打了折扣。我的经验是在板子边缘、高频区域、接口区域地过孔间距控制在1/20波长以内比较稳妥。如果按2.4GHz算1/20波长大概6mm左右实际按这个量级打孔就够。在嘉立创EDA专业版里打过孔阵列可以用“过孔”功能配合“阵列”操作先确定位置再设置行列间距一次生成一组。打完过孔之后留意一下过孔是否在敷铜区域内如果在禁区之外且与铜皮连接良好就说明这个孔起到了连接作用。注意过孔焊盘和铜皮之间要形成正常的连接方式不要让软件生成“热焊盘”把过孔隔离了。4.4 铺铜顺序与修铜技巧铺铜的顺序也会影响效率和质量。我的习惯分三步布线完成之后先设置好禁止铺铜区再执行大块铺铜最后处理铺铜与走线的连接关系。铺铜之后如果发现有细长的铜皮残片、孤立的铜岛屿一定要手动清掉。这些铜皮相当于悬空的天线会让EMC变差。嘉立创EDA专业版里铺铜之后可以选中铜皮在属性面板查看它的连接状态。如果网络标签没设置正确识别不出地网络铜皮就会变成无网络的杂散铜。这是很多人的高频错误铺完之后一定要检查每一块铜皮的网络属性。修补铜皮时如需切除某个区域的铜可以用“画禁区”或者“分割铜皮”的方式处理比直接删掉重铺更省事。5. 场景化实战不同板子的铺铜和布线取舍布线这件事没有放之四海皆准的唯一解不同电路有不同的侧重点。按照我平时做项目的习惯挑几个典型场景讲一下取舍逻辑。5.1 晶振、485总线与星型接地晶振布线几乎是每个带单片机的板子都会遇到。晶振下方禁铜周围打过孔晶振到MCU的走线尽量短而粗最好包地。包地是指在晶振信号线两侧各走一根地线并打过孔把晶振的信号限制在一个局部区域。有人问包地会不会增加寄生电容会但和EMI收益比完全值得。晶振布线不建议悬空在板边也不建议穿过大电流区域。RS485总线这类工业总线布线重点在于共模抑制和防雷。差分信号走线要紧密耦合远离大电流和开关节点。485总线的接口处布局上要满足“TVS、共模电感、收发器”顺序布线上要保持各自的地回路短而粗。星型接地适合模拟数字混合系统所有地线像星星一样汇聚到主电源地一点避免数字地和模拟地之间形成多个环路产生地噪声。5.2 FPGA、DDR与高速接口布线统筹FPGA板子往往是布线复杂度最高的板子之一。FPGA布局布线的思路和MCU不太一样FPGA引脚多、Bank多、接口类型多布局时一定要优先把DDR、高速收发器、ADC/DAC这些关键器件的区域划分清楚再考虑其他外围。DDR部分尽量放在靠近FPGA的同一侧地址线、数据线分组走线组间再走等长。VGA接口虽然不算高速但RGB三根信号和行场同步信号还是建议做等长处理误差控制在100mil以内可以显著减少显示雪花和拖影。VGA接口的布局要注意模拟地和数字地的分割地线要短粗避免把数字噪声带到模拟视频输出上。其实很多画FPGA板子的人容易忽视一个问题布局布线本质上是一体的布局定了布线的上限也就定了。你在布局阶段没有给等长组留出绕线的空间后面布线时再牛的操作也施展不开。5.3 电机驱动与功率板的铺铜边界电机驱动板是铺铜和EMC矛盾最突出的场景。功率管开关瞬间的dV/dt和dI/dt极大如果功率回路铺铜面积太大、环路面积太大EMC会非常难看。很多人觉得“大电流嘛铺铜越多越好”其实并不完全正确关键是怎么铺、铺在哪里。我的做法是先把大电流环路母线电容到功率管再到电机的路径画出来在这个环路的正下方保留连续的地平面或母线平面环路面积尽量缩小。功率地对控制地要用单点连接不要大面积粘连否则功率管的开关噪声会串进控制电路。同时功率管的散热焊盘下方可以适量打热过孔但不要让这些过孔把整个地平面割碎。电机驱动板的铺铜核心不是“多”而是“回路小而完整”。另外值得一提的是电机驱动板上的采样电阻、自举电容、栅极驱动电阻这些元件的摆放位置对比布线的成败影响巨大。布局阶段把驱动芯片放在功率管附近、采样电阻靠近低端功率管才能在布线时做到“短而粗”。等你已经把元件摆得满天飞再想铺铜补救是不现实的。一个最容易被忽略的布线习惯最后再说一个我从一开始就在强调、但每次都会被忽略的事情保存规则和复用规则。在嘉立创EDA专业版里你辛辛苦苦设置的差分规则、等长组、铺铜禁区都是可以导出成规则文件或者保存为模板的。下一次做类似板子时直接导入规则能省掉大量重复劳动。我在实际项目里会把常用的几套规则存成模板USB差分模板、DDR等长模板、RS485接口模板、电机驱动功率板模板。每次新建PCB先导入对应模板再开始布局布线。这样一来项目的起步阶段就会非常顺滑规则一致性好DRC报错也少。做PCB这行时间长了就会明白真正体现水平的不是哪一根线拉得多漂亮而是整块板的系统性思考——信号怎么走、回流怎么走、噪声怎么挡、地怎么切。嘉立创EDA专业版把很多工具都做得很便捷但有便捷不等于不用动脑。规则设置上花的时间永远是性价比最高的时间。