
前阵子帮一位刚入行的硬件工程师复审板卡打开工程跑完DRC界面上一大片红色错误。我问他规则怎么设的他说“没动过PADS默认就是这样。”再往下看他布的差分对两根线忽宽忽窄、间距一段大一段小说是“大概对齐就行”。这个问题不止他一个人有很多新手画板都把精力放在怎么拉线上面规则从来都是默认值直到发板前被DRC报告打脸。PADS Layout的设计规则本质上就是你和软件、板厂之间的一份“约定书”哪个地方能离多近、走线最细能到多少、过孔用什么尺寸、差分对怎么保持耦合。规则设好了布线的过程会很顺手规则没设后面全是返工。这篇文章我按实际工作中的逻辑来写先讲规则入口和层级再逐项拆默认规则接着是差分对的完整设置流程最后集中列几个我踩过的规则类坑。适合刚开始用PADS、以及画过几块板但规则始终理不顺的工程师参考。1. 规则入口别靠找先建立“三层两入口”全局观1.1 两个入口菜单和右键指向同一套规则在PADS Layout里打开设计规则最常用的入口是菜单栏 Tools工具 Rules规则弹出 Design Rules 窗口。这个窗口左边是一棵规则树从上到下依次是 Default默认、Class类、Net网络、Conditional Rules条件规则、Differential Pairs差分对。这几个分支看起来多实际使用频率差异巨大日常翻得最多的是 Default 和 Differential PairsClass/Net 在板子规模大了以后才用得起来条件规则大多数情况下可以放着不动。另一个入口藏在布线过程中在布线状态下右键单击弹出快捷菜单选择“Rules”也能打开同一个 Design Rules 窗口。布线布到一半发现某根线一直被报错可以直接调出来检查不用退出布线命令。要记住它和菜单入口是完全同一套数据左边规则树上改完所有层、所有网络会立刻生效没有额外的“保存规则”步骤。1.2 Default/Class/Net三层的优先级谁更具体谁说了算设计规则里最容易让新手懵圈的是“我改了 Class 规则为什么板子上的间距还是原来的”因为设计规则不是单选而是按优先级层层覆盖的。PADS的规则优先级从低到高是Default Class Net。也就是说如果一个网络被单独设了 Net 级规则Class 和 Default 怎么改都影响不到它如果没有 Net 级规则就落到 Class 级如果该 Class 也没设才使用 Default。用一个生活类比Default 是全公司通用的考勤制度Class 是部门的补充细则Net 是老板给某个员工单独批的特殊工时。制度层层往下套具体到人时以那个人的特殊批文为准批文没有的情况下才回头看部门细则最后才回到全公司制度。布线时如果你想查“这条线到底被哪条规则管着”选中网络后打开属性对话框里面可以看到当前生效的规则值。我建议新手一开始别急着建太多 Class/Net 规则先把 Default 搞清楚等板子复杂了再按功能模块分 Class否则规则一旦互相覆盖排查起来非常痛苦。1.3 条件规则可以知道但初期别乱动条件规则Conditional Rules比较特殊它允许你在“特定对象之间”定义一条独立的间距规则覆盖面比 Net 小却比 Net 更精准。典型用途是 BGA 扇出区焊盘间距已经被封装固定普通信号间距可以设大一点但 BGA 内部相邻焊盘需要允许更小间距。这类要求用 Class/Net 都无法干净解决条件规则就能单独指定“Pad to Pad 在某种情况下可以缩小到 X”。但新手阶段不建议碰太多。条件规则一旦设错作用范围不容易一眼看出来DRC 报错后排查非常费时间。我见过不少规则崩溃现场都是条件规则和 Default 同时命中一条线段又看不出冲突原因。如果你不需要处理 BGA 这类“局部极致间距”场景暂时忽略它就行。重点是要知道有这个功能等真遇到连接器密集区域时能想到再回来查阅这就足够了。2. 默认规则逐项拆解间距、线宽、过孔这样定下来2.1 Clearance间距表每一格都有实际含义在 Design Rules 窗口点 Default然后选择 Clearance打开 Clearance Rules 表格。这张表是所有设计规则里最重要的一张表。表头是各种对象组合Trace to Trace走线到走线、Trace to Pad走线到焊盘、Trace to Via走线到过孔、Via to Pad过孔到焊盘、Via to Via过孔到过孔、Pad to Pad焊盘到焊盘以及各对象到 Copper铜皮的距离。每一格填的数字都代表两种对象之间的最小距离单位通常用 mil 或 mm。为什么这张表要每个格子单独设因为不同对象在制造工序里面临的风险不一样。过孔到走线钻孔有偏差就可能破盘焊盘到焊盘波峰焊时容易桥连铜皮到走线腐蚀时容易出现残铜。一张比较通用的低风险默认值大致如下单位是 mil对象组合常规信号板典型值说明Trace to Trace6-8取决于板厂工艺能力和信号串扰要求Trace to Pad6-8和走线到走线保持一致即可Trace to Via6-8略大更稳钻孔偏位时不容易吃掉间距Via to Pad6-8同上Via to Via8-10过孔之间建议多留避免钻孔时孔壁损伤Pad to Pad6-8SMT焊盘尤其要关注桥连风险Trace to Copper8-10覆铜区对走线距离太近铜皮容易“渗”到走线边缘Copper to Copper10-15动态铜区域边缘与边缘不要贴太近Board Outline to All15-30板边到所有对象V-Cut 或铣边会吃掉板边这套数值不是死标准要在“工艺能力”与“布线密度”之间取平衡。普通情况下 6mil 对常规板厂是临界值4mil 基本要额外加钱8mil 以上更稳妥。新手如果拿不准先按 6mil 全表填后面根据实际布线密度再放大。另外Board Outline to All 这一项经常被忽略很多人把走线拉到板边或者过孔打在板边DRC 里报出一堆板框相关错误就是这个值没预先设好。Clearance 表里还有一个“Same Net”选项需要单独说。勾选 Same Net 后表头会切换为同一网络内不同对象之间的间距。比如你铺了一大片地铜铜皮和地网络的过孔是同一网络它们之间就不需要留普通间距甚至可以理解为“合并”在一起。这块设置不正确会出现铺铜被分割成一块一块的现象。很多新手铺完地铜发现铜皮中间很多细缝往往就是 Same Net 间距没有设对。2.2 线宽规则最小/推荐/最大三段值怎么把握在 Default 的 Routing 选项卡里Width 栏有三个输入框Minimum、Recommended、Maximum分别是最小线宽、推荐线宽、最大线宽。为什么这么分核心是为了约束“随手改线宽”的行为。比如信号线推荐设 6mil但某根线需要加粗到 8mil或者电源线想从 15mil 拉宽到 30mil都必须在设计规则允许范围内。把最大值设成你能接受的线宽上限布线时你想加粗随时加但不会被不小心点到 30mil 而不自知。实际项目中我一般这样配信号层普通网络Minimum 6 / Recommended 6 / Maximum 20电源和地网络单独设 ClassMinimum 10 / Recommended 15 / Maximum 40。同一网络的走线宽度尽量保持一致避免阻抗跳变这也是“推荐”值存在的最大意义。注意这个最大值并不是越大越好差分对就禁用太宽的线因为线宽一变差分阻抗就偏了。另外在布线时如果在“推荐宽度”和“最小宽度”之间频繁切换最后板子的质量基本靠运气不如从一开始就把推荐值定好锁定不动。2.3 过孔与走线拐角默认值不代表工艺极限过孔尺寸的设置位置在 Tools Pad Stacks工具 焊盘栈在这里定义一个内径 12mil、外径 24mil 的通孔或者 0.3mm/0.6mm取决于你习惯用英制还是公制。定义好之后回到 Default 的 Routing 选项卡在 Vias 栏里勾选允许使用的过孔类型。新手经常犯的错是在 Pad Stacks 里建了几个过孔但 Rule 里的 Vias 没勾上结果走线时自动打过孔总是不出现候选或者布的线转弯后软件不让放孔。走线拐角默认用 45°高级一点的做法是“45° 圆弧”在 Routing 选项里可以设置走线拐角的模式推荐使用 45 度圆弧拐角尤其对高速信号锐利的 90° 角会带来阻抗突变和 EMI 辐射。这个设置虽然看似小但决定了整块板的布线风格。别用 90° 和任意角度除非你在处理射频领域的特殊情况。很多人问“走线拐角到底有没有规定”答案是低速板也许无所谓高速板一定要避免直角45° 是底线圆弧更优。3. 差分对完整链路建对、设规则、布线、等长3.1 为什么要单设一套差分规则差分对Differential Pair在 USB、HDMI、以太网、LVDS 这些接口里非常常见。电气上它靠两根信号线的电压差来判断状态追求的是两根线的“等长、等距、伴行”。两根线距离固定才能保证全段差分阻抗稳定两根线长度接近才能保证接收端看到的电压差值不漂移。PADS 把差分对单列成一个规则分支就是因为普通“杂乱走线”的自由度不适合差分对。差分对规则里主要设两个数线宽Width和线间距Gap。这两个数共同决定差分阻抗。常见的 100 欧姆差分对在常规 1.6mm FR4 四层板、内层参考的情况下经验值大约是线宽 4-5mil、间距 7-8mil90 欧姆则在更细或更宽的组合上微调。注意这是经验值不是精确计算值严格来说要根据叠层、介电常数、铜厚用阻抗工具计算或者直接让板厂帮你算。3.2 创建差分对和初次参数设定在 PADS Layout 中创建差分对的位置在 Setup 菜单下找到 Differential Pairs或者利用规则窗口里的 Differential Pairs 分支进入。操作逻辑是左边列出所有网络把成对的 P 端和 N 端比如 USB_D_P 和 USB_D_N选中加入同一个差分对。为了让配对清晰原理图网络命名从一开始就保持统一后缀_P/_N 或者 _DP/_DM这样在 Layout 中筛选网络时一眼就能成对。加入后在差分对属性里设置线宽和间距。这里有一个容易出问题的点差分对设置里的“间距”指的是两根差分线之间的距离而不是对其他信号线的距离。对内间距偏小没问题但对外的间距仍然受全局 Clearance 约束。如果默认规则里 Trace to Trace 设的是 6mil差分对内间距也是 6mil那没问题如果差分对内间距要 8mil默认规则却是 6mil你会发现布线时两条线根本拉不到 8mil软件在 6mil 就拦截了。最省事的做法把 Class 或 Net 级规则里与差分对相关的间距都设置成不小于 Gap 值。提示差分对内部的 P 到 N 间距由 Gap 控制对外间距由 Clearance 控制。设置时一定要记住这两条约束是同时存在的。3.3 差分对布线手法与等长Tune差分对布线和普通走线操作不一样。在 PADS 里选择差分对布线命令Route Differential Pairs或工具栏中的差分对布线图标后布一条线时另一条线会跟着一起动保持设定好的 Gap。布线时鼠标点击确定拐点两条线会同步转向。刚上手时可能会觉得“另一条线怎么不听话”实际是软件自动计算了伴行路径只要你的拐角度数在软件约束范围内它会尽量保持两条线等距。布线完成后还需要检查两条线的长度差。在差分对属性窗口或者选中线段后的信息面板中可以看到 P 和 N 端各自的走线长度以及长度差。如果没达到要求用 Tune调整器功能做蛇形绕线。操作步骤是选中走线较短的那根线段启动 Tune 图标设置目标长度Target Length和绕线振幅Amplitude然后拖动鼠标在需要补偿的位置拉出蛇形。蛇形绕线的振幅一般在差分间距的 2-3 倍以上绕线本身也尽量不要跨越过孔区域保持信号回流路径完整。长度差控制在多少内算合格低速接口宽一点没问题高速接口常见要求是 5mil 以内有的甚至要求 1-2mil。这个只是“等长”目标真正落实还要看接收端驱动能力和协议标准量产设计应该在原理图阶段就拿到明确要求。我一般先让差分对等长到正负 5mil再去跑仿真或对照芯片手册确认是否满足。另外提醒一句差分对最好走在完整参考平面上如果参考平面下方被分割出一道沟即使等长和间距都对信号完整性也会劣化。这种问题靠 DRC 查不出来只能靠看板层设计来规避。4. 新手最容易踩的四个规则坑从现象到根因4.1 坑一改了Class规则但板子不生效现象在 Class 里对某个功能模块设置了 8mil 间距但 DRC 依然在报 6mil 违规。查了半天才发现这个模块里有一根网络在 Net 级别被单独设过规则而 Net 级的优先级高过 Class 级。遇到“改了没生效”第一反应不是怀疑软件而是逐个检查这个网络有没有更高级别的规则覆盖。选中网络查看属性是最快的查法属性里会列出当前生效的规则值以及它来自哪一层规则。我见过好几个工程师在这个问题上耗掉一整天最后发现只是 Class 和 Net 重名设置了 Class 却忘了 Net 里也有一条旧规则残留。4.2 坑二差分对内部间距和全局Clearance打架现象差分对 Gap 设成 8mil但布线时两条线怎么也拉不开间距始终被强制在 6milDRC 还报错。原因就是全局 Clearance 的 Trace to Trace 目前是 6mil它同样适用于差分对内部的两条线。虽然 Differential Pairs 里设了 8mil 的 Gap但软件会同时检查“全局间距约束”和“差分对间距约束”两边必须都满足。解决办法有两种一是把全局 Clearance 里的 Trace to Trace 改成 8mil但这会影响所有网络二是通过条件规则把差分对所属网络与自身之间的间距单独放宽。多数情况下方案二更精准但操作也更复杂。如果项目里差分对不多简单粗暴的做法是把全局间距改成差分对所需的最大间距然后检查其他网络是否因此无法满足布线密度这是新手最不容易出错的路线。4.3 坑三动态覆铜被“饿死”整板地铜出现细长缺口现象铺了一大片地铜本来以为会把整层填满实际铺完后铜皮边缘离走线有一大段距离甚至出现了很多孤岛。这通常和 Clearance 表里 Trace to Copper 和 Copper to Copper 间距太大以及 Same Net 选项没有处理好有关。地铜和地网络的走线、过孔属于同一网络如果 Same Net 间距也设得很大铜皮就会自动离同网络对象很远像“避开自己人”于是留下缝隙。正确的做法是给同网络对象之间的间距设一个较小值比如 0mil 到 1mil让铜皮能贴近同网络对象对外部网络的间距按正常规则保留。这样铺出来的地铜完整又安全。还有一个容易忽略的细节动态铜在规则修改后可能需要右键“重新灌铜”有时没刷新看起来还是老样子容易被误判为规则无效。4.4 坑四在线DRC没开所有违规攒到最后一刻爆发现象整块板画完很顺利一跑批量 DRC报出几百个间距和线宽错误而且很多是布线过程中早就发生、却始终没提示的。原因大概率是 Online DRC 没打开或者软件版本默认关闭又或者出于流畅性考量被临时关掉后忘了打开。PADS 里设置在线 DRC 在 Tools Options 的 DRC 选项卡勾选 Online DRC一般同时把相关实时检查选项也打开。布线过程中出现错误软件会立刻高亮或者阻止操作成本远低于最后统一清理。有人觉得在线 DRC 会让软件变卡尤其板子复杂后拖动大铜皮会掉帧于是干脆关了。但对新手来说流畅不是目的正确才是。等熟练了再根据项目需求决定要不要临时关闭至少布线前花 30 秒确认这个开关的状态能省掉最后清错误的半天时间。5. 交付前必做的DRC检查常见错误与处理套路5.1 在线DRC和批量DRC怎么配合在线 DRC 解决的是“当前正在布线的这一段是否符合规则”批量 DRC 解决的是“整板还有没有没清干净的违规”。两者互相补充。批量 DRC 的位置在 Tools Verify Design校验设计选择想要检查的类别Clearance、Width、Drill、Solder Mask 等。跑完后会列出所有错误双击错误条目可以自动跳转到板上的相应位置并显示具体类型和涉及的对象。我建议的节奏是布线过程中在线 DRC 全程开着每完成一个小模块就随手按一次批量 DRC整个板子布完先批量跑一次 Clearance 和 Width集中修完再跑 Drill 和 Solder Mask 相关项。不要等所有网络布完再一次性修因为违规往往有连带效应一处间距不够可能会挤到旁边信号线修起来像拆弹一样越到后面越难改。5.2 常见错误类型、含义与处理套路批量 DRC 结果里经常出现下面几类错误我整理了一个参考表错误类型常见位置处理思路Clearance间距差分对附近、BGA扇出区、过孔密集区先分清是规则设置本身太紧还是走线确实挤。设置太紧就放宽规则走线太挤就调整布线Width线宽从宽线转入窄线的渐变处、换层过孔旁边确认是否需要保持等宽如确实是宽度变化点可以在走线属性里锁宽Via to Via打过孔时没留够距离拖动过孔观察状态栏提示调整孔位Copper Pour动态铜边缘附近检查 Same Net 设置然后重新灌铜Drill钻孔位置打架检查焊盘和过孔阵列坐标必要时批量调整如果错误列表里出现无法理解的内容最有效的办法是双击跳转后把出问题的对象单独选中看属性比猜错误码可靠。很多人在这一步开始怀疑软件出了 Bug实际上绝大多数情况是规则没有约束到位或者某个对象带有隐藏的独立属性。记住DRC 报告不是用来“消灭”的而是用来理解设计短板在哪里的。一次干净的报告说明你对设计边界的控制是清晰的。提示批量 DRC 跑完之后建议把错误列表导出留档。发板前和回板后对照这份报告做检查能快速定位很多生产环节的问题这也是我自己的习惯。最后分享两件和我个人工作习惯有关的小事。第一我电脑里长期存着几套规则模板一套 6mil/普通工艺的标准数字板一套 4mil/BGA 高密板还有一套带常用差分对参数的接口板模板。新项目开始时通过文件导入功能把对应模板的规则带进来再根据板厂实际能力微调几个数比我每次重新填表快得多。第二规则设置本身就是一种设计文档你在哪里放宽、为什么放宽建议在项目文档里写清楚。过几个月自己回来看或者同事接手时会感谢你留下的这些信息。画板的整个过程里规则设对了后面一路顺畅规则一团糟每修一次都是煎熬。希望这篇能把你在 PADS Layout 设计规则上的入门时间缩短一大截。