
1. 问题引入Gerber输出时那个令人困惑的“圆整”警告如果你正在使用Cadence SPB 17.4的Allegro工具进行PCB设计并且在生成Gerber文件Artwork的最后一步弹出了一个让你心头一紧的警告窗口标题赫然写着“Artwork will be rounded down”那么恭喜你你并不孤单。这个看似不起眼的警告是许多从其他EDA工具如Altium Designer转向Allegro的工程师或者初次深入使用Allegro高级输出功能的同行们几乎都会踩到的一个“认知坑”。我第一次遇到这个提示时也愣了一下。“圆整”是精度丢失了吗我的线宽会不会从5mil变成4mil我的钻孔数据会不会出错毕竟Gerber文件是交付给板厂生产的“金标准”任何一点歧义都可能意味着昂贵的打板失败。这个警告没有提供“是”或“否”的选项只有一个“确定”按钮仿佛在说“情况就是这么个情况你看着办。” 这种不确定性对于追求严谨的硬件工程师来说简直是一种折磨。实际上这个警告并非指你的设计数据被粗暴地截断或产生了错误。它揭示的是Allegro在处理Gerber输出时其内部数据格式与最终RS-274X Gerber格式之间一个关键的、也是必须进行的转换规则。理解这个“圆整”背后的机制不仅能让你坦然点击那个“确定”按钮更能让你主动掌控Gerber输出的精度确保从设计端到生产端的数据传递无损且精确。本文将彻底拆解“Artwork will be rounded down”的来龙去脉从原理到实操让你下次再见此提示时心中了然操作有据。2. 核心原理数据库单位、输出精度与“圆整”的本质要理解这个警告我们必须深入Allegro数据管理的底层逻辑。这涉及到三个核心概念数据库单位Database Unit、用户界面单位Display Unit和Gerber格式的精度限制。2.1 Allegro的精度世界内部存储与外部显示Allegro PCB Editor拥有一个非常高精度的内部数据库。这个数据库存储坐标、尺寸等数据时使用的是数据库单位。在SPB 17.4及更早版本中这个单位通常是纳米nanometer或微米micron具体取决于你创建设计时的设置。这是Allegro进行所有计算如DRC检查、间距分析、铜皮填充的基石保证了极高的计算精度。而我们用户在界面上看到的比如线宽5mil焊盘尺寸0.8mm则是用户界面单位。这是数据库单位经过转换后以我们熟悉的mil千分之一英寸、mm毫米等形式显示出来的。你可以随时在“Setup” - “Design Parameters” - “Design”标签页的“Size”区域在“User units”下拉框中切换显示单位但这并不改变数据库内部存储的精确值。关键点在于无论你在界面上设置显示为什么单位Allegro内部始终以那个极小的数据库单位如纳米来记录和运算。这就好比你的银行账户余额内部是以“分”来存储的但App上显示给你看的是“元”。2.2 Gerber的精度天花板格式的固有限制当我们把设计导出为Gerber文件时情况发生了变化。标准的RS-274X Gerber格式也是目前最通用的格式有其自身的坐标表示系统。它使用一个“整数坐标”系统并通过一个“格式语句”来定义每个整数代表多少实际长度。这个格式语句通常看起来像这样%FSLAX36Y36*%。这里的“X36Y36”就是关键第一个数字3代表整数部分的位数。第二个数字6代表小数部分的位数。因此“X36Y36”意味着X和Y坐标都用6位小数来表示即精度达到微米micron级因为1 micron 0.001 mm 对应3位小数6位小数则更高。但问题来了Gerber格式的精度是由这个格式语句定义的有限小数位数决定的。而Allegro的内部数据库精度纳米级远高于任何常规Gerber格式所能表达的精度通常是微米级。2.3 “圆整”发生的时刻当高精度向低精度转换现在让我们把两条线连起来。生成ArtworkGerber的过程本质上是一个数据转换和输出的过程Allegro从它的高精度内部数据库纳米级中读取图形元素的坐标和尺寸数据。它需要将这些数据转换为符合RS-274X格式的、具有特定小数位数如6位的整数坐标。在这个转换过程中对于那些超出Gerber格式设定精度的、更细微的数据部分比如纳米级的尾数Allegro必须进行处理。Allegro采取的策略就是“向下圆整”。这意味着如果一个内部坐标值在转换为Gerber格式时其超出精度的部分需要被舍入Allegro会选择向下取整向负无穷方向舍入而不是四舍五入或向上取整。举个例子假设Allegro内部一个点的X坐标是1.23456789 mil假设数据库单位能存储这么多位。你设置的Gerber输出格式是X35Y35即5位小数因为1 mil 0.001 inch 5位小数对应0.00001 inch的精度。转换时Allegro需要把这个数变成5位小数的格式1.23456???。真实的1.23456789介于1.23456和1.23457之间。“向下圆整”意味着Allegro会将其取为1.23456而不是更接近的1.23457。这就是“Artwork will be rounded down”警告的全部含义它是在告知你由于输出格式的精度限制你的超高精度设计数据在生成Gerber时其坐标值将被系统性地向下舍入到指定的精度级别。注意这里的“圆整”主要影响的是图形元素线、焊盘、铜皮轮廓的顶点坐标位置。对于线宽、焊盘尺寸等其数值通常也会经历同样的精度转换过程。只要你的设计规则线宽、间距与Gerber输出精度设置匹配得当这种圆整带来的尺寸变化通常在亚微米级别对于绝大多数PCB生产其工艺能力在mil/微米级来说是完全可以忽略不计的不会导致DRC违规或生产问题。3. 为什么是“向下圆整”设计安全边的考量你可能会问为什么Allegro固执地选择“向下圆整”Floor而不是更常见的“四舍五入”Round这背后蕴含着Cadence对于PCB设计可靠性和生产安全性的深层考量。我们可以从几个关键设计要素来理解这个选择的优越性3.1 保证电气间距ClearancePCB设计中最核心的规则之一是不同网络之间的电气间距。假设两条走线的边缘在Allegro内部数据库中精确计算出的间距为5.0001 mil刚好满足5mil的设计规则。如果采用四舍五入到1mil精度两条走线的坐标可能一个被舍、一个入导致Gerber中显示的间距变为4.9999 mil从数据上看就违反了设计规则。虽然板厂可能发现不了但这在数据上是一个瑕疵。而采用“向下圆整”走线坐标只会向内朝向自身中心收缩不会向外扩张从而确保最终的Gerber数据所表现出的间距只会等于或大于原始设计值绝不会变小。这从根本上杜绝了因数据转换导致间距违规的风险。3.2 维持走线宽度Line Width对于走线宽度同理。一根设计为5.0001 mil的走线如果四舍五入可能变成5 mil或者5.1 mil存在变窄的风险。而“向下圆整”会确保走线在Gerber中的宽度只会等于或小于设计值。虽然这听起来像是走线变细了但考虑到生产中的蚀刻工艺通常存在“侧蚀”Etch Factor即实际蚀刻掉的铜会比掩膜开口略多导致走线变细。那么一个在数据上就已“保守地”略细的Gerber结合生产侧蚀最终成品反而更可能接近你的设计目标值。这是一种“负负得正”的稳健设计思想。3.3 封装焊盘与阻焊Solder Mask对于焊盘“向下圆整”意味着焊盘图形在Gerber中可能略微向内收缩。这同样是一种保守策略。它确保了阻焊层开窗Solder Mask Opening相对于焊盘的位置关系更加安全——阻焊层开窗通常要比焊盘大一些如每边大2mil以防止阻焊上焊盘。焊盘数据的略微内缩使得这个阻焊间隙在数据上看起来更大进一步降低了阻焊误覆盖焊盘的风险。3.4 与制造网格Fabrication Grid的契合PCB生产设备如激光光绘机、钻孔机都有其最小步进单位即制造网格。虽然现代设备精度很高但将数据对齐到一个更保守的网格上有利于提高生产良率。“向下圆整”可以看作是一种将数据对齐到“安全侧”虚拟网格的操作使得数据对生产波动更不敏感。总结来说“向下圆整”是一种保守的、偏向于设计安全的数据处理策略。它牺牲了理论上可能的“最精确”表示换来了更高的数据可靠性和生产鲁棒性。它确保了Gerber文件所描述的图形绝不会“溢出”你原本设计的边界从而在数据层面为制造工艺波动预留了安全空间。当你看到这个警告时可以将其理解为Allegro在说“我将以最保守的方式处理你的高精度数据以确保输出文件的生产安全性。”4. 实战应对如何正确设置与验证Gerber输出理解了原理我们就能主动操作而不是被动地接受警告。我们的目标不是消除这个警告因为只要内部精度高于输出精度警告就必然存在而是通过合理设置使得“圆整”的影响可控且可知并最终验证输出文件的正确性。4.1 关键设置定义正确的输出格式Format这是控制“圆整”程度的最重要环节。设置路径在生成Artwork的界面中打开“Artwork Control Form”Display - Color/Visibility对话框中的 “Artwork” 标签页或直接执行Manufacture - Artwork命令。在“General Parameters”标签页下找到“Output format”部分。这里的“Format”下拉框就是关键。常见的格式有4.5整数部分4位小数部分5位。单位是英寸时精度为0.00001 inch (0.01 mil)。这是非常高的精度。3.5整数部分3位小数部分5位。精度同上但整数部分范围小一些。3.4整数部分3位小数部分4位。精度为0.0001 inch (0.1 mil)。2.5整数部分2位小数部分5位。精度为0.00001 inch。如何选择基本原则输出格式的精度应高于或等于你的设计最小精度。如果你的设计最小线宽/间距是5mil (0.005 inch)那么使用3.50.00001 inch精度或3.40.0001 inch精度都绰绰有余。3.4的精度0.1mil已经能满足绝大多数消费电子和工业级PCB的需求。经验之谈我通常使用3.5。它提供了0.01mil的精度远高于常规生产需求同时文件大小比4.5更友好。2.5虽然精度也是0.01mil但整数部分只有2位意味着你的PCB尺寸不能超过99.99999 inch对于超大板子可能不够用。3.5是一个在精度和范围上都很平衡的选择。重要提示不要盲目追求最高精度如4.5。更高的精度意味着Gerber文件中的坐标数字更长文件体积会显著增大但并不会给生产带来任何可感知的好处因为板厂的光绘机物理精度和工艺能力是有限的。过高的精度只是增加了数据处理的负担。4.2 配套设置精度与偏移量在“General Parameters”标签页还有两个相关设置“Coordinate type”选择Absolute绝对坐标。这是最通用、最少出错的方式。“Output units”选择你设计时使用的单位Inches或Millimeters。这必须与你的“User units”以及Gerber格式的定义一致。如果设计是mil这里选Inches格式3.5就对应inch单位下的5位小数。“Offset X/Y”通常保持为0。除非你有特殊需求需要平移整个Gerber输出原点。设置好这些之后你为每个光绘层如TOP, BOTTOM, GND, POWER等定义的“Film”参数如未定义线宽、光圈文件关联等才会基于这个统一的精度框架生效。4.3 生成、检查与验证流程生成Gerber在“Artwork Control Form”中勾选所有需要输出的光绘层点击“Create Artwork”。这时“Artwork will be rounded down”的警告可能会出现。确认你的格式设置正确后点击“OK”即可。查看日志文件生成完成后务必查看同目录下生成的photoplot.log文件。这个日志文件会详细记录每一层光绘的输出过程包括使用的光圈、格式、以及任何错误和警告。对于“圆整”警告这里可能会有更具体的信息。更重要的是你需要检查是否有真正的错误如“Aperture not found”等。使用Gerber查看器进行视觉验证这是至关重要的一步。不要相信Allegro自带的“预览”。使用专业的第三方Gerber查看器如免费的ViewMate、GC-Prevue 或商业软件CAM350、Valor等打开输出的所有Gerber文件。检查内容层对齐叠放所有层检查钻孔层Drill Drawing, NC Drill是否与各线路层对齐。图形完整性检查有无缺失的走线、焊盘、铜皮。丝印清晰度检查丝印层是否有重叠、缺失。阻焊与焊盘关系检查阻焊层是否正确地开窗且比焊盘每边大出预定值。为什么必须用第三方查看器因为Gerber文件是交付给板厂的最终数据。第三方查看器解读这些文件的方式更接近板厂CAM工程师所使用的软件。用它来验证等于从板厂的视角检查了一次数据能最大程度发现潜在问题。生成IPC网表并进行对比这是电气连通性的终极验证。在Allegro中执行Tools - Reports 选择“IPC-D-356A”报告并生成文件。同样在CAM软件如CAM350中也可以从Gerber和钻孔文件中提取出IPC网表。将这两个网表进行对比可以验证Gerber数据是否忠实地反映了原始设计的网络连接关系确保没有因输出过程导致的开路、短路。经过以上四步你就能完全掌控Gerber输出并对“圆整”的影响有清晰的把握。这个警告将从一个令人不安的谜团变成一个确认数据正在被安全处理的友好提示。5. 进阶议题精度不匹配引发的典型问题与排查虽然“向下圆整”本身是安全策略但如果设计精度、Gerber输出精度、板厂生产能力三者严重不匹配或者设置存在其他错误仍然可能引发问题。下面是一些典型场景和排查思路。5.1 问题DRC检查通过但Gerber中显示间距违规现象在Allegro中运行DRCDesign Rule Check全部通过但将Gerber文件导入CAM软件后软件的内部分析提示某些区域间距小于规则值。根因分析设计精度设置过高你的设计可能是在非常高的精度下进行的例如数据库单位是纳米且你绘制时使用了非网格化的坐标。Gerber输出精度设置过低你输出的Gerber格式可能是2.3精度0.001 inch即1mil。当高精度设计向低精度Gerber转换时“向下圆整”会导致相邻图形的坐标被不同程度地舍入。虽然每个图形自身是向内收缩的但两个相邻图形收缩的“量”可能不同在极端情况下可能在CAM软件的计算中显示出比原始设计更小的间隙。注意这通常是显示和计算层面的差异并非真正的DRC错误。CAM软件的网格化处理一些CAM软件在导入Gerber后会基于自身的显示网格重新采样图形这可能进一步放大视觉上的差异。解决方案统一精度体系确保你的Gerber输出精度如3.5 0.01mil远高于你的最小设计规则如5mil。一个通用的经验法则是Gerber精度至少要比最小设计规则高一个数量级。例如最小规则5mil (0.005 inch) Gerber精度至少设为0.0005 inch即3.4格式的0.1mil精度推荐使用0.0001 inch (3.4) 或更高。在Allegro中启用“Snap to grid”在绘制关键图形如板框、密集区域走线时强制对齐到设计网格如1mil网格。这能保证坐标值本身就是输出精度的整数倍从源头上减少圆整带来的随机性。以CAM软件为准进行最终校验如果CAM软件提示间距为4.9mil规则5mil而Allegro DRC通过。首先在CAM软件中放大查看确认是否是视觉误差。如果确实很近应以CAM软件的分析结果为准返回Allegro微调走线。因为板厂看到的就是CAM软件里的样子。5.2 问题异形焊盘或铜皮在Gerber中变形现象在Allegro中定义的复杂形状焊盘如泪滴形、自定义多边形或动态铜皮Dynamic Shape在Gerber查看器中边缘出现锯齿或阶梯状不够光滑。根因分析Gerber格式的本质限制RS-274X Gerber描述图形是由线段直线和圆弧部分圆弧构成的。一个光滑的曲线如一个圆在Gerber中是由许多很短的直线段线段来逼近的。Allegro的转换算法当Allegro将内部的平滑曲线如一个圆形的Flash焊盘转换为Gerber时它需要决定用多少段直线来逼近这个圆。这个“分段数”受到输出精度和内部算法的共同影响。精度过低导致分段粗糙如果输出格式精度设置很低如2.3那么每个线段的端点坐标可用的数值粒度就很粗导致逼近曲线的线段数量少且端点位置不精确从而产生明显的锯齿感。解决方案提高Gerber输出精度这是最直接有效的方法。将格式从2.3提升到3.5或4.5为曲线端点坐标提供了更精细的定位能力Allegro也能用更多的线段来生成更光滑的逼近锯齿感会大大减轻。在Allegro中优化Shape参数对于动态铜皮可以在“Shape” - “Global Dynamic Params” - “Clearance”标签页下调整“Smooth”和“Arc approximation”设置。增加“Smooth”值如从0.5改为0.1会使铜皮轮廓更平滑但会增大文件大小和处理时间。对于Flash焊盘复杂的Flash焊盘最好在制作封装时就使用“Padstack Editor”中的“Shape”功能来精确绘制而不是依赖后期转换。确保焊盘形状由标准的几何图形矩形、圆形、椭圆形或精确的多边形构成。5.3 问题钻孔文件NC Drill与线路层对不上现象Gerber线路层看起来正常但导入钻孔文件后发现孔的位置有偏移或者孔径不对。根因分析这个问题通常与“圆整”警告关系不大但同属Gerber输出范畴且后果严重必须厘清。单位不匹配这是最常见的原因。Allegro中设计可能用了mil但输出Gerber时选了inches而输出钻孔文件时却误选了millimeters。格式不匹配Gerber层用了3.5格式而钻孔文件用了2.4格式导致精度不一致。坐标类型不匹配Gerber层用了绝对坐标Absolute而钻孔文件用了相对坐标Incremental。输出原点不一致Gerber和钻孔文件使用了不同的输出原点Offset。解决方案标准化流程单位统一在“Artwork Control Form”的“General Parameters”和“NC Parameters”对话框中明确设置相同的“Output units”。通常与设计单位保持一致。格式协调钻孔文件的格式如3.5最好与Gerber层保持一致。在“NC Parameters”对话框中设置。坐标与原点均使用“Absolute”坐标和相同的“Offset”通常为0,0。在输出钻孔文件时使用“Auto”选项让其自动匹配设计原点或手动指定与Gerber输出一致的原点。强制验证在CAM查看器中必须将钻孔层.drl或.txt文件与所有线路层叠加显示并仔细检查每一个孔是否都准确地落在焊盘中心。可以使用查看器的测量工具测量几个关键孔的中心到附近线路的距离与设计值进行比对。通过系统性地理解“圆整”原理、正确设置输出参数、并严格执行验证流程Allegro的Gerber输出将从一个充满警告的黑盒变成一个你可精准操控的可靠数据桥梁。那个“Artwork will be rounded down”的提示最终会成为你设计流程中一个令人安心的质量确认点。