Cadence Allegro光绘文件生成全流程:从原理到实战避坑指南 1. 项目概述从设计到生产的最后一道关做硬件设计的工程师尤其是用Cadence Allegro的应该都有过类似的经历原理图画好了PCB布局布线也折腾得差不多了对着电脑屏幕上的3D视图自我感觉良好觉得大功告成。但真到了要把设计文件发给板厂加工的时候心里就开始打鼓——这光绘文件Gerber到底出对了没有层有没有漏阻焊和丝印对不对负片的正片是不是搞反了我敢说十个硬件工程师里至少有八个在第一次独立出光绘时都或多或少踩过坑。我自己也不例外早年就因为一个负片层没设置对导致整批板子的电源层短路损失的不只是钱更是宝贵的项目时间。光绘文件就是PCB设计的“施工蓝图”。无论你在Allegro里把板子画得多漂亮板厂师傅们眼里看到的只有这一套Gerber文件。它用最原始的矢量图形语言精确描述了每一层铜皮的形状、每一个钻孔的位置、每一处阻焊的开窗。这个过程本质上就是把Allegro中复杂的、带属性的数据库转换成一连串板厂标准设备能读懂的“点、线、面”指令。所以出光绘绝不是简单地点击几下“导出”而是一个需要极度严谨和清晰逻辑的工艺转换过程。最近因为一个老项目需要改版我又得重新走一遍这个流程。虽然核心功能驾轻就熟但一些细节参数和针对特定层比如射频屏蔽罩的Pastmask的设置隔段时间不用就容易生疏。以往我总是依赖于博士那个经典的教学视频但每次都要拖着进度条找效率不高。这次我决定结合自己多年在通信和消费电子领域画板的经验把Allegro出光绘的完整步骤、每个参数背后的意义以及那些容易翻车的“坑点”系统地记录下来。这份笔记不仅是为了自己下次查阅方便更希望能给那些正在从Altium Designer转向Allegro或者对出Gerber还心存疑虑的工程师朋友们提供一份清晰、可靠、能直接“抄作业”的实战指南。2. 核心思路与准备工作理解“底片”与“层”的逻辑在真正动手点击菜单之前我们必须先理清两个最核心的概念“底片”Film和“层”Layer。这是理解整个光绘生成逻辑的基石很多错误都源于对这两者关系的混淆。2.1 “底片”是什么—— 最终的输出单元在Allegro的Artwork控制界面里你看到的“Available films”列表中的每一个条目比如“TOP”、“GND02”、“SILKSCREEN_TOP”最终都会对应生成一个独立的.art或.ger文件取决于你的设置。你可以把每一个“底片”想象成一张透明的菲林胶片。板厂会用这些胶片通过曝光、蚀刻等工艺在覆铜板上分别制作出对应的图形。因此你需要出多少张物理上不同的图形就需要创建多少个底片。对于一个典型的12层板假设是8层信号层2层电源层2层地层我们通常需要出的底片远不止12个。2.2 “层”是什么—— 设计数据的分类容器而“层”是你在Allegro设计时就已经创建和使用的数据容器。比如“ETCH/TOP”是顶层走线层“PIN/TOP”是顶层焊盘“BOARD GEOMETRY/OUTLINE”是板框外形层。Allegro通过一个庞大的层叠结构Cross-section和数十个不同的子类Subclass来管理所有设计元素。2.3 关键逻辑一个底片 多个层的叠加视图出光绘的核心操作就是为每一个“底片”指定需要包含哪些“层”的数据。这就像Photoshop里的图层叠加最终打印出来的是一张合并了所有可见图层的图片。例如你的“SILKSCREEN_TOP”顶层丝印这个底片可能需要包含以下层的数据REF DES/SILKSCREEN_TOP(位号字符)PACKAGE GEOMETRY/SILKSCREEN_TOP(器件外框丝印)BOARD GEOMETRY/SILKSCREEN_TOP(板名、版本号等)而你的“TOP”顶层走线底片则需要包含ETCH/TOP(走线和铜皮)PIN/TOP(焊盘)VIA CLASS/TOP(过孔)2.4 准备工作设计检查与层显示管理在打开Artwork菜单前有几步准备工作能极大提升成功率避免反复修改运行DB Doctor在Tools-Database Check中完整运行一次检查。这能修复一些潜在的数据库错误这些错误在出Gerber时可能导致异常中断或图形错误。确认板框Outline完整且闭合使用Display-Element命令点击板框线确保其是一个闭合的Shape。不闭合的板框在出Gerber时会导致无法正确计算板子外形。清理无用的设计元素关闭所有无关的层显示检查是否有遗留的、未使用的文字、线段等保持设计干净。明确你的层叠结构打开Cross-section编辑器再次确认信号层、平面层的顺序和属性正片/负片。这一步决定了你后续为电气层底片选择“正片”还是“负片”模式。注意我强烈建议在开始配置底片前先规划一个“出图层清单”。用Excel或记事本列出所有需要输出的底片名称、对应的物理用途、需要添加的Allegro层、以及正负片模式。这样做可以让你思路清晰避免遗漏。例如底片名物理用途主要包含的Allegro层Plot ModeTOP顶层线路ETCH/TOP, PIN/TOP, VIA CLASS/TOPPositiveGND02第二层地平面ETCH/GND02, PIN/ALL, VIA CLASS/ALLNegativeSILKSCREEN_TOP顶层丝印REF DES/SILKSCREEN_TOP, PACKAGE GEOMETRY/SILKSCREEN_TOPPositive3. 光绘参数详解与逐项配置理清了思路我们就可以打开Manufacture-Artwork正式进入光绘生成界面。这个对话框是核心分为“Film Control”和“General Parameters”两页。我们一页一页来啃我会把每个参数为什么这么设、设错了会怎样都讲清楚。3.1 Film Control底片控制页详解这是配置任务最重的一页。左边是底片列表右边是针对选中底片的参数。3.1.1 底片列表与层添加首次打开Allegro通常会根据你的层叠结构自动生成所有电气层ETCH层的底片。但这只是开始。我们需要手动添加所有非电气层底片。添加标准非电气层底片在空白处右键 -Add依次添加并命名以下底片。命名最好保持规范便于自己和板厂识别DRILL_DRAWING(钻孔图层)DRILL_LEGEND(钻孔表/图例)注意这和Drawing不同通常也需要OUTLINE(板框层)PASTEMASK_TOP(顶层钢网)PASTEMASK_BOTTOM(底层钢网)SILKSCREEN_TOP(顶层丝印)SILKSCREEN_BOTTOM(底层丝印)SOLDERMASK_TOP(顶层阻焊)SOLDERMASK_BOTTOM(底层阻焊)为每个底片添加正确的层这是最容易出错的一步。点击左边一个底片如SILKSCREEN_TOP在中间的“Available layers”区域通过勾选来添加层。一个高效的方法是先关闭所有层的显示在Color Dialog中关掉所有“Visible”然后只打开你需要加入当前底片的那些层再回到Artwork界面这些层就会出现在列表里供你勾选。下面是一个详细的层映射参考表请对照你的设计逐一核对底片名称必须包含的关键层Subclass说明与常见遗漏TOP(信号层示例)ETCH/TOP, PIN/TOP, VIA CLASS/TOP信号层走线、焊盘、过孔。注意检查是否有动态铜皮Dynamic Copper需要转为静态Shape - Fill。GND02(负片平面层示例)ETCH/GND02, PIN/ALL, VIA CLASS/ALL, ANTI ETCH/ALL负片关键必须添加ANTI ETCH/ALL否则负片上的隔离盘Flash无法生成。PIN/ALL和VIA CLASS/ALL确保所有焊盘和过孔都能在负片上正确产生避让。OUTLINEBOARD GEOMETRY/OUTLINE板框。有时还需要包含BOARD GEOMETRY/ROUTE KEEPOUT等禁止布线区。SILKSCREEN_TOPREF DES/SILKSCREEN_TOP, PACKAGE GEOMETRY/SILKSCREEN_TOP, BOARD GEOMETRY/SILKSCREEN_TOP位号、器件外形丝印、板名等。务必检查丝印是否与焊盘重叠可在出图前用Tools - Quick Reports - DRC Report检查。SOLDERMASK_TOPPIN/SOLDERMASK_TOP, VIA CLASS/SOLDERMASK_TOP, BOARD GEOMETRY/SOLDERMASK_TOP, SHAPE/SOLDERMASK_TOP阻焊开窗层。焊盘和过孔默认会自动开窗比焊盘稍大。如果需要特定区域开窗如散热焊盘需在BOARD GEOMETRY/SOLDERMASK_TOP层画Shape。PASTEMASK_TOPPIN/PASTEMASK_TOP, SHAPE/PASTEMASK_TOP钢网层。通常只有需要焊接的贴片焊盘才需要。插件焊盘、测试点一般不开钢网。DRILL_DRAWINGBOARD GEOMETRY/DRILL_DRAWING, BOARD GEOMETRY/OUTLINE钻孔图示层显示孔的位置和编号。需要和DRILL_LEGEND配合使用。DRILL_LEGENDBOARD GEOMETRY/DRILL_LEGEND钻孔表说明每种孔径对应的符号和数量。此层由Allegro自动生成通常只需添加这一个层即可。实操心得配置层时我习惯采用“从总到分”的方法。先在Color Dialog中打开一个大类如PACKAGE GEOMETRY然后只勾选当前底片需要的子类如SILKSCREEN_TOP。这样能有效避免误添加无关层。每配好一个底片可以右键该底片选择Display单独预览其图形确认无误。3.1.2 Film Options底片选项参数解析选中一个底片后右侧的参数决定了这个底片输出的细节。Undefined line width这是新手大坑它定义了该底片中所有没有明确线宽属性的线段比如你在BOARD GEOMETRY/OUTLINE层用Line画的板框的输出线宽。如果这里设为0那么这些线在Gerber里就是0宽板厂可能无法识别或导致错误。通常建议设置为一个较小的正数如0.1mm约4mil或5mil。对于OUTLINE层如果你用Line画框这个值就决定了板框线的粗细如果你用Shape画则此参数不影响。Plot mode正片Positive与负片Negative的选择是重中之重。正片你看到的在Allegro中显示的就是铜皮。画线的地方输出铜空白处输出基材。适用于所有信号走线层和所有非电气层丝印、阻焊、钢网等。负片你看到的在Allegro中显示的是“掏空”的部分。空白处输出铜皮画线Flash符号的地方把铜掏空。适用于整张铜皮的大面积电源层和地层。使用负片可以极大减小Gerber文件大小提高数据处理效率。判断依据在Cross-section中将该层类型Type设置为“Plane”的通常用负片出图。Vector based pad behavior只要你的“General Parameters”页中“Device type”选择了“Gerber RS274X”这个选项就必须勾选它的作用是确保在负片层上钻孔焊盘能正确生成一个环形的“Flash”符号看起来像甜甜圈用于在负片铜皮上掏出一个比钻孔更大的隔离环。如果不勾选负片上的焊盘可能会丢失导致短路。3.1.3 其他选项Check database before artwork强烈建议勾选。它会在生成Gerber前自动执行一次快速的数据库检查拦截一些低级错误。Film size limits设置底片的最大尺寸。这里必须根据你的PCB实际尺寸加上一定的余量来设置例如你的板子是100mm x 80mm那么这里至少应设置为120mm x 100mm留出10mm边距。如果设置小于板子实际尺寸出图时会报错或图形被截断。我吃过亏板子长边是110mm默认设置是100mm结果Gerber没报错但板厂做出来发现外形缺了一块。3.2 General Parameters通用参数页详解这一页的设置对所有底片全局生效。Device type选择GERBER RS274X。这是目前板厂通用的、包含光圈表Aperture信息的增强格式。老式的GERBER 6x00需要单独提供光圈文件已基本淘汰。Format定义坐标数据的精度格式为“整数位:小数位”。例如5:3表示坐标值有5位整数3位小数。这是另一个关键参数它决定了Gerber文件的解析精度。精度不足可能导致圆弧变成多边形、焊盘位置轻微偏移。通常建议英制单位mils设为5:3即1/1000 mil精度或5:4更高精度。公制单位mm设为5:5即1/100000 mm精度。一个简单原则你的设计精度是多少这里就设多高。如果设计时用的是0.01mm网格那么5:5是合适的。Suppress通常保持默认不勾选Leading和Trailing。它控制是否抑制坐标值前后无意义的零。保持默认能让文件更易读。Output units根据你的设计习惯选择Inches或Millimeters。务必与你的PCB设计单位和Format设置匹配如果设计是mm这里选了Inches坐标会全部错乱。4. 生成、检查与输出文件包所有参数配置完毕后就是最后的生成和检查阶段了。这一步做得好能省去和板厂来回确认的很多麻烦。4.1 生成光绘文件在Film Control页点击Select All按钮选中所有需要输出的底片。点击Create Artwork按钮。如果勾选了数据库检查会先弹出一个检查窗口确认即可。状态栏会显示处理进度。处理完成后在当前设计文件的同级目录下会生成一个以设计文件名命名的文件夹如project_artwork里面包含了所有的.art文件即Gerber文件。4.2 必须进行的可视化检查绝对不要直接把文件打包发走必须用Gerber查看器检查。我常用免费的ViewMate或GC-Prevue商业软件CAM350功能更强大。层对齐检查在查看器中叠加所有层检查各层孔位是否对齐特别是过孔与各层焊盘。阻焊层是否完全覆盖了需要开窗的焊盘且没有不必要的开窗。丝印层是否避开了所有焊盘和过孔。板框层是否与其他层的外形匹配。负片检查单独查看负片层如GND层。你应该看到大片黑暗表示铜皮上面有清晰的圆形“甜甜圈”Flash和线条表示掏空区域。如果看到的是走线图形说明错设成了正片。钻孔文件除了.art文件钻孔信息是单独输出的。在Manufacture-NC-NC Drill和NC Route中生成钻孔文件。通常选择Excellon format格式。务必确保钻孔文件的单位和精度与Gerber文件设置一致这是孔位对准的保证。阅读板厂要求在发板前仔细阅读目标板厂的“工艺说明”或“Gerber文件要求”。他们对文件命名、包含哪些层、丝印线宽、阻焊桥大小等可能有特定要求。按照板厂要求微调你的输出是成熟工程师的习惯。4.3 文件打包与归档一个规范的文件包应包括所有Gerber文件.art或.gbr。钻孔文件.drl和.rou。IPC网表文件可选但推荐在File-Export-IPC356中生成。板厂可以用它来进行裸板通断测试飞针测试的编程。README.txt一个简单的说明文档列出板子名称、版本号。所用软件及版本如Allegro 17.4。Gerber格式说明RS274X 5:5 mm。各文件对应层说明列表。板厚、层数、表面工艺如沉金、喷锡等关键工艺要求。将以上所有文件打包成一个ZIP压缩包再发送给板厂。清晰的归档是对自己设计的负责也能极大提高板厂的一次成功率。5. 常见问题、排查技巧与实战心得即使步骤再详细实际操作中还是会遇到各种“妖魔鬼怪”。下面是我和同事们多年踩坑后总结的一些典型问题及解决方法。5.1 生成Gerber时报警告或错误问题点击Create Artwork后弹出大量“Database has errors”或“Shape is empty”等警告。排查首先运行Tools-Database Check勾选所有选项尤其是“Cleanup Dangling”和“Cleanup Unconnected”执行修复。检查是否有“孤岛”铜皮小的、未连接的铜皮碎片。在Shape-Global Dynamic Params-Void选项卡中可以设置自动移除孤岛铜皮。检查所有Flash符号是否有效。对于负片层在Setup-Padstack-Refresh一下更新所有焊盘。有时从旧版本导入或修改焊盘后Flash符号会丢失。5.2 查看Gerber时发现图形缺失或错位问题在CAM软件中打开Gerber发现某些走线没了或者丝印跑到板子外面去了。排查检查层映射回到Allegro确认该底片是否真的添加了正确的层。最常见的是丝印层漏加了REF DES子类。检查“Undefined line width”如果是板框等用Line画的图形缺失很可能是这个值设为了0。将其改为一个正数如0.1mm重新出图。检查单位与精度确认CAM软件打开Gerber时设置的单位和精度Format与你在Allegro中输出时设置的一致。单位弄反inch vs mm会导致图形缩放25.4倍完全错乱。检查负片Flash负片层上看不到隔离盘是一片实心铜。确认Vector based pad behavior已勾选并且负片底片中包含了ANTI ETCH/ALL层。5.3 板厂反馈“钻孔文件对不上”问题板厂说钻孔文件和Gerber的孔位有偏移。排查绝对原点在出Gerber和钻孔文件前确保PCB的绝对原点Setup-Change Drawing Origin设置在一个合理的位置比如板框的左下角。避免原点在很远的地方导致坐标值过大。输出单位一致核对Gerber的Output units和NC Drill的Output units必须完全相同。精度一致核对Gerber的Format如5:5和NC Drill的Format通常也是5:5最好一致。生成钻孔文件时的选项在NC Drill对话框中Offset一般设为0Plated和Non-plated钻孔要分开输出的话注意区分。5.4 关于阻焊与钢网的特别注意事项阻焊层Solder Mask开窗比焊盘大这是工艺决定的通常单边大0.05mm到0.1mm以确保焊盘完全暴露。这个补偿值有时可以在Allegro的焊盘设计或板厂工艺中设定。阻焊桥对于引脚间距小的芯片如QFN、BGA两个焊盘之间的阻焊层如果被蚀刻掉就会形成“阻焊桥”。如果桥太细生产时可能断裂导致焊盘间短路。设计时需注意或明确告知板厂最小阻焊桥宽度要求。钢网层Paste Mask只针对表贴焊盘只有需要机器刷锡膏的焊盘才需要开钢网。插件孔、测试点、定位孔等不需要。钢网开口与焊盘关系通常1:1。但对于大焊盘或需要控制锡量的情况如散热焊盘可能会做网格状开口或缩小开口这需要在PASTEMASK层上单独绘制Shape来定义。5.5 高效工作流建议建立模板对于一个经常使用的板厂工艺在完成一次正确配置后将Artwork设置保存为一个.art文件在Artwork界面用Save按钮。下次新项目时可以直接Load这个模板然后根据新设计的层叠结构稍作调整即可能节省大量时间。版本控制在Gerber文件夹的README.txt中明确标注版本号如V1.2并与你的PCB设计版本号对应。每次发板前用CAM软件对比新旧版本Gerber的差异确认修改点是否正确体现。与板厂提前沟通对于复杂工艺如盲埋孔、盘中孔、厚铜、特殊要求如阻抗控制、特定油墨颜色最好在出图前就和板厂的技术支持沟通获取他们的设计规范和建议参数。他们的经验能帮你避开很多生产端的坑。出光绘这个工作繁琐但至关重要。它考验的不是创造力而是极致的严谨和细致。把这份指南当作你的检查清单一步步走下来慢慢就会形成自己的肌肉记忆和可靠流程。最终你会发现当你能自信地打包发出一套完美的Gerber文件时那种对项目全链条的掌控感才是硬件工程师真正的乐趣所在。