ARTICLE DETAIL

资讯详情

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

AD19铺铜间距规则设置:优先级与重铺铜是关键

AD19铺铜间距规则设置:优先级与重铺铜是关键 直接说结论AD19里设置铺铜和其他所有对象的间距核心就一句话——间距规则要放在规则列表最前面并且第一匹配即生效。这个特性决定了你在AD19中配置Clearance规则时规则顺序、对象匹配、优先级这三者的关系比任何其他EDA工具都要敏感稍不留神你就会掉进”规则配了但不生效“的深坑。这篇文章我会把AD19中铺铜与焊盘、走线、过孔、器件本体、其他铺铜的间距规则全部拆开讲一遍再附上一套完整的实操案例和排错方法。主要内容包括Clearance规则体系的结构、各种对象类型间距的配置逻辑、规则优先级与覆盖机制、以及一个从0.3mm调整到2mm的完整电源板案例。适合正在用AD19做PCB设计、被铺铜间距问题困扰或者想系统理解规则引擎的工程师参考。1. 为什么AD19的铺铜间距规则总是不生效先搞懂规则优先级很多人第一次在AD19里设置铺铜与其他对象的间距时会跑到Design - Rules - Electrical - Clearance里新建一条规则把Gap从默认的0.254mm改成0.5mm然后高高兴兴去重铺铜。结果发现铺铜和焊盘之间的距离还是老样子甚至DRC设计规则检查一点反应都没有。这个问题的根源在于AD19规则引擎的**“第一条匹配规则生效”机制**。规则系统从上往下扫描规则列表一旦某条规则同时满足“第一个对象匹配”和“第二个对象匹配”这条规则就立即生效后面的所有规则直接跳过。也就是说无论你把新间距规则配置得多细致只要它前面存在一条适用范围更宽的规则新规则就永远轮不到执行。举个例子假设规则列表里有一条默认的全局间距规则Clearance_1它匹配“所有对象”Gap0.254mm。你在它后面新建了一条Clearance_2专门匹配“铺铜与其他对象”Gap0.5mm。因为Clearance_1排在前面且默认已经匹配了所有对象包括铺铜所以实际生效的还是0.254mmClearance_2完全变成摆设。规则列表的排序决定了执行的优先级排在前面的规则优先级更高。新建规则默认追加在列表末尾如果不手动调整顺序它几乎不可能抢在全局规则前面生效。正确做法在规则管理器中右键规则条目通过Priority设置数字越小优先级越高或者在规则列表里直接拖拽排序让铺铜间距规则排到最前面。这个机制还有一个衍生问题即使你把铺铜间距规则排到了第一位如果它的Where The First object matches和Where The Second object matches条件写得不精确比如同时匹配了“所有对象”那么它与后面的全局规则就产生了重复仍然会按第一条规则执行达不到你区分对象类型的目的。在展开所有具体设置前还必须强调一个AD19的“隐藏特性”修改规则之后必须让铺铜重新灌铜Repour。规则改了铜箔不会自动更新尤其是当你改动的是“铺铜与其他对象的间距”这类涉及铜箔边界重算的规则时不重铺铜等于白改。这一点我会在后面的实操案例里重点演示。1.1 铺铜间距规则的三个关键理解理解AD19铺铜间距要从三个维度去把握第一间距规则属于Clearance规则家族。它在Electrical类别下控制的是两个对象之间的最小电气间隙单位通常用mm或mil。这个规则不仅仅管铺铜也管走线、焊盘、过孔、器件本体之间的间距铺铜只是其中一个对象类型。第二间距规则是按“对象对”来匹配的。一条规则要定义清楚“第一个对象是谁”和“第二个对象是谁”两个条件都命中才会生效。如果第一个对象是铺铜Polygon第二个对象是焊盘Pad那这条规则只管铺铜和焊盘之间的间距管不了走线与走线。第三AD19里铺铜在对象类型中通常被标记为Polygon或Region。在Query查询表达式里InPolygon(*)可以匹配所有铺铜对象但如果你用的是一种特殊形态的填充区域可能还需要同时考虑IsRegion、IsFill等关键字特别是平面层或者嵌入式铜皮场景。这三个理解如果不到位后面无论怎么设置规则都可能出现“设置了但不生效”或“生效了范围不对”的问题。我倾向于把AD19的规则系统理解成一张“从上到下优先级递减的表”第一行能匹配到的就执行后面的规则哪怕匹配条件更精细也来不及参与计算。2. 从焊盘到走线铺铜与其他核心对象的间距规则逐个拆解我见过太多人只设置了一条“铺铜对焊盘”的间距规则然后就以为全板间距都覆盖了。实际上铺铜需要打交道的对象至少有五类焊盘、走线、过孔、器件本体、其他铺铜。每一类在工程上的工艺诉求都不一样规则配置也各有门道。在开始逐条拆解之前有一个很基础但容易忽略的前提PCB的单位设置。AD19默认可能有英制mil或公制mm显示间距规则输入的值会跟随当前单位。如果你习惯了mm但工程文件是mil很可能会出现“设了0.5mm结果实际只有0.5mil”这种数量级错误。建议在规则设置前先把单位切到Metric快捷键CtrlShiftU或菜单View - Toggle Units。2.1 铺铜与焊盘Pad的间距规则焊盘是铺铜间距里最常被检查的一类。默认的全局规则对焊盘是一致的但在实际项目中表贴焊盘和通孔焊盘的工艺间距要求并不一样通孔焊盘在波峰焊时焊料可能沿着孔壁爬升边缘距离铜箔太近容易形成锡桥表贴焊盘则主要靠焊膏熔融间距可以稍微小一些。要分别配置可以在规则里用IsPad关键字匹配焊盘对象再配合PadType区分表贴还是通孔// 第一个对象匹配表贴焊盘 Where the First object matches: (IsPad True) and (PadType SMD) // 第二个对象匹配所有对象 Where the Second object matches: All或者只匹配通孔焊盘Where the First object matches: (IsPad True) and (PadType Thru-Hole)这里特别提醒AD19的PadType字段在Query里区分表贴焊盘用的是SMD通孔焊盘用的是Thru-Hole大小写敏感。一旦写错规则会默认为不匹配但DRC不会报错直觉上你会以为“规则已经生效了”实际上完全没命中。这个坑我在实际项目中踩过排查了大半天才发现是大小写问题。不过更稳妥的做法是不区分表贴和通孔直接设定一个全局合理的铺铜到焊盘间距。毕竟在多数设计规则里把间距设成0.3mm对表贴焊盘已经足够保守对通孔焊盘也基本能接受。如果必须区分建议先单独建两条规则分别匹配PadType再让默认规则兜底。2.2 铺铜与走线Track的间距规则走线和铺铜的间距规则本质上是“防止铜皮边缘与走线之间产生短路或寄生耦合”。低压数字电路里设0.3mm问题不大但稍微有点压差或者高边开关管之类的应用0.3mm就可能扛不住。尤其对于高压区域间距要求会被提升到2mm甚至更大。配置走线间距核心关键字是IsTrackWhere the First object matches: IsTrack Where the Second object matches: InPolygon(*) Constraints: Gap 0.5mm但这里有一个容易被忽略的点AD19的走线类型还区分为普通走线Track和弧线Arc以及差分对走线。大部分IsTrack规则能覆盖普通走线但差分对走线通常由独立的Differential Pair规则管理如果没单独配置差分对间距AD19会在DRC里对差分对使用专门的差分对间距规则而不是你为Track设置的铺铜间距规则。我建议在布高速差分信号时专门为Differential Pair规则单独设定铺铜间距避免规则冲突。2.3 铺铜与过孔Via的间距规则过孔与铺铜的间距在工艺上会直接影响钻孔的良率。AD19中过孔对象可以通过IsVia匹配。如果你希望“铺铜避开过孔外径即铜箔边缘与过孔焊盘边缘保持一定距离”规则条件可以这样写Where the First object matches: IsVia Where the Second object matches: InPolygon(*) Constraints: Gap 0.3mm对于多层板里大量的地过孔阵列散热过孔、缝合过孔可能会导致铺铜被切得很碎。这时很多人会人工去调整局部铜箔但更聪明的办法是定义一个过孔网络类或对象类然后用InNetClass(ViaStitch)做条件单独给它一个更小的间距这样既保证安全又减少规则冲突。2.4 铺铜与器件本体Component Body的间距规则器件本体在AD19中是Component Body类型。这个间距没有太多电气上的硬性要求但机械装配时要避免铜箔和器件外壳、引脚或塑封体之间产生应力问题。默认规则里很多人并没有专门配置但如果你用的是包含金属外壳的连接器、晶振、电源模块建议设置一条铺铜与器件本体的间距规则Where the First object matches: IsComponentBody Where the Second object matches: InPolygon(*) Constraints: Gap 0.3mm有一种常见场景铺铜时不小心把铜皮布到了器件本体的投影区域下方虽然DRC没报错因为本体不是电气对象但在装配时可能导致器件无法贴合板面。设置这条规则后铺铜会自动让位减少后续装配干涉。2.5 铺铜与其他铺铜Polygon的间距规则铺铜与铺铜之间的间距同样由Clearance规则控制。一条铺铜和另一条铺铜如果间距不足就会在视觉上“融合”在一起形成意外的电气连接。设置方式Where the First object matches: InPolygon(*) Where the Second object matches: InPolygon(*) Constraints: Gap 0.3mm这条规则尤其适合多电源分区板数字地铜皮和模拟地铜皮之间如果间距太小隔离带形同虚设。很多信号完整性问题其实不是布线的问题而是两块铺铜之间的间距没控制好导致地平面产生了额外耦合路径。3. 规则设置里的“隐藏开关”Full Query、对象类与优先级调整设置规则时很多人把注意力全放在Gap值上忽略了AD19查询表达式Query的完整写法。在每条规则的Where The First object matches和Where The Second object matches旁边都有一个Full Query按钮点击后可以进入完整的查询编辑器。粗浅地理解Full Query就是允许你写更复杂的表达式而不是只在简单下拉框里选All或InPolygon(*)。比如你想让“除电源网络外的所有走线”与铺铜保持0.4mm而电源网络与铺铜保持0.8mm就得用Query组合// 规则一匹配所有对象排除POWER网络 Where the First object matches: (IsTrack True) and (Not InNet(POWER)) Where the Second object matches: InPolygon(*) // 规则二专门匹配POWER网络与铺铜 Where the First object matches: InNet(POWER) Where the Second object matches: InPolygon(*)这里体现的正是规则优先级规则二必须排在规则一前面否则排除网络的规则先命中电源网络的特殊间距就无法生效。也就是前面说的在AD19里规则顺序就是优先级不是靠“约束条件更特殊”来覆盖而是靠“更早匹配”来胜出。优先级调整的方法很简单在规则管理器中规则列表左侧有一个优先级列通常显示为1、2、3……数字越小优先级越高。你可以选中一条规则右键选择Priority输入新的序号列表会自动重排。此外AD19还允许把常用规则导出为规则模板.rul文件然后在后续项目里Design - Rules - Load Rules批量导入。这个对大量重复性设计特别友好我可以把一套“铺铜间距规则全家桶”保存为模板以后每个新项目只要导入一次规则条件、优先级、Gap值就全部就位省去大量重复设置时间。4. 实操案例一块电源板上铺铜间距从0.3mm调到2mm的完整操作理论讲再多不如直接演示一遍。我用了块学生项目的电源板来演示这次操作板上有一路310V高压母线、一路12V低压输出、MCU控制区、以及大面积的辅助地铜区。整个调整过程会展示如何新建规则、如何处理优先级、如何保证重铺铜后DRC全部通过。4.1 环境准备从Altium Designer 19开始打开AD19载入PCB工程后首先要确认单位。默认可能是mil我习惯切成mm菜单View - Toggle Units或按快捷键CtrlShiftU切换。然后检查DRC设置Design - Rules左侧树形目录里展开Electrical - Clearance这里就是所有间距规则的大本营。注意看规则列表系统默认会有一条Clearance_1全局规则通常规则条件匹配所有对象Gap值0.254mm10mil。这就是你铺铜间距的“默认值”。如果不在它前面新建规则所有间距都会按这个值执行。4.2 新建规则、设置查询条件我们需要在Clearance节点上右键选择New Rule系统会生成一条名为Clearance_2的规则。双击它在右侧配置区域进行设置。第一步是设置规则名称。我把这条规则命名成Clearance_HV_2mm方便一眼识别。接着设置第一个匹配对象在Where The First object matches下拉里选择Custom Query然后点击Query Builder在表达式里写入InPolygon(*)意思是匹配所有铺铜对象。如果只想让这条规则对高压区域的铺铜生效那就得结合网络类Net Class。更推荐的方式是先在Design - Netlist - Net Classes里把高压网络比如310V母线、整流桥输出、开关管漏极定义成一个类例如HV_NetClass然后在这里写InPolygon(*) and (InNetClass(HV_NetClass))不过我们要演示的“铺铜和其他所有对象的间距”就不限定网络了直接匹配所有铺铜。第二步设置第二个匹配对象。为了让这条规则作用于“其他所有对象”我们在Where The Second object matches里选择All或者用Custom Query填入True表示匹配一切。第三步设置Gap值。在Constraints区域把Gap改成2mm。同时注意Minimum和Preferred等参数AD19中Gap是实际生效值其他参数可以保持默认。设置完成后点击Apply规则状态栏会出现一个绿色的勾表示规则被激活。之后右键规则名称选择Priority把这条规则优先级改为1让它排在全局规则前面。4.3 重铺铜与DRC检查规则已经生效但板上已有的铺铜是静态对象必须触发重铺铜。我习惯使用菜单Tools - Polygon Pours - Repour All也可以按快捷键T - G - A。执行后AD19会重新计算所有铜区边界根据当前规则重新生成铜箔。重铺完成后立刻跑一遍DRC菜单Tools - Design Rule Check快捷键T - D - R。DRC结果里你会看到Clearance相关的违规数量。如果所有间距都按2mm生效此时Should be 0个Error。如果你的板子原先的铜箔把走线包得太紧可能会报出大量的间距冲突那就需要手动调整铜区边界或者重新规划过孔和走线位置。4.4 验证间距是否真正生效DRC跑完只是第一步我还会用测量工具抽查。按下快捷键CtrlM启动测量从铺铜边缘到高压走线边缘拉一条尺寸线确认读数确实是2mm。测量时注意把捕捉对象设成“铜箔边缘”否则很容易捕捉到铜箔的中心或末端导致读数偏小。这里有个实操细节在AD19里查看铺铜间距建议先ShiftS进入单层显示模式再测量。因为铺铜边缘在多层叠在一起时视觉上会有偏差单层模式能让你精确点选铜箔边界。我遇到过好几次DRC报0错误但肉眼测量差0.2mm的情况都是因为捕捉到了错误的边缘。5. 绕不开的坑Repour机制、死铜移除和同网络间距忽略配置完规则不代表万事大吉接下来这三个隐藏问题任何一个都能让你的间距规则“看起来生效、实际上没用”。5.1 Repour前先理解“死铜”“死铜”指的是尖端、孤岛状的铜箔它虽然与网络连接但没有任何实际的连接作用反而会带来天线效应或散热问题。AD19在铺铜时默认会做Remove Dead Copper也就是自动删除死铜。但如果你在设计规则里把铺铜间距设得很大比如3mm大片区域的铜箔会被隔离成死铜并自动被删除这时候铜箔的实际覆盖范围会比你预想小很多。所以在设置大间距规则时记得先到铺铜属性对话框中确认Remove Dead Copper这个选项是否符合预期。有些场景下你反而希望保留死铜比如某个区域想做额外的屏蔽那就需要关闭自动移除改为手动处理。这会直接影响DRC的报错数量。5.2 同网络对象之间的间距默认忽略还是强制检查AD19默认忽略相同网络对象之间的间隙检查。也就是说如果两块铜皮都属于GND网络哪怕它们间距为0DRC也不会报错。这其实是合理的因为同一网络的铜皮合并在一起本来就是电气导通。但在某些特殊场景下比如你希望在同一个网络上保留两个物理隔离的铜区防止涡流、降低噪声耦合你就得开启Ignore Same Net不勾选并在规则里单独设置Where the First object matches: InPolygon(*) Where the Second object matches: InPolygon(*)然后确保规则里没有勾选Ignore Same Net。否则DRC不会检测同网络的铜箔间距你设定再大也形同虚设。对于电机驱动板这类对EMC敏感的板子同网络铜箔的隔离有时比异网络间距更重要。5.3 修改规则后铜箔没有重铺的“假失效”这是最容易被忽视的环节。很多工程师改完规则看了一眼板上铜箔还在就认为规则已经生效了。实际上AD19中已存在的铺铜不会实时响应规则变化除非你手动触发重铺。你可以这样验证在修改规则前先给铺铜照张“ARJ”记录修改规则后选中铺铜看它的边界高亮是否变化。如果不变请执行T - G - ARepour All。如果出现Repour后铜箔范围发生异变的区域别慌说明规则确实在起作用了只是把原来不满足要求的铜皮“推”开了。重铺铜时还有个小技巧如果不希望全部铜皮重铺可以选中需要更新的铜箔对象按下T - G - PRepour Selected只更新选中的部分。这在局部微调时比整体重铺快得多也更不容易影响其他区域的铜皮完整性。6. 进阶针对不同网络、局部区域、多规则优先级组合的高级设置前面的内容已经能解决90%的铺铜间距需求但如果你正在做高速板、电源板或者复杂数模混合板以下三个进阶场景值得掌握。6.1 按网络类设置差异化间距不同网络对铺铜间距的要求不同这是最常见的高级需求。除了高压网络需要大间距还有采样信号网络、射频网络、时钟网络等都需要比普通数字网络更远的距离以减少铜皮对信号的耦合。推荐的工程做法是在网络工程里建立多个网络类POWER_HV、ANALOG、DIGITAL、RF等。然后在规则管理器里创建多条Clearance规则每条规则分别用InNetClass()函数匹配对应的网络类。规则的优先级按“特殊网络优先、普通网络垫底”的原则排列。举个例子设置三条规则规则一InPolygon(*) 和 InNetClass(RF)Gap1mm 规则二InPolygon(*) 和 InNetClass(ANALOG)Gap0.5mm 规则三InPolygon(*) 和 AllGap0.3mm优先级从高到低排列这样射频网络间距最大模拟网络次之数字网络最低。这种组合在AD19里很稳定DRC也能准确覆盖。6.2 用Room或区域定义局部铺铜间距如果你希望的是“板上某个矩形区域内的铺铜与其他所有对象保持更大距离”可以用Room区域约束。创建Room菜单Design - Rooms - Place Rectangular Room画出一个区域。然后在规则里通过WithinRoom(Room_1)等关键字来限定。这种方法特别适用于板边、接插件附近或屏蔽罩下方。对于这些局部区域全局规则很难覆盖而Room又能随着器件移动自动跟随比纯粹用坐标范围限定要可靠得多。不过Room的问题在于如果Room被意外删除规则条件会变成无效表达式AD19会提示规则错误。如果你用Room务必在团队协作时注意库文件的同步避免别人打开板子后规则报红却找不到原因。6.3 多条规则优先级组合的复盘方法当你设置了多条铺铜间距规则每一条都以InPolygon(*)开头这时优先级顺序就决定了最终间距的真实值。我复盘规则组合的逻辑很简单把规则列表从头到尾看一遍永远只找第一条“两个对象都命中”的规则那才是实际生效值。举例规则一铺铜 vs 高压网络2mm优先级1 规则二铺铜 vs 模拟网络0.5mm优先级2 规则三铺铜 vs 所有对象0.3mm优先级3如果一个对象同时属于高压网络和模拟网络比如高压母线通过电阻连接到模拟采样网络但这个电阻的封装焊盘本身不带网络归属那么这条规则匹配时会直接命中规则一采用2mm。所以配置规则时一定要关注网络归属的排他性必要时通过Not InNetClass()来排除重叠或者把网络类划分干净。7. 常见错误排查清单间距规则不生效时按顺序检查这几项很多工程师在论坛上求助“为什么我设置了铺铜间距但没效果”问题往往出在几个基础环节。这里整理一份我多年检查规则时的排查顺序。检查项操作方法常见问题规则优先级在Rules面板查看列表排序确保目标规则在该类对象的第一条新规则排在Default规则后面从未生效Query表达式ShiftF高亮所选对象对照规则条件检查命中范围对象类型写错如用IsTrack但不包括IsArc单位一致确认板子使用mm还是mil规则值与预期单位一致在mil单位下输入0.5实际只有0.0127mm重铺铜修改规则后执行T-G-A铜箔仍是旧边界规则未反映到实物几何DRC选项Design - Rules中确认对应Clearance规则是Online/ Batch启用的规则被禁用或只有Batch模式而没有Online模式同网络忽略检查规则是否勾选Ignore Same Net同网络铜皮间距为0却不报错这份清单基本覆盖了我在项目中遇到过的所有“间距规则不生效”的情况。遇到疑难点时不要猜用ShiftF去高亮查询对象看它到底有没有被规则命中这是最直接的判断方式。7.1 ShiftF的妙用快速验证Query是否命中在做规则诊断时ShiftF是最强大的工具之一。在PCB上放一个目标对象上按下ShiftF会弹出Find Similar Objects对话框。这里可以观察对象类型、网络、层等信息并生成一个对应的Query表达式。把这个表达式与规则里的Where The First object matches对照就能快速定位到底有没有命中。我曾经遇到一个案例规则设置的是InPolygon(*)但板上的铺铜对象名是一个Custom Primitive自定义图元并不是标准的Polygon对象。在AD19中只有通过Place - Fill放置的填充区和标准铜皮会被识别为Polygon其他图元可能要用IsRegion或IsTrack匹配。这类问题用ShiftF立刻就能暴露出来。7.2 DRC报告的分析策略当你运行DRC后不要只看错误数量要看Error消息里的具体对象和规则名称。DRC消息会指出“这条错误由哪条规则触发”如果你发现违反的规则是你根本不关心的旧规则说明优先级顺序不对如果违反的规则名称是空白或Invalid说明Query表达式有问题。DRC报告还可以导出成文件通过Tools - Design Rule Check - Generate Report生成.drc文件里面包含每条违规的细节。我习惯在投板前生成一份DRC报告并从中检索Clearance相关错误逐条确认是否和预期一致。这是投板前最稳妥的检查动作。7.3 经验之谈铺铜间距设置宁可保守不可激进作为最后一条经验我想说在条件允许的情况下铺铜间距稍大一点远比稍小一点稳妥。间距大一点主要影响铜皮的覆盖率间距太小则会直接引发制造良率问题和信号完整性隐患。0.3mm是很多工艺默认值但如果你板子面积不紧张我建议表贴区域用0.3-0.4mm高压或特殊信号区域用1-2mm。设置间距时多花五分钟规划规则优先级后面可以省下一整天的DRC排查时间。AD19的规则系统灵活度高代价就是配置逻辑一旦混乱排查难度也成倍上升。希望这篇文章能帮你把铺铜间距规则理清楚下次画板时不用再对着DRC报错发愁。
返回列表