首页 / 资讯中心 / 文章详情

PCB设计收尾:DRC检查与丝印位号优化实战

PCB设计收尾:DRC检查与丝印位号优化实战 ★ FEATURED ARTICLE
上周收一块六层板的尾对面发来的文件里跑一遍 DRC检查 直接蹦出 400 多条报错其中一半是 丝印 压焊盘、另一半是位号字高不达标。功能明明都通了性能也过了结果贴片厂一条“丝印压到焊盘上AOI 判不过”的消息发过来整批板子卡在产线上等改。这种事我干过不止一次后来就养成了习惯布线收尾阶段先收拾丝印再跑 DRC两个来回交叉着做比一条道跑到黑快得多。这篇东西写给我自己复盘也写给刚上手画板的朋友。它不讲软件操作手册里能查到的东西讲的是 DRC 报错怎么分类、哪些能忽略哪些必须改、丝印用多大的字高才不会被板厂挑刺、位号怎么批量摆才不返工还有丝印被误删之后怎么救回来。不管你是刚画第一块两层板的新手还是画了几年一直在小公司自己扛全流程的老手这些内容都能直接拿去用。我会把参数选择的计算过程、报错代码的含义、批量操作的思路都摊开说尽量让你看完就能照着做。1. DRC检查到底在查什么报错代码怎么读很多人对 DRC 的理解停留在“跑一遍报红的地方改掉就完事”。真做起来会发现同样一条报错有的必须改有的可以带着走有的改法还会引入新问题。要把这件事做顺得先明白 DRC 分几类、每类在管什么。1.1 DRC的三类规则与各自管辖范围从约束的角度切DRC 大致分三块间距类、连接与电气类、制造与装配类。间距类管的是“两个不该碰的东西有没有离得太近”包括线到线、线到焊盘、焊盘到焊盘、铜皮到铜皮、过孔到走线、走线到板边等等。这一类规则的数值来源是板厂的工艺能力加你的设计余量比如常规 1oz 铜厚、无特殊要求的板子外层线宽线距一般按 6mil/6mil 走密度高的板子才会压到 4mil/4mil但每压一档成本都会往上跳能不加钱就不加钱。连接与电气类管的是“该连的连没连、该等的等不等长”比如开路Unrouted、短路、差分对内的间距和等长、总走线长度、阻抗控制。这一类的报错往往跟功能直接挂钩属于不能糊弄的那一批。制造与装配类是收尾阶段最容易被忽视的一块也是丝印问题的高发区。它包含丝印到阻焊开窗的间距、丝印到焊盘的间距、丝印线宽线距、器件本体之间的装配干涉、Mark 点周围禁止布器件等等。说白了这一类的规则不是给电气性能看的是给产线和维修看的。提示如果你的约束文件里只套了默认的 spacing 规则制造类的规则通常是一整块空白跑出来的 DRC 数量会“看着很干净”但板子到了产线照样被打回来。收尾前一定要确认制造类规则是否启用。1.2 报错后缀的读法L-L、L-P、S-S、P-P新手最懵的就是那一串字母。其实规则很简单前后两个字母各代表一个对象类型就能拼出报错的含义报错形式含义常见成因L-L线与线间距不足走线太密、绕线贴太近L-P线与焊盘引脚间距不足走线贴着焊盘走、焊盘外扩过大P-P焊盘与焊盘间距不足封装本身间距不够、器件摆太近S-S铜皮与铜皮间距不足两块独立网络的铜皮靠太近L-S走线与铜皮间距不足铺铜避让值设太小V-V过孔与过孔间距不足打孔太密影响钻孔和铜厚丝印相关通常以 Silk 或 Solder Mask 开头位号压焊盘、丝印压开窗我一般会把整个 DRC 列表按规则名排序同一条规则下的报错集中处理。比如 L-P 有 80 条先看看是不是同一个器件或者同一条走线造成的很多时候改一根线的走向或者把一个焊盘的阻焊扩展值调回来就能消掉几十条。1.3 “零 DRC”是个伪命题学会管理可接受的报错干久了会发现追求零 DRC 有时候是在自欺欺人。不是因为不该改而是因为你会为了凑那个数字去删掉本来该有的东西比如把测试点挪走、把必要的丝印极性标识删掉反而把板子做坏了。我的做法是分三档处理必须清零的短路、开路、间距小于板厂最小能力、丝印压焊盘可以带着走的某些器件的装配类报错、非功能区域的轻微间距告警以及明确记录在案、跟后续沟通时说明的比如某个区域因为结构限高必须把器件贴得很近会触发 P-P但这种干涉在装配上是可以接受的。带着走的报错要在文件里留个说明比如在板边加一小段丝印注释或者在设计说明文档里记一笔。不然过两个月你自己都不记得为什么这里有个红点。顺带说一句DRC 查不出来但同样致命的东西不少回流路径被分割、高速信号跨分割平面、地平面开槽导致的阻抗突变、3W 原则没遵守导致的串扰。这些得靠人看叠层和走线拓扑别指望 DRC 帮你兜底。2. 丝印到底给谁看先把原则定下来再动手丝印调整最怕的不是工作量而是没有统一标准。一块板上位号有大有小、有横有竖、有的贴焊盘有的飘在半空改起来就是无穷无尽的返工。所以动手之前先想清楚丝印是给谁用的。2.1 三类读者决定丝印的取舍优先级第一类是贴片厂和 AOI。他们关心的是位号能不能被机器识别、极性标识清不清晰、丝印有没有压到焊盘上造成误判。这一类的需求是硬指标AI 检测对丝印压焊盘、丝印模糊是非常敏感的压了就是不良。第二类是调试和维修人员。他们关心的是拿着板子能不能快速找到某个元件位号别被旁边的高器件挡住极性方向一眼能看出来。这一类的需求决定了位号该摆在器件的哪一侧。第三类是最终用户或者装配环节。有些板子装进壳子里之后还会露出部分丝印这时候板名、版本号、接口标注就有意义了。优先级很明确极性标识 位号 板名版本等装饰性内容。板子密到摆不下的时候先删装饰性的再考虑删小阻容的位号极性标识和关键器件位号死也不能删。2.2 字高、线宽、间距的参数基线怎么定这一块是新手最容易拍脑袋的地方。我按常规情况给一组基线你照着改基本不会被板厂挑位号字高0.8mm 到 1.0mm线宽 0.12mm 到 0.15mm这是最稳的组合。高密度板字高降到 0.6mm线宽 0.1mm这是下限再小就会糊字。丝印到焊盘/阻焊开窗的间距≥0.15mm紧一点也不能低于 0.1mm。丝印到板边≥0.2mm如果是 V-Cut 或者铣槽位置最好留到 0.5mm 以上。丝印与丝印之间≥0.15mm否则两道油墨会连在一起。这组数字不是我编的是从“板厂能力 印刷工艺”两头推出来的。丝印是网版印刷油墨通过网孔落到板上然后固化。油墨落下之后会有一定的流动和边缘扩散如果两道丝印的间距小于 0.15mm扩散之后就会连成一块看起来像一坨墨迹。同理丝印紧贴阻焊开窗的时候油墨会往开窗里淌在焊盘边缘形成毛刺既影响焊接又会被 AOI 判成缺陷。至于为什么 0.6mm 字高是下限可以粗略算一下我常用的矢量笔画字体字高 0.8mm 时字符宽度在 0.6mm 左右笔画中心间距大约 0.16mm减去笔画本身的线宽 0.12mm实际间隙只有 0.04mm 上下但只要油墨扩散不超过这个量印出来还是能分清笔画。字高砍到 0.6mm字符宽度约 0.45mm笔画间隙只剩 0.1mm 左右扣掉线宽基本就是贴着稍一扩散就糊。所以 0.6mm 是“能印但不好保证”的分界线不是我拍出来的。注意不同板厂的丝印最小线宽能力不一样有的能到 0.08mm有的只能保证 0.15mm。打样之前直接问一句板厂的最小丝印线宽和最小丝印间距比事后被打回来强。2.3 封装级丝印与板级丝印的分工很多人改丝印改到怀疑人生是因为没分清楚哪一部分该在封装.dra里改哪一部分该在板级改。封装级丝印管的是“这个器件长什么样”外框、一脚标识、极性标识、本体尺寸示意。这些东西应该在做封装的时候就定型全公司或者全项目统一。如果在板级去挨个改你改一百块板要改一万次。板级丝印管的是“这个器件在板上的位置”位号文本、板级标注、接口名称。这些天然就是每块板都不一样的东西。分清之后动作就明确了如果发现所有 0603 电阻的丝印外框都压焊盘那就去改封装库然后批量 Update Symbols一次解决。如果发现只有某一个电阻的位号位置不合理那就在板上单独挪。我见过最典型的返工案例是一个朋友在板级把两百多个电阻的丝印外框一个个往内收收了整整一天改完发出去下一版换了封装库全部白改。这个教训就是封装级的问题必须在封装级解决。3. DRC检查的完整实操流程与参数调整明白了规则分类接下来是动手的部分。我把整个流程按我自己的习惯拆成准备、执行、收敛三个阶段中间穿插几个容易被忽略的细节。3.1 跑DRC之前必须先做的三件事第一件把线布完。未布线的飞线在网络里是开路状态会导致大量的开路 DRC 和间距 DRC混在一起看根本找不到重点。所以先把所有连接布完再看 DRC 列表报错数量会直接掉一半以上。第二件确认在线 DRC 是打开状态。在约束模式的设置里打开在线检查之后你每走一根线、每挪一个器件软件会实时标注违法项很多低级错误在画的当下就被拦住了不用等到收尾。我习惯一开始就开着虽然画的时候稍微卡一点但省下来的返工时间远大于这点等待。第三件确认规则套对了。约束管理器里的规则是分层级的物理规则、间距规则、同网络间距规则、电气规则各一套还有一堆网络类Net Class。最常踩的坑是规则改了但没分配给对应的网络类或者只改了默认值没改实际生效的那一档。改完之后随手挑一根线用显示命令点一下看看它实际套用的规则名是不是你刚改的那条这一步花十秒能省半天。3.2 分批跑与报错收敛的实操手法我的做法是把 DRC 分成三轮跑每轮解决一类问题比一次性面对四百条报错要舒服得多。第一轮只关注连接类也就是开路和短路。这一轮结束后板上应该没有飞线也没有不该连的地方连上了。这一步是基础做不干净后面全是噪声。第二轮关注间距类。把间距报错按规则名归类同一条规则下的报错一起处理。处理的时候有个技巧先看是不是某个区域特别密集导致的如果是优先考虑整体挪一下器件或者调一下铜皮避让值而不是一根线一根线去修。挪一个器件消掉三十条报错比修三十根线快得多。第三轮关注制造与装配类。这一轮就是丝印、阻焊、Mark 点、器件干涉这些。修完这一轮基本就可以出图了。每一轮结束后用报表功能导出一次 DRC 文本按规则排序存下来方便对比。我一般在收尾时留三份报表布线完成时、间距修完时、出图前。三份对比一看就知道这一版改了什么、还剩什么。3.3 高频报错的修法和背后的工艺原因同样是报错改法差别很大。我列几个最常遇到的把原因和修法一起说清楚L-P线到焊盘间距不足。表面看是走线太贴焊盘背后往往是焊盘的阻焊扩展值Solder Mask Expansion设得偏大或者走线为了绕开过孔被迫贴着焊盘走。修法有两个方向一是挪线二是把阻焊扩展值从默认的 0.1mm 调到 0.05mm。调阻焊扩展值这个动作要谨慎调小之后阻焊开窗变小如果板厂对位精度不够阻焊可能会覆盖到焊盘边缘影响焊接。所以我只在确实挪不开的时候才动它而且会同时确认板厂的最小阻焊开窗能力。S-S铜皮到铜皮间距不足。通常是两块独立网络的铺铜靠得太近常见于地铜和电源铜之间。修法是加大避让值或者干脆在两者之间开一条隔离带。注意别把避让值设得太夸张否则小焊盘周围的铜会被吃掉影响散热和载流。V-V过孔间距不足。这个是钻孔工艺的限制。两个孔挨太近钻孔时钻头会在中间形成很薄的壁容易破孔或者孔壁铜厚不足。我一般会保证孔边到孔边至少有 0.3mm 的间距电源过孔阵列密集的地方尤其要注意。如果确实需要密集过孔阵列可以考虑错位排列而不是强行拉大间距。走线到板边距离不足。板边是铣刀走过的位置会有一定的公差和毛刺走线或者铜皮贴太近容易被切到或者露铜。常规我留 0.3mm 以上如果是 V-Cut 位置留得更宽。这一条在拼板的时候尤其重要因为拼板边框会共用切割线。器件装配干涉。这个报错很多人直接忽略但如果板上真有物理上装不下的器件贴片机或者结构装配的时候就会撞。我的处理原则是同一面相邻器件之间留 0.2mm 以上不同面的器件因为板厚的关系一般不会干涉但连接器、大电感、屏蔽罩这些高器件要单独检查。屏蔽罩里面的器件高度必须低于屏蔽罩内高这个得看结构图不能靠 DRC。提示修 DRC 的时候一次只改一类问题并立刻重跑不要一口气改几十处再跑。不然新引入的问题会和老问题混在一起定位难度翻倍。4. 丝印调整的实操细节与批量处理到这一节就是真正的体力活了。丝印调整之所以烦是因为它没有“正确答案”只有“够不够用”。但只要把顺序和工具用对两百个器件的板子一个下午也能收拾干净。4.1 位号摆放的顺序和方向规则顺序上我是从大到小、从固定到自由。先摆位置被结构钉死的连接器、按键、指示灯、大电解电容。这些器件的位号一般摆在器件旁边、远离板边的那一侧避免装配后看不见。再摆大块头主控芯片、电感、变压器、屏蔽罩。芯片位号我习惯摆在器件正上方或者正下方因为它四周通常都是密脚塞不下电感变压器摆在侧面因为本体高位号摆在上面会被挡住视线。最后摆小阻容。这一步没什么讲究就是找一个不压焊盘、不压过孔、不和其他丝印打架的空位塞进去。方向上有两条硬规则整板位号只允许两种朝向水平或者统一的垂直不允许斜排同一排相邻器件的位号尽量对齐视觉上舒服检查起来也快。板子竖着装的时候可以整板旋转 90 度但同一块板上不要混着来混着来的板子看起来就像没收拾过。还有一条经验如果两个器件紧挨着位号可以合并成一个比如“R1/R2”写在一起比硬塞两个位号更清楚。密集区域里同一个功能块的位号可以缩到统一的一侧摆成一列反而比散落各处更好找。4.2 批量统一字高线宽与对齐的操作思路手工一个个改字高是最低效的做法。常规的批量思路分三层第一层用查找过滤只选文本对象框选整板或者整块区域然后统一修改字高和线宽。这一步能把字高从五花八门统一到一个值是最快见效的动作。第二层用对齐命令把同一排的位号拉到同一条基准线上。对齐的时候注意基准的选择比如都以器件中心线为基准或者都以某一排焊盘为基准不要凭感觉。第三层如果项目周期长、版本迭代多值得写一个小的自动化脚本遍历板上所有位号统一设置字高、线宽和所属文本样式Text Block顺便把落在焊盘上的位号挪开。这个思路用 Allegro 的 Skill 就能实现骨架大概长这样; 以下仅为思路骨架API 名称和参数请以你所用版本的官方文档为准 axlCmdRegister(std_refdes stdRefdes) (defun(stdRefdes () (let ((syms (axlDBGetDesign)-symbols)) (foreach(sym syms (let ((txt sym-refdes)) (when txt ; 1. 统一字高与线宽 ; 2. 判断是否与焊盘/阻焊开窗重叠 ; 3. 若重叠则按预设偏移方向挪出 ; 4. 记录处理结果便于人工复核 ) ) ) ) (axlUIWPrint nil 位号标准化完成请人工复核重叠项) )我不建议把“自动挪开”写成完全无人干预的因为脚本不知道哪个位置视觉上更合适。正确用法是让脚本处理 90% 的重复劳动统一字号、标出重叠项剩下 10% 的边界情况人工决定。这样既快又不会出错。注意批量修改之前一定先存一份文件副本。丝印这类东西改错了不容易发现等到出图才发现字全变大了回退成本很高。4.3 电感上的“4R7”是什么本体丝印和PCB丝印别搞混这个话题我在群里被问过很多次。有人拿到一颗电感本体上印着 4R7就在 PCB 丝印上也写了 4R7结果被主管骂了一顿他不明白为什么。这里要区分两个概念。器件本体上的丝印是器件厂家印的标识的是这颗元件的规格参数PCB 上的丝印是你印的标识的是这颗元件在电路里的位置。前者告诉你“这是什么”后者告诉你“装在哪里”。电感本体的编码规则和电阻类似用 R 表示小数点4R7 表示 4.7μHR47 表示 0.47μH。三位数字的编码里前两位是有效数字第三位是倍率单位是微亨比如 100 是 10μH101 是 100μH470 是 47μH。电阻用同样的编码逻辑但单位是欧姆100 是 10Ω103 是 10kΩ4R7 是 4.7Ω。电容常用的是三位码加单位皮法104 是 100nF226 是 22μF。所以 PCB 上电感的位号应该是 L1、L2 这样的原理图位号而不是 4R7。写成 4R7 有两个坏处一是和原理图对不上维修的人看了一头雾水二是同一块板上好几颗同型号电感全写 4R7 就分不清哪个是哪个了。不过有一个场景是可以标注参数的当板子空间充足而且这个参数对现场调试有直接意义的时候可以在位号旁边用小一号的字体补一个参数。比如某些电源板上会在电感旁边标出感值方便调试时判断。但这是补充不是替代位号必须保留。4.4 丝印被误删之后怎么救回来“丝印被删除了”这件事几乎每个画板的人都遇到过。最常见的场景是在删除多余走线的时候查找过滤器里勾选了文本类型然后框选了一大片位号跟着一起被删了。更惨的是当时没发现存盘之后才看到撤销也回不去了。先讲预防。删东西之前只看一眼查找面板勾了什么养成“只勾目标类型”的习惯。框选的时候尽量用临时组的方式精确点选别贪图一次框一大片。这两条做到了能避免九成的事故。再讲补救按代价从低到高第一步别存盘别关文件先去看有没有自动保存或者备份文件。软件里一般都有自动保存的目录设置本地的临时目录和系统自带的文件历史版本也值得翻一翻。这一步能救回来的话代价最小。第二步如果只是位号文本被删了可以重新放置位号。如果位号数量多一个一个补太慢土办法是从装配层找。很多封装在装配层也放了位号可以把装配层的那一份复制过来改到丝印层再核对一遍。第三步如果是封装自带的丝印线条被删了不只是位号连外框都没了可以用更新封装的功能让软件从库里重新调用一遍封装把丝印刷新回来。这个动作有明显副作用它会重置元件的一部分手动修改比如你手动挪过的位号位置、手动加的丝印线。所以执行之前必须备份执行之后要逐项复核。第四步如果整个板子的丝印都没了而且库里的封装丝印也不完整那就只能回到封装文件里去补补完再做一次批量更新。这一步最费时间所以回到前面那句话封装级的东西必须在封装级维护好。补完之后一定要核对。用报表功能导出一份器件清单对比原理图逐项检查位号有没有缺、有没有重、有没有变成别的字符。这一步千万别省我之前见过补完丝印之后两个电阻位号重复贴片厂按错的位号贴整批返修。5. 常见问题与排查技巧实录前面讲的都是主流程这一节专门收拾那些零碎的坑。我把这些年遇到的高频问题整理成一张速查表再补几条用代价换来的经验。5.1 高频问题速查表现象常见原因处理思路DRC 数量降不下去未布线飞线混在里面规则没套到实际网络类先布完线再跑用显示命令确认单根线实际套用的规则改了规则但报错没变化只改了默认值没分配给对应网络类在约束管理器里按工作表逐个网络类确认丝印压焊盘报错一大堆位号字高过大封装外框太贴焊盘统一字高到 0.8mm封装级调整外框内缩丝印导出后看不见光绘层没加入丝印层层极性设置反了检查出图配置的层列表和极性位号被批量误删删除时查找面板勾了文本并大框选从装配层复制或更新封装恢复恢复后逐项核对更新封装后位号全乱更新时勾选了对位号的复位选项更新前备份更新后对比位号清单同一块板上字高不统一不同人不同时期改的没有规范收尾时统一查一遍纳入出图检查清单丝印被器件本体遮挡位号摆在器件正上方贴片后看不见位号改摆到器件侧面优先远离板边的一侧5.2 几条踩坑换来的经验第一条DRC 报错不要按顺序修要按类别修。四百条报错里可能有三百条是同一条规则造成的先归类再动手效率差好几倍。第二条丝印的字高宁小勿大。字大了一是容易压焊盘二是密集区域摆不下改起来全是连锁反应。0.8mm 能解决的不要用 1.0mm。第三条极性标识的优先级永远高于位号。位号是给人看的极性标识是给机器和工艺看的贴反一颗钽电容或者二极管损失远大于找不到一个电阻位号。第四条每次改完必须重新跑一遍 DRC不能凭记忆判断。我见过太多次“我明明改了”结果改的是另一个网络类或者改完之后被铜皮重新铺过覆盖掉了。第五条出图前留一份完整的检查清单把“丝印字高统一、无位号压焊盘、无缺号重号、极性标识齐全、板边丝印距板边足够远”这几项列进去逐项打勾。人在收尾阶段最容易漏掉的就是这种流程性动作。第六条如果板子上有屏蔽罩或者结构件覆盖的区域丝印不需要考虑可见性但必须考虑会不会和结构件干涉。丝印厚度虽然只有几十微米但结构件的公差是毫米级的一般不会冲突真正要确认的是器件高度丝印本身反而不用太担心。最后分享一个我自己一直在用的小习惯收尾阶段把板子打印一份一比一的纸质图拿到手上看一遍。屏幕上缩放来缩放去看不出问题打印出来平铺在桌上位号有没有挤在一起、极性标识是不是清晰、有没有明显的空白区域一眼就能看出来。这招土但比在屏幕前盯两个小时有效得多。
阅读完成 · 觉得有帮助?
咨询建站