1. 这个报错到底在说什么如果你在用 Altium Designer 18 画板子DRC 检查时突然弹出一条Minimum Solder Mask Sliver Constraint别慌这不是你哪里画错了而是规则在提醒你阻焊开窗之间的那条“细缝”太窄了板厂做不出来。先把概念捋清楚。PCB 上的阻焊层Solder Mask就是我们常说的“绿油”它覆盖在铜箔上只留出需要焊接的焊盘区域。两个相邻焊盘之间阻焊层会形成一条“隔离带”这条隔离带的宽度就是所谓的Solder Mask Sliver。如果这条隔离带太窄比如只有 0.05mm板厂在曝光显影的时候根本做不出来要么直接连在一起导致短路要么做出来良率极低。AD18 默认的Minimum Solder Mask Sliver规则值通常是0.25mm约 10mil这个值对大多数常规板厂来说是安全的。但问题在于很多时候我们画高密度板、芯片引脚间距只有 0.4mm 甚至 0.3mm焊盘之间的阻焊隔离带天然就达不到 0.25mm这时候 DRC 就会疯狂报错。注意这个报错本身不是“错误”而是“约束冲突”。它告诉你当前设计超出了你设定的制造能力范围你需要做的是要么改设计要么改规则要么换板厂。我见过太多新手一看到 DRC 报错就慌直接去规则里把值改成 0然后 DRC 全绿以为万事大吉。结果板子发出去板厂工程审核直接打回来说做不了。所以下面我要讲的三种解法不是让你“消掉报错”而是让你“合理地解决这个问题”。2. 三种快速解法从治标到治本2.1 解法一调整规则阈值匹配你的板厂工艺能力这是最直接、最快的解法但前提是你得知道你选的板厂到底能做到多少。操作路径在 AD18 中打开Design→Rules快捷键 DR在左侧树形菜单找到Manufacturing→Minimum Solder Mask Sliver右键新建一条规则或者直接修改默认规则把Minimum Solder Mask Sliver的值从默认的 0.25mm 改成你板厂能做的值关键问题来了改成多少这取决于你的板厂工艺。我整理了一份常见板厂的阻焊最小间隙能力对照表你可以直接参考板厂类型常规工艺最小阻焊间隙高精度工艺最小阻焊间隙备注普通双面板0.20mm0.15mm大多数嘉立创等常规板厂多层板4-6层0.15mm0.10mm需要确认板厂具体能力HDI板0.10mm0.075mm价格明显上升高端HDI0.075mm0.05mm成本极高一般项目用不到我个人的经验是如果你用的是嘉立创这类常规板厂把值设成 0.15mm 基本不会出问题。但如果你要保险一点设成 0.18mm 更稳妥。设成 0.10mm 的话最好先跟板厂工程确认一下。实操心得不要一次性把值改得太小。我建议你先改成 0.15mm重新跑 DRC看看还有多少报错。如果只剩几个再针对性处理如果还是几百个说明你的设计本身密度太高需要从布局上想办法。这种解法的适用场景你的板子密度确实高焊盘间距小阻焊隔离带天然就窄你已经确认了板厂能做到这个精度你不想大改布局这种解法的风险如果板厂实际做不到你设的值板子会被退回或者良率极低不同板厂能力差异大换板厂时要重新确认2.2 解法二修改焊盘阻焊开窗手动扩大隔离带这个解法是从设计源头解决问题。思路很简单既然两个焊盘之间的阻焊隔离带太窄那我就把焊盘的阻焊开窗缩小一点让隔离带变宽。在 AD18 中每个焊盘都有一个Solder Mask Expansion属性控制阻焊开窗比焊盘大多少。默认情况下这个值通常是 0.05mm2mil也就是说阻焊开窗比焊盘每边大 0.05mm。操作步骤双击报错相关的焊盘打开属性面板找到Solder Mask Expansion选项把值从默认的 0.05mm 改成 0 或者负值比如 -0.05mm重新跑 DRC为什么这样能解决问题举个例子两个焊盘间距 0.4mm每个焊盘阻焊开窗比焊盘大 0.05mm那么两个开窗之间的隔离带宽度 0.4mm - 0.05mm - 0.05mm 0.3mm。如果把阻焊开窗改成 0隔离带就变成 0.4mm直接多了 0.1mm。但这里有个坑阻焊开窗如果比焊盘小焊接时焊盘边缘会被阻焊层覆盖可能导致焊接不良。所以这个值不能随便改一般建议对于常规焊盘保持 0.05mm 开窗不要动对于密集引脚芯片如 QFN、BGA可以改成 0 或者 -0.02mm对于测试点可以改成 0注意修改单个焊盘的阻焊开窗很繁琐如果报错涉及几百个焊盘建议用Find Similar Objects批量选中同类焊盘然后统一修改。更高效的做法修改封装库如果你发现某个封装比如某个芯片的引脚反复报这个错最好的办法是直接改封装库打开PCB Library面板找到对应的封装批量选中所有焊盘统一修改Solder Mask Expansion保存库文件然后Tools→Update From Library更新到 PCB这样一劳永逸下次用这个封装就不会再报错了。2.3 解法三调整布局布线从根上消除窄隔离带前两种解法都是“绕过”问题第三种解法是“正面解决”。如果你的板子空间允许最彻底的办法就是把焊盘挪开一点或者换更小封装的器件。具体思路挪焊盘如果两个焊盘之间的阻焊隔离带太窄把其中一个焊盘往外挪 0.05-0.1mm隔离带就宽了。但要注意挪完之后走线是否还连得上。换封装比如你用的是 0402 电阻焊盘间距太小换成 0603 或者 0805间距自然就大了。改布局把密集的器件分散开不要挤在一起。改走线有时候报错是因为走线穿过焊盘之间导致阻焊层被切割。把走线绕开或者换层走也能解决问题。这种解法的适用场景板子空间充裕不差那零点几毫米报错数量不多只有几个地方你想从根本上提升可制造性这种解法的代价可能需要重新布局工作量大可能影响电气性能比如走线变长对于高密度板可能根本挪不开我个人的建议是先试解法一如果板厂能做就改规则如果板厂做不了再试解法二如果解法二也搞不定才考虑解法三。因为解法三最耗时而且可能引入新的问题。3. 阻焊层间距设置的核心技巧3.1 全局规则 vs 局部规则怎么选AD18 的规则系统支持全局规则和局部规则。对于Minimum Solder Mask Sliver这个规则我建议这样设置全局规则设成板厂的常规能力值比如 0.15mm。这样大部分区域都能通过。局部规则针对特定区域比如 BGA 区域设更小的值比如 0.10mm。但前提是板厂确认能做到。操作路径Design→Rules找到Minimum Solder Mask Sliver右键 →New Rule创建新规则在Where The First Object Matches中选择Custom Query输入查询语句比如WithinRegion(BGA_Area)或者InComponent(U1)设置更小的值这样你就可以对不同区域用不同的规则既保证了常规区域的制造性又不会因为 BGA 区域报错而卡住。3.2 阻焊开窗的全局默认值怎么设在 AD18 中阻焊开窗的默认值是在Preferences里设置的Tools→Preferences快捷键 TP找到PCB Editor→Defaults选择Pad或者Via修改Solder Mask Expansion的值我通常会把默认值设成0.05mm2mil这是大多数板厂的标准值。对于过孔我会设成0.05mm或者0过孔盖油的话就不需要开窗。实操心得过孔的处理很关键。如果你不需要测试过孔建议把过孔阻焊开窗设成 0也就是“盖油”。这样过孔上覆盖阻焊层既防止短路又不会产生额外的阻焊隔离带问题。3.3 如何快速定位所有报错位置DRC 报错之后AD18 会在Messages面板列出所有错误。双击某一条错误视图会自动跳转到对应位置。但如果你有几百条错误一条条看太慢了。高效做法在Messages面板右键 →Clear All先清空重新跑 DRCTools→Design Rule Check在 DRC 对话框中只勾选Manufacturing→Minimum Solder Mask Sliver跑完之后在Messages面板中右键 →Export To Report导出报告用文本编辑器打开报告搜索关键词快速统计报错数量和位置这样你可以先看报错集中在哪些区域然后针对性处理。4. 常见问题与排查技巧实录4.1 为什么我改了规则DRC 还是报错这是最常见的问题。原因通常有三个原因一规则优先级问题。AD18 的规则是有优先级的如果你新建了一条规则但它的优先级低于默认规则那么默认规则会覆盖你的设置。解决办法是在Rules对话框中用Priorities按钮调整规则优先级把你新建的规则调到最高。原因二规则作用域不对。如果你设置了局部规则但查询语句写错了规则就不会生效。比如你想针对某个区域设置规则但区域名称写错了规则就匹配不到任何对象。解决办法是检查查询语句可以用Query Helper来辅助编写。原因三DRC 没有重新跑。改完规则后必须重新跑 DRC 才能看到效果。有时候 AD18 会缓存之前的 DRC 结果建议先Clear All再重新跑。4.2 板厂说我的阻焊隔离带太窄但我 DRC 已经过了怎么回事这种情况说明你的规则值设得比板厂能力还小。比如你把规则设成 0.10mmDRC 过了但板厂只能做 0.15mm那板厂就会打回来。解决办法在发板之前先跟板厂确认他们的最小阻焊间隙能力然后把规则值设成比板厂能力稍大一点的值。比如板厂说能做 0.15mm你就设成 0.18mm留一点余量。4.3 为什么只有部分焊盘报错其他焊盘没事这说明报错的焊盘间距特别小或者阻焊开窗特别大。你可以用Find Similar Objects选中报错的焊盘看看它们的Solder Mask Expansion是不是比别的焊盘大。如果是统一改成标准值。另一种可能是报错焊盘附近的走线或者过孔影响了阻焊层。你可以把走线挪开一点或者把过孔盖油。4.4 常见问题速查表问题现象可能原因解决办法改了规则 DRC 还报错规则优先级不对调整规则优先级改了规则 DRC 还报错规则作用域不对检查查询语句改了规则 DRC 还报错DRC 缓存未清除Clear All 后重新跑板厂说做不了规则值小于板厂能力确认板厂能力后调整只有部分焊盘报错个别焊盘开窗过大批量修改焊盘属性过孔也报错过孔开窗过大过孔盖油开窗设 0BGA 区域大量报错密度太高局部规则 确认板厂能力4.5 几个我踩过的坑坑一把规则值改成 0。这是最蠢的做法DRC 确实不报了但板子根本做不出来。板厂工程审核会直接打回来浪费时间。坑二只改规则不改设计。如果你的板子密度确实太高光改规则是没用的板厂做不了就是做不了。这时候必须从设计上想办法。坑三忘了更新封装库。如果你在 PCB 上改了焊盘属性但没更新封装库下次新建 PCB 用同一个封装问题又会重现。所以改完 PCB 之后记得同步更新库文件。坑四忽略了过孔。很多人只关注焊盘忘了过孔也会产生阻焊隔离带。如果你的过孔没有盖油过孔之间的阻焊隔离带也可能太窄。解决办法就是把过孔盖油。坑五不同板厂能力不一样。你在这家板厂能做 0.10mm换一家可能只能做 0.15mm。所以每次换板厂都要重新确认能力重新调整规则。5. 从根上理解阻焊层设计5.1 阻焊层到底是怎么做出来的阻焊层不是“印”上去的而是“曝光显影”出来的。板厂先在 PCB 上涂一层感光阻焊油墨然后用紫外光通过菲林曝光被光照到的区域发生固化反应没被光照到的区域在显影液中被洗掉露出铜焊盘。这个过程中菲林的精度、曝光的分辨率、显影液的浓度和时间都会影响最终能做出的最小阻焊隔离带宽度。一般来说常规板厂能做到 0.15mm高精度板厂能做到 0.10mm 甚至更小。所以Minimum Solder Mask Sliver这个规则的本质就是在问你的设计能不能被现有的工艺做出来5.2 阻焊隔离带太窄会有什么后果后果分三种情况情况一板厂直接做不出来。两个焊盘的阻焊层连在一起焊接时焊锡会顺着连通的阻焊层流动导致短路。情况二板厂勉强做出来但良率低。阻焊层边缘不整齐有毛刺影响外观和焊接可靠性。情况三板厂做出来了但可靠性差。阻焊层太薄在后续的焊接、清洗、使用过程中容易脱落导致铜箔暴露引发短路或腐蚀。所以这个规则不是为了“卡”你而是为了保护你的板子能顺利做出来并且可靠工作。5.3 高密度板怎么平衡密度和可制造性高密度板比如手机板、模块板的焊盘间距往往很小阻焊隔离带天然就窄。这时候你需要做几个权衡换更高精度的板厂成本上升但能做更小的隔离带。改设计用更小封装的器件或者把焊盘挪开。改阻焊开窗把焊盘开窗缩小让隔离带变宽。接受一定的报错如果只有几个地方报错而且板厂确认能做可以忽略。我个人的经验是对于 0.4mm 间距的 QFN 芯片阻焊隔离带通常只有 0.1-0.15mm这时候必须用高精度板厂或者把阻焊开窗改成 0。对于 0.5mm 间距的芯片常规板厂基本能搞定规则设成 0.15mm 就行。6. 实操案例一个真实项目的排查过程前段时间我做一个 STM32 核心板用到了一颗 0.4mm 间距的 QFN 封装芯片。DRC 跑完之后Minimum Solder Mask Sliver报了 200 多个错误全部集中在 QFN 区域。我的处理过程第一步我先确认了板厂能力。我用的是一家常规板厂工程回复说最小阻焊间隙能做到 0.12mm。第二步我把全局规则从 0.25mm 改成 0.15mm重新跑 DRC。报错从 200 多个降到了 30 多个但还是集中在 QFN 区域。第三步我针对 QFN 区域新建了一条局部规则把值设成 0.12mm。重新跑 DRC报错降到了 5 个。第四步我检查了这 5 个报错发现是 QFN 的四个角上的焊盘因为走线穿过导致阻焊层被切割。我把走线绕开重新跑 DRC全部通过。第五步我把 QFN 封装的焊盘阻焊开窗从 0.05mm 改成 0重新跑 DRC确认没有新的报错。最后发板板厂没有反馈任何问题做出来的板子焊接良率也很好。这个案例的关键点先确认板厂能力再改规则全局规则 局部规则组合使用不要忽略走线对阻焊层的影响改完设计后要重新跑 DRC 确认7. 几个能提升效率的小技巧7.1 用 DRC 报告快速统计报错分布AD18 的 DRC 报告可以导出为 HTML 或者文本格式。我习惯导出为文本然后用记事本打开搜索Minimum Solder Mask Sliver看看报错集中在哪些层、哪些区域。这样你可以快速判断是全局问题还是局部问题。7.2 用 Class 来管理规则如果你有多个密集区域需要不同的规则可以用Net Class或者Component Class来管理。比如把所有 QFN 芯片归到一个 Class 里然后针对这个 Class 设置局部规则。这样比逐个区域设置更方便。7.3 定期更新封装库如果你发现某个封装反复报这个错最好的办法是直接改封装库。改完之后所有用到这个封装的 PCB 都可以通过Update From Library来同步修改。这样一劳永逸不用每次都在 PCB 上改。7.4 发板前做一次“制造性检查”在发板之前除了 DRC我建议再做一次制造性检查。AD18 有一个Manufacturing菜单里面有Design Rule Check和Layer Stack Manager等工具。你可以用这些工具检查线宽、线距、阻焊、字符等是否符合板厂要求。实操心得我习惯在发板前把 DRC 报告导出然后逐条检查。特别是Minimum Solder Mask Sliver、Minimum Clearance、Minimum Track Width这几项一定要确认没有问题再发板。8. 关于 AD18 的一些补充说明AD18 虽然是比较老的版本但至今仍有大量用户在使用。它的 DRC 引擎和规则系统跟新版本AD20、AD21、AD22基本一致所以这篇文章的内容同样适用于新版本。如果你用的是 AD18 的中文汉化版可能会遇到汉化不完全的问题导致某些菜单项显示英文或者乱码。这不影响功能但可能会让你找不到某些选项。我的建议是如果英文还行尽量用英文原版避免汉化带来的困惑。另外AD18 在 Win11 上运行基本没问题但偶尔会有兼容性提示。如果遇到闪退或者卡顿可以尝试以兼容模式运行或者更新显卡驱动。关于 DDR 地址线等长设置这跟阻焊层规则没有直接关系但如果你在做高速板等长和阻焊都是需要关注的重点。等长设置主要在Interactive Length Tuning里做阻焊规则在Design Rules里做两者互不影响。最后如果你在画 PCB 时遇到Partial Route Conflicts这类报错那通常是布线冲突跟阻焊层无关。解决办法是检查冲突的网络重新布线或者调整规则。阻焊层设计看起来是个小问题但它直接关系到板子能不能做出来、能不能可靠工作。我见过太多项目因为阻焊问题被板厂打回来耽误工期。所以花点时间把Minimum Solder Mask Sliver这个规则搞清楚绝对值得。
