ARTICLE DETAIL

资讯详情

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

Cadence 17.4 Allegro PCB光绘Gerber输出顺序与避坑

Cadence 17.4 Allegro PCB光绘Gerber输出顺序与避坑 做硬件这行十来年Cadence 17.4 的 Allegro 我从它刚发布那会儿一直用到现在出 Gerber 这一步说实话是整条设计链里看着最没技术含量的活儿——点几下鼠标等进度条跑完压缩包一扔发给板厂完事。可真等板厂回你一句你这层对不上重新发你就得从头翻一遍因为 Gerber 是黑盒中间任何一步做错最后呈现的就是一块废板。我见过太多人卡在这里不是参数填错就是顺序搞反要不就是漏了一整层底片。所以这篇专门聊 Cadence17.4 Allegro PCB 制板gerber / 光绘文件输出的顺序及注意点把整套流程从收尾检查到打包交付完整走一遍顺便把这些年踩过的坑一起倒出来。不管你是刚上手 Allegro 的在校生还是用惯了别的软件转过来的老手按这套顺序走一遍基本能避开发出去打回来的返工。1. 先搞清楚出光绘文件到底在出什么很多新手一上来就打开 Artwork 对话框开始勾层这其实是把最难的部分放在了最前面。你连自己要交多少份东西都没数清楚勾层就是盲勾。我习惯的做法是先把交付清单写在一张便签上对着清单去操作做完一项划掉一项。1.1 一套完整的制板文件由哪几块拼成对于一块普通的双面或四层板最终交给板厂的压缩包里通常包含四类东西第一类是 Gerber 光绘文件也就是每一层的图形数据扩展名是.art第二类是钻孔文件包括通孔钻带.drl和铣槽文件.rou如果有异形槽或者外框需要铣出来第三类是各类参数文件比如art_param.txt、nc_param.txt、photoplot.log这些是给板厂工程师看的对照说明告诉他们你用的单位和精度第四类是可选的附加资料包括坐标文件、IPC-D-356 网表、装配图 PDF、阻抗说明和叠层图。这四类东西里Gerber 和钻孔是硬性交付项少了任何一层板厂都做不出来。参数文件不是硬性的但我强烈建议一起打包——原因很简单板厂的 CAM 工程师每天要处理几十套文件如果他打开你的 Gerber 发现是英制 2:5打开钻孔发现是英制 2:4他就得手动去猜和换算猜错一次就是一批板子报废。你把参数文件一起发过去人家一眼就能确认省下的是你自己的时间。1.2 为什么顺序比参数更值得先讲参数填错是显性错误多数情况下板厂在 CAM 阶段就能发现并反馈给你而顺序做错是隐性错误它不会报错但会导致输出结果本身就是错的。举个最典型的例子你先出 Gerber再回去改丝印、移动位号然后忘了重新出 Gerber这时你交出去的丝印层还是旧版本的。再比如你先把 Gerber 出了才想起来要往 DRILL 层里放钻孔表那就得重新出一次 Gerber白折腾。还有个更隐蔽的铜皮Shape没重灌就出图Gerber 里的铜皮轮廓还是上一次的旧数据和现在的走线对不上板厂做出来就会出现铜皮撕裂或者孤岛。这种错误在你自己的 Allegro 里看不出来因为屏幕上显示的是动态更新的但出图时用的是静态数据。所以我一直强调出 Gerber 这件事的本质是把一个动态的、可编辑的设计数据库凝固成一套静态的、只读的图形文件。凝固之前数据库必须是最终态凝固的顺序必须保证后面生成的东西能正确引用前面的东西。这就是顺序的全部意义。2. 动手之前那些必须先在 Allegro 里收尾的事我是那种不到最后不出图的人出图前一定要有一个明确的收尾动作把所有可编辑的东西全部冻结。这一步花的时间大概是出图本身的十倍但能省下百倍的返工。2.1 数据库体检与铜皮重灌第一步永远是 Database Check。在 Allegro 17.4 里走Tools Database Check把里面的选项全部勾上尤其是Check for DRC errorsUpdate all DRCCheck shape outlines这几个。跑完之后看报告如果有Shape相关的 warning不要放过多数时候是铜皮有自交或者孤立的小尖角。紧接着做铜皮重灌。17.4 里有两个入口一个是在Shape菜单下的Global Dynamic Shape Parameters里点Update to Smooth另一个更暴力直接Tools Update DRC它会顺带把所有动态铜皮重新计算一遍。跑完之后看状态栏Display Status里如果Shapes那栏还有unrouted/unassigned说明有铜皮没被正确计算出来通常是优先级设错了或者被别的铜皮完全覆盖。这里有个经验如果你的板子有上千个铜皮重灌可能要跑十几分钟别急让它跑完。中途点取消会导致数据库处于中间状态出图必然出错。2.2 DRC 清零与网络连通性确认DRC 我不追求绝对意义上的零 DRC因为有些 DRC 是误报比如散热焊盘下面的过孔间距但每一处留下来的 DRC 我都要能说出它为什么可以留。看完 DRC 之后用Tools Quick Reports Design Rules Check Report和Unconnected Pins Report重点看Unconnected Pins——这个报告如果非空说明你有网络没连上直接出图就是断线板。我习惯把这两份报告都导出成 txt 存到项目文件夹里一是留档二是出图后万一人问起来有据可查。另外别忘了检查测试点覆盖率和螺丝孔、定位孔是否被误删——这两类孔在 17.4 里经常被当成普通过孔一起处理出图前单独确认一遍。2.3 原点、单位与精度的统一原点这事看起来小其实是后面所有坐标类文件的基准。我的固定做法是Setup Change Drawing Origin然后点在板框的左下角让板框的左下角是 (0,0)。这么做的原因是坐标文件给贴片厂用的时候他们的设备也是以板子左下角为参考的原点对齐了贴片程序里的人工调整能少很多。单位上我统一用英制 mil 或者公制 mm 二选一绝不混用。精度方面Gerber 常用的是英制 2:5也就是整数两位、小数五位分辨率 0.00001 英寸或者公制 4:5。这里的关键不是选哪个而是钻孔文件的精度必须和 Gerber 完全一致。我见过太多案例是 Gerber 出了 2:5钻孔默认是 2:4结果板厂按 2:4 解析钻孔孔位整体偏移几毫米。注意改完原点和单位之后务必重新跑一次Tools Update DRC因为有些封装的位置属性会和原点绑定改原点后需要重新解析。3. 我常用的出图顺序十步走下来网上流传的很多教程都是打开 Artwork 勾层再点 Create这只讲了第 6 步。我把完整顺序整理成下面这十步照着做基本不会漏。3.1 完整流程总览数据库体检Tools Database Check勾全选项跑一遍。铜皮重灌Shape Global Dynamic Shape Parameters Update to Smooth。DRC 与连通性确认Tools Quick Reports出两份报告存档。原点与单位统一Setup Change Drawing OriginSetup Design Parameters里的单位设置。叠层确认Setup Cross-section把层数、厚度、铜厚、介质材料核对一遍。丝印整理位号居中、避免压焊盘必要时用自动修剪工具。生成钻孔表把Drill Legend放到 DRILL 层。生成钻孔文件Manufacture NC NC Drill出.drl有槽孔再出NC Route。导出 GerberManufacture Artwork选全部底片Create Artwork。导出附加资料坐标文件、IPC 网表、装配图 PDF然后打包。3.2 每一步在做什么、为什么放在这个位置第 6 步放在钻孔之前是因为钻孔表要放在 DRILL 层底片里而底片配置需要引用丝印层的子类。如果你先配好了底片再去改丝印就得重新确认底片有没有受影响的层。第 7 步放在第 8 步之前是因为钻孔表的图形和实际钻孔文件是两回事钻孔表是给人看的示意图钻孔文件是给机器读的数据。先放好表再出数据逻辑上顺反过来的话你出完.drl再回头改表的位置虽然不影响数据本身但会导致 Gerber 和.drl不是同一次操作的产物追溯起来麻烦。第 9 步放在最后是因为 Gerber 需要把前面所有层的内容全部引用进去包括钻孔表所在的 DRILL 层。这也是它为什么必须是最后一步。3.3 关于先钻孔还是先 Gerber的争论这个争论我听过无数次。有一派认为应该先出 Gerber 再出钻孔理由是钻孔文件依赖 Gerber 里的焊盘信息另一派认为先出钻孔理由是钻孔表要放进 Gerber 的 DRILL 层。我的结论是先出钻孔再出 Gerber。原因有两个。一是钻孔文件本身是独立的它读取的是焊盘和过孔的孔径信息跟 Gerber 出没出没关系二是钻孔表Drill Legend必须作为图形元素出现在 Gerber 的 DRILL 底片里这是行业惯例板厂查孔径表就看这一层。如果你先出 GerberDRILL 层里就没有钻孔表还得重出一次纯属绕路。不过有一种情况例外如果你的板子用的是负片Negative内层出 Gerber 之前必须确认负片的隔离盘Anti-pad已经全部正确生成这时候可以先出一版 Gerber 用 CAM 工具看一眼负片确认没问题再出钻孔。但从效率上看还是先钻孔后 Gerber 更顺。4. 钻孔文件NC Drill 与 NC Route 的实操细节钻孔这一块出错率比 Gerber 还高因为它的参数页藏得深而且不同版本默认值还不一样。4.1 NC Parameters 的格式设置在出钻孔之前先打开Manufacture NC NC Parameters这个对话框里的设置会决定.drl文件的格式。要关注的字段有下面这些字段建议值说明Format2:5英制或 4:5公制必须与 Gerber 的精度完全一致Leading/Trailing ZeroLeading前导零抑制与 Gerber 保持一致板厂最爱 LeadingCoordinateAbsolute绝对坐标避免板厂解析相对坐标出问题Offset板框左下角一般填 0 0配合原点设置Output Units与 Gerber 同单位英制或公制别混Suppress选择自己想要的一般全部勾上减少文件体积Enhanced勾选生成增强格式带更多可读信息设置完之后点 OK这些参数会存进nc_param.txt。我建议每次出图都打开这个文件扫一眼确认里面的单位和精度和你设的一致——有时候项目是从别的模板继承来的默认值可能不是你想要的。4.2 钻孔表 Drill Legend 的生成与摆放钻孔表在 17.4 里走Manufacture NC Drill Legend弹出的对话框里可以选格式Tables或者Figure。我一般选Tables因为表格形式直观板厂工程师看得清楚。生成之后它会自动附着在光标上你需要把它放在板框外面或者板子上的空白区域。放置位置有两个讲究一是不能压到任何焊盘和走线二是要放在板框外侧的空地上因为如果放在板子内部它会变成 Gerber 里的一堆线条被板厂当成实际图形处理。放置完之后检查一下钻孔表里的孔径分类。如果出现了0.0000这种异常孔径说明有焊盘的孔径属性丢了得回封装里改。还有一种情况是同一个孔径被分成了两组比如 0.3mm 和 11.81mil 被当成两个不同的钻头这是因为单位换算产生的舍入误差解决办法是把所有封装统一到同一个单位系统里。经验钻孔表放好之后先只打开 DRILL 底片看一眼确认表格完整、没有超出板框范围。我遇到过表格太长跑到图纸外面去的出图后板厂只看到半张表。4.3 铣槽与异形板边如果板子上有需要铣出来的槽比如长圆孔、异形开孔这部分不属于钻孔要走Manufacture NC NC Route。前提是你在设计时已经用Board Geometry NCroute子类画好了铣切路径。生成的.rou文件里会包含刀具直径和路径信息。这里有个坑NC Route默认的刀具表是空白的需要你手动指定铣刀直径。板厂常用的铣刀是 1.6mm 和 2.0mm如果槽的宽度小于铣刀直径板厂是做不出来的所以在设计阶段就要确认槽宽。我一般会在.rou文件生成后用记事本打开确认刀具列表非空同时确认路径方向和闭合情况。5. Artwork 底片配置每一层到底要放哪些子类这是整篇文章的核心也是最容易出岔子的地方。很多人的 Gerber 出问题根源都在这里——某个子类没勾上或者多勾了一个不该有的子类。5.1 Film 清单与子类对照表打开Manufacture Artwork你会看到一个底片Film列表。对于一块常规多层板我一般配下面这些底片底片名应包含的关键子类用途TOPEtch/Top、Pin/Top、Via Class/Top、Board Geometry/Outline、Package Geometry/Silkscreen_Top顶层线路与丝印BOTTOMEtch/Bottom、Pin/Bottom、Via Class/Bottom、Board Geometry/Outline、Package Geometry/Silkscreen_Bottom底层线路与丝印INNER_1 ~ INNER_nEtch/对应内层、Pin/对应内层、Via Class/对应内层内层线路SOLDERMASK_TOPPin/Soldermask_Top、Via Class/Soldermask_Top、Package Geometry/Soldermask_Top顶层阻焊开窗SOLDERMASK_BOTTOM对应底层子类底层阻焊开窗PASTEMASK_TOPPin/Pastemask_Top、Package Geometry/Pastemask_Top顶层钢网贴片用PASTEMASK_BOTTOM对应底层子类底层钢网SILKSCREEN_TOPPackage Geometry/Silkscreen_Top、Board Geometry/Silkscreen_Top、Component/RefDes独立丝印层DRILLManufacture/NC Drill Legend、Manufacture/NC Drill Figure钻孔表OUTLINEBoard Geometry/Outline、Board Geometry/Design_Outline板框外形DIMENSIONBoard Geometry/Dimension尺寸标注可选要注意的是丝印层在很多流程里是直接合在 TOP/BOTTOM 底片里的不单独出。两种做法都行但我更倾向于单独出 SILKSCREEN 层因为这样板厂如果要帮你调整丝印不会影响线路层的图形。尤其是当你的板子丝印比较密板厂需要做丝印裁切的时候单独一层处理起来方便得多。5.2 阻焊与钢网层的坑阻焊层的逻辑和线路层是反的这一点每年都能绊倒一批新人。你在线路层上画一条线Gerber 里就是一条线但你在 Soldermask 层上放一个焊盘Gerber 里呈现的是一个挖空区域也就是这里没有阻焊油。所以阻焊层的核心是控制开窗大小。行业惯例是单边外扩 0.05mm 到 0.1mm也就是 2mil 到 4mil太小会导致焊盘边缘被油盖住不好上锡太大则可能导致相邻焊盘之间的阻焊桥太细波峰焊时容易连锡。这个外扩量是在封装里通过Soldermask_Top焊盘的大小来控制的不是在 Artwork 里改。还有一个高频坑过孔盖油与开窗。如果你的过孔要做盖油处理就在Via Class/Soldermask_Top子类里不要放任何图形如果要开窗就要在封装或者设计里给过孔加上 Soldermask 焊盘。很多人出图时发现过孔被开了窗一查是封装库里给过孔默认带了 Soldermask 层。钢网层Pastemask相对简单它只对应 SMD 焊盘通孔焊盘一般不需要开钢网。开窗大小通常和焊盘等大或者外扩 0.05mm。注意如果你的板子上有需要手工补锡的通孔就不能在钢网层给它们开窗否则工厂刷锡膏时会多刷。5.3 参数页里那几个关键勾选项在 Artwork 对话框的General Parameters页有几个选项决定成败Device Type选RS-274X。这是带嵌入式光圈表的格式板厂默认接受。千万不要选RS-274D那个需要单独的光圈表文件现在基本没人用了。Format勾选2:5英制或对应公制精度和钻孔文件严格一致。Suppress前导零抑制一般全部勾上。CoordinateAbsolute。Output Options勾上Create Aperture List生成光圈表和Optimize优化图形。Scale填1除非要做镜像。Undefined Line Width / Shape Bounding Box前者建议填5mil或0.1mm这是一个兜底值防止某些线宽为 0 的图形在 Gerber 里消失后者填0。这里最需要强调的是底片定义和实际出图的区别。你在对话框里把底片配好了只是定义了这片底片应该长什么样还要点Create Artwork才会真正生成文件。我见过有人配完底片就以为出完了压缩包里全是空的。提示Create Artwork之前先点Check检查一遍它会告诉你哪些底片没有定义子类、哪些子类为空。如果某个底片报没有内容八成是子类名写错了。6. 坐标文件、网表与其它附加资料Gerber 和钻孔是主菜但配菜做好了整套餐才完整。贴片厂最关心的其实不是 Gerber而是坐标文件。6.1 Placement 坐标文件在 17.4 里走File Export Placement弹出的对话框里要选几个关键项。单位选毫米Origin选Body Center元件本体中心或者Symbol Origin符号原点这两个的区别在于贴片机抓取点不同。绝大多数贴片厂接受Body Center因为贴片机的吸嘴本身就是对准元件本体中心的。如果是双面板要分别导出顶层和底层的坐标文件扩展名一般是.mnt和.mnb。导出之后用 Excel 打开检查一下重点看有没有NaN或者空坐标的行——有的话说明某个元件的封装原点丢失了。我一般的做法是导出后按 X 坐标排序确认所有元件都落在板框范围内如果有元件跑到板框外八成是封装原点做错了。6.2 IPC-D-356 网表走File Export IPC356这份文件是给飞针测试用的。板厂在打样阶段通常只做通断测试如果你的板子有盲埋孔或者高密度 BGA飞针测试能帮你筛掉一批不良品。导出之后不用改什么直接打包就行。但要注意一点IPC356 文件里的网络名如果包含中文或者特殊字符可能会导致某些测试机读不了所以在导出前确认网络名全是英文数字。6.3 装配图与 PDF装配图不是必须的但对小批量生产特别有用因为工人要拿着图纸手工插件。生成方式我常用Manufacture Silkscreen配合打印或者直接用File Export PDF把某几层导出成 PDF。内容上要包含位号、极性标记、元件外框还要有一份 BOM 对照表。极性标记特别重要二极管、电解电容、芯片的第一脚这三个位置如果没有明确标注返修率会很高。7. 出图之后的验证别把检查交给板厂我见过太多人的心态是出完就发有问题板厂会告诉我。这个想法很危险因为板厂只负责按你的文件做板不负责判断你的设计对不对。他能发现的是文件格式不对发现不了的是这颗芯片方向反了。7.1 用 CAM 工具回看专业的做法是用 CAM 工具把 Gerber 重新导入看一眼常用的有 CAM350、Genesis也有免费的 Gerber 查看器。没有商业工具的话用 Allegro 自带的File Import Artwork也能粗略回看或者用免费的在线查看器。回看的时候重点确认四件事一是层数是否齐全把每一层都打开看一眼确认没有空白层二是钻孔表的孔径列表和实际钻孔数量能否对上比如表里有 500 个 0.3mm 的孔实际数一下要大致接近三是板框是否闭合所有层的外框是不是重合的四是阻焊开窗是否和焊盘对齐尤其是细间距器件开窗偏移会很直观。7.2 一份我常用的自查清单每次出图前我都会过一遍这份清单五分钟能过完能挡掉九成的低级错误Gerber 层数和叠层数是否一致钻孔文件精度是否与 Gerber 一致钻孔表是否已放置且位置正确板框层是否有内容且闭合阻焊层是否包含正确的焊盘开窗丝印是否压到焊盘用Display Color单独看丝印层坐标文件是否覆盖所有贴片元件文件命名是否清晰比如TOP.art、NC.drl参数文件是否一起打包是否已经压缩成 zip 并确认压缩包大小合理太小说明文件缺失8. 常见问题与排查速查下面这些是我这些年真实遇到过的问题整理成表格方便查。8.1 问题速查表现象可能原因解决方式板厂反馈某层是空的该底片未定义子类或子类名写错打开 Artwork 检查该底片的子类列表钻孔整体偏移钻孔与 Gerber 精度/单位不一致统一为 2:5 或 4:5检查 nc_param.txt过孔被误开窗封装里过孔带了 Soldermask 层修改封装或出图前删除该层图形丝印压焊盘被裁掉位号位置没调好用自动丝印修剪工具处理铜皮出现孤岛动态铜皮未重灌出图前执行 Update to SmoothGerber 打开全是乱码格式选了 RS-274D改为 RS-274X坐标文件里元件缺失封装原点丢失或未定义检查封装原点重新导出出图时长异常久底片引用了大量无用子类精简子类删除空底片板框在 Gerber 里是断的Outline 未闭合手动补线闭合板框钻孔表孔径异常为 0焊盘孔径属性丢失回封装修改 Padstack8.2 几个我踩过的坑第一个坑是老老实实出图结果忘了改原点。有一次项目是从别的板子上复制过来的原点还在原来板子的位置导致坐标文件里的 X 坐标全是负数贴片厂打电话过来问是不是坐标搞错了。从那以后我形成了条件反射出图前一定先看一眼状态栏的原点位置。第二个坑是底片建多了。有次为了保险把一个项目的底片从 10 个加到了 18 个结果板厂反馈说有几层是空的反而增加了沟通成本。后来我养成了清理习惯出图前把没用的底片删掉只留实际需要的。第三个坑是丝印自动修剪把有用的文字也剪了。Manufacture Silkscreen里的自动修剪功能会剪掉压焊盘的丝印但它不知道怎么判断哪些文字重要。有一次它把芯片的第一脚标记剪掉了导致工厂焊接时方向全靠猜。所以自动修剪之后一定要人工再看一遍重要的极性标记要用额外的方式补上比如在装配图上标。第四个坑是参数文件忘了打包。这个看起来是小事但板厂工程师真的会因为它而多问你一句。后来我把参数文件的打包做成了脚本的一部分每次出图自动带上就再没出过这个问题。9. 打包交付与文件命名规范最后说交付。很多人觉得我把文件压缩一下发过去就行但命名混乱会让板厂工程师多花时间而这些时间成本最终会体现在你的交期上。我的命名习惯是文件夹用项目名加日期比如ProjectX_20240612里面的子文件夹分三类Gerber、NC、DocGerber 文件名用底片名直接对应比如TOP.art、SOLDERMASK_TOP.art钻孔文件统一叫NC.drl、NC.rou。Doc 里放参数文件、坐标文件、IPC 网表、BOM 和装配图。压缩包发给板厂的时候在正文里写清楚三件事板子的层数、材料、铜厚Gerber 单位和精度是否有阻抗要求。这三句话能让板厂确认时少打两个电话。如果是多层板再附上一张叠层截图或者 PDF把每一层的厚度和介质材料标清楚尤其是涉及阻抗控制的走线板厂需要按叠层来调整介质厚度。另外一个小技巧打包之前用dir或者文件管理器看一眼文件数量对不对。一块四层板加上阻焊、丝印、钻孔表、板框大概在 15 到 20 个文件之间。如果只有五六个那肯定是漏了。这个简单动作我坚持了很多年帮我挡掉了好几次压缩包只有一半的尴尬。10. 最后分享几点个人体会出 Gerber 这件事本质上考验的不是你对软件菜单的熟悉程度而是你对整个制造链条的理解。你理解了板厂为什么需要钻孔表、理解了贴片厂为什么在意坐标原点、理解了为什么精度必须统一那你出图的时候自然知道每一步该放在哪里。我自己从 Allegro 16.6 用到现在最大的感受是不要迷信默认值。软件默认的参数是为了通用性不是为了让你的板子能顺利生产。每一次出图我都会打开参数页把那几个关键字段扫一眼这个习惯花不到两分钟但帮我省下的返工时间可能有几百个小时。还有一个体会是把出图流程写成一份自己的 checklist每做一个新项目就对着走一遍。开始可能觉得啰嗦做十几个项目之后你就会发现这份清单已经帮你把大部分低级错误都挡在了门外。我现在用的清单就是从最早的十几条慢慢删到现在的九条每条都是踩过坑之后加上的删掉的都是已经形成肌肉记忆的。
返回列表