ARTICLE DETAIL

资讯详情

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

Cadence Allegro铺铜实战:从规则设置、动态铜技巧到DRC排查

Cadence Allegro铺铜实战:从规则设置、动态铜技巧到DRC排查 Cadence Allegro的铺铜说简单也简单不就是画个Shape再指定网络嘛。但说复杂它可能是整个PCB设计流程里最能体现功力、也最容易让新手抓狂的环节之一。我见过太多人原理图没问题布线也规规矩矩结果一到铺铜和DRC阶段满屏的报错根本无从下手最后只能一点点删掉铜皮重新来过。这篇文章我不打算只教你怎么点那几个菜单而是会把铺铜从底层逻辑到实战技巧再到DRC检查的真正含义和排查方法完整地捋一遍。特别是那些网上很少讲清楚的“坑”我会用自己的实际操作经验给你填平。1. 铺铜的本质与方案选型为什么你的板子需要铺铜先想明白一个问题你为什么铺铜这个问题想不清楚后面所有操作都是盲目的。铺铜的核心目的从电气和物理层面来分大概有四类。1.1 电气性能层面的需求最直接的需求就是为电源和地网络提供低阻抗通路。电源网络的电流路径早期设计可能是靠走线来拉的但走线有宽度限制而且过孔切换层的时候会产生额外电感。铺铜的本质是给电流提供了一个极宽的“高速公路”尤其是地平面它不仅是回流路径还能和顶层信号线形成完整的参考平面控制特征阻抗。其次是屏蔽和抑制电磁干扰。这一点很多工程师在设计时没有足够的意识。完整的地平面对于板内的EMC表现至关重要信号一旦跨越了被分割的地平面回流面积就会急剧增大辐射和串扰问题随之而来。而电源层的铺铜配合去耦电容能有效降低电源网络的交流阻抗抑制同步开关噪声。热词里有一条“电机上面铺铜会导致高EMC”这个观点我之前专门研究过。电机驱动板如果直接在电机本体上方大范围铺铜而且是悬空的没接到合适的参考地会造成一个巨大的寄生电容耦合路径开关节点的高频噪声会直接辐射出去。所以这类场景的铺铜要么明确接地要么用网格铜降低涡流要么干脆挖掉禁布。铺铜不是万能的要结合具体的电路特征。1.2 物理制造层面的需求从PCB制造角度整板铺铜还有两个隐性好处。一是均衡电镀电流密度如果板子上某个区域走线极度稀疏电镀时这里的铜层厚度会比其他区域偏薄影响载流能力。二是板材应力平衡大面积无铜区域在回流焊时因为基材和铜箔热膨胀系数不同板子容易发生翘曲。所以很多板厂的工艺规范里明确规定多层板每层铜箔覆盖率下限是80%这还真不是制造厂瞎立的规矩。1.3 动态铜与静态铜核心选型决策Allegro里面的铺铜Shape分为两种动态铜Dynamic Copper和静态铜Static Copper。这件事如果一开始选错了后面是在给自己挖坑。我个人的原则是除了极少数特殊场景99%的情况都用动态铜。动态铜会在你布线、打孔、移动器件时自动避让保持DRC干净。它有几个关键参数——避让间距Clearance、热焊盘连接方式Thermal Relief、孤岛处理规则等等都是可以随时调整的而且调整之后会自动更新整个板子的铜皮形状。静态铜则完全相反它更像是一块“死铜”不会自动避让需要你手动去修外形。改动周围走线后铜皮不会自己更新DRC错误只能靠人肉去发现。它的唯一优势是生成的铜皮形状完全确定某些特殊的高频射频区域或者需要精确控制形状的电源模块确实需要这种可控性。新手的常见误区是先用静态铜铺结果一改板子就崩这我很能理解因为我也是这么过来的。补充一点对新手可能比较重要Allegro和AD在铺铜逻辑上有个很大的不同AD的铺铜是往后放的、实心的多边形而Allegro的Shape拥有独立的边界和避让层级。你用惯了AD第一次用Allegro会觉得它“特别不听话”那是因为你还没掌握Shape的动态行为逻辑。建议一开始就只学动态铜建立正确的使用习惯。2. 铺铜前的关键准备规则与参数其实是成败的关键很多人的铺铜问题根源不在铺铜动作本身而是铺铜之前该配的规则没配好。Allegro里有一个很核心的规则管理器Constraint Manager你在铺铜之前至少要确认三个层次的规则否则后面DRC会让你怀疑人生。2.1 间距规则Clearance的层次设计Allegro的间距规则是分层的有全局Global、层级Class、网络Net之分。铺铜的时候应该遵守哪条规则取决于你给它分配的Net Class。这里我要重点提醒你的电源网络和地网络一定要提前设置专门的Net Class并赋予它们比信号网络更宽松的间距规则。为什么因为电源/地网络需要承载大电流往往需要大面积的铜皮如果它们的间距规则和信号线一样严格比如6mil那你在密集区域铺铜避让会变得极其丑陋——一堆锯齿和碎铜制造时还有蚀刻不净的风险。我习惯的设置是信号线常规间距6mil电源/地Net Class至少10mil起步如果是大电流的主干路径15到20mil也不过分。你也许觉得“那不是浪费面积吗”但等你看到DRC干净利落、板厂反馈良率高的时候就会明白这是最划算的取舍。2.2 约束管理器里与Shape相关的三个具体参数这个地方我要说清楚因为很多人蒙在鼓里。进入约束管理器以后找到Physical区域的Shape参数组你会看到三个特别重要的参数第一个是Minimum aperture这是Shape内部填充的最小孔径实际上决定了铜皮的“颗粒度”。参数太小铺出来铜皮边界非常精细、好看但数据量巨大电脑卡顿光绘文件也容易出问题参数太粗边界锯齿明显可能会侵蚀到走线的净空。我建议0.5mm线宽以下的板子设为0.1mm左右大板子可以适当放宽到0.2mm。第二个是Minimum neck铜皮与铜皮之间、铜皮与焊盘之间允许出现的最小“颈部”宽度。如果动态铜自动避让之后在两个焊盘之间留下了一条细如发丝的铜丝它的电流承受能力是极差的物理上也容易被蚀刻掉。这个参数就是用来过滤这种“寄生死铜”的我一般设在5mil左右。第三个是Minimum sliver铜皮的尖角锐角过滤参数。尖角铜皮在制造时会有药水残留风险在高压应用中是放电尖端最小尖角过滤能自动把这些锐角磨平。常规板子设置为0.5mil即可高压板可以加大到1mil甚至2mil。2.3 电源网络所需的铜厚与过流估算这是很多人会忽略但非常致命的问题。铺铜不是“铺上就行”你得算清楚这层铜能不能扛住预期的电流。经验估算公式是1盎司铜厚下1mm宽的铜皮大约能安全承载1A电流温升10°C的保守估计但是要留足余量我一般按0.5A/mm来估算。举个例子一条需要承载3A电流的电源支路1盎司铜厚理论最小宽度就是3mm左右。如果你只给它铺了2mm宽的铜皮DRC查不出来任何问题工作起来就等着发热吧。所以铺铜前按照电流需求规划好电源铜皮的几何宽度这件事只能靠人来判断软件是帮不了你的。这属于“规则之外的设计”。3. 基础铺铜操作指南把动态铜用明白确认好规则就可以上手操作了。这里我把整套流程按顺序拆开讲每个环节都会说到实际的操作要点。3.1 Shape添加画边界的方式与注意事项启动命令的路径是Shape Add或者直接左侧工具栏的图标。Allegro提供三种画法矩形Rectangular、圆形Circular和多边形Polygon。矩形没什么好说的圆形一般用于特殊屏蔽区域。最常用、也最有讲究的是多边形。画多边形的时候Allegro默认是“直边”模式但如果你需要画弧形边界比如板框拐角处要求铜皮与板边保持等距建议勾选Options面板里的Curve选项再画弧。这里我有个习惯所有铜皮边界尽量从板框或器件摆放的外圈偏移而来不用凭空去画。你可以先把板框层设为当前层然后使用Edit Z-Copy把板框复制成Shape设定合适的偏移值这样生成的铜皮外形和板边完全平行间隙均匀非常美观。那偏移值怎么给如果板框内部到铜皮需要空出1mm你可以先让Z-Copy生成一个向内偏移1.2mm的Shape然后再用Shape Edit的边界修改功能细调。最忌讳的是手动画出来的铜皮边缘歪歪扭扭离板边距离忽大忽小这在你出光绘给板厂时非常不专业。3.2 指定网络与热焊盘显示形状画完Allegro会弹出Assign Net对话框选好你要的网络。忘了指定网络也没关系铜皮默认是No Net,这在最后检查时是大事儿——孤立的铜皮没有任何电气意义还会造成EMC问题。选择Shape后右键Assign Net或者直接在Options面板里更改。然后你会看到铜皮上一个一个的小“十字”符号。很多人第一次看到会以为这是铺失败了其实这是热焊盘Thermal Relief的显示标记。动态铜默认为焊盘增加了热焊盘避让目的是焊接时热量不会瞬间被大面积铜皮导走。你需要确认这些十字的宽度和连接方式是否符合要求。3.3 动态铜参数的重置避让与连接选中任意动态铜右键选Shape Global Dynamic Params你会看到一张参数面板里面有几个必调项Dynamic Fill默认是Smooth这个是“最终平滑”模式推荐在设计中期开启实时看到最终效果。如果板子性能不够觉得卡顿可以先切到Rough等全部处理完再切回Smooth。但我想纠正一个操作误区不是最后检查的时候才切Smooth而是动态铜修改后必须有一个Smooth的过程否则出光绘时铜皮形状可能是旧的。Void Controls这里主要控制避让的精细度。Artwork format选Gerber RS274XMinimum aperture填你在约束管理器里设的那个值。厂家如果没有特殊要求就用默认但记得检查最小孔径不要小于光绘文件能识别的孔径否则板厂会莫名收到一堆异常圆弧数据。Thermal relief connects连接方式有三个基本选项。Orthogonal是正交连接默认十字Diagonal是对角斜连Full Contact是全连接。我建议常规电源网络用Orthogonal大电流主回路用Full Contact注意这里要单独给这条网络设置规则不能全局改否则所有焊盘都全连焊接热冲击会很高。Removed dead copper这个务必保持勾选。它的作用是自动删除孤立的死铜。为什么我强调必须勾因为孤岛铜皮在DRC里不一定被明确报错但它在高频下就是个悬浮天线极易耦合噪声在制板时还会因为没有网络连接而在电镀时产生电荷积聚风险。3.4 动态铜与静态铜的互相转换快速提一下如果你确实需要静态铜的确定性可以用选中铜皮后右键Change Shape Type来转换。但转换前一定要对全局做一次DRC检查因为转成静态后避让不会自动更新你需要手动处理所有冲突。我几乎不在电源板上用静态铜除非是射频微带线的精确阻抗控制区。4. 高级铺铜技巧从“能用”到“好用”的分水岭基础操作人人都会但板子的品质差异全看这些高级技巧玩得溜不溜。4.1 Shape优先级多铜皮重叠时的生存法则这块内容特别少有人讲但它是高频踩坑点。什么是Shape优先级简单说就是当两块不同网络的动态铜重叠时哪块铜让路、哪块铜存活的问题。Allegro里的每个Shape都有一个优先级Priority数值越大的铜皮层级越高。高优先级的Shape会“压在”低优先级Shape上面低优先级的会自动避让。举个例子你在一个区域里既要铺GND又要铺3.3V这两块铜皮挨得很近甚至重影如果没有设置优先级低层的GND铜皮就会在3.3V铜皮下方被“啃掉一块”导致GND网络在这里断流。实际设计的经验法则是底层大面积的参考地铜皮给一个高优先级比如100顶层小块的电源铜皮给低一些比如80。这样顶层电源Shape是主动的地铜皮在它下面自动断开不会短路。每次画完新Shape记得在Options或右键菜单里显式设置优先级不要用默认值。否则你很难预测两个Shape谁让谁DRC干净不了。4.2 Shape Void与禁止铺铜区军方禁区的掌控力有几种情况需要人工禁止铺铜进入某些区域天线净空区、变压器下方、高压隔离带、晶振下方、射频敏感器件的下方等。有两种实现思路。第一种是给铜皮画避让框——Shape Manual Void直接在铜皮内画一个空洞。它的特点是只影响这一块铜皮不改变全局规则。第二种是放置禁止区域——Setup Areas Shape Keepout在整个板子的约束里画一个区域所有铜皮都自动被禁入。我个人更推荐多用Shape Keepout而不是手动Void。为什么因为Keepout是规则层面的不管将来怎么重铺铜、改铜皮边界禁布区永远生效不会因为铜皮重画就忘了。手动Void一旦铜皮形状变了这个空洞位置可能就“悬空”了看着是洞实际没作用。这里还要延伸一句如果只是想让某一块铜皮避开一个器件而不是全局禁用理论上可以把焊盘的同网络属性临时修改但那样太绕了。直接在Shape上画Void然后把这个Void Shape复制到其他同网络的铜皮上是更高效的做法。4.3 高速与射频信号区的铺铜处理很多人铺铜是“一刀切”整板全铺这在频率上了GHz之后是会出大事的。高速信号线下方如果有完整的参考地那确实好但如果你在信号线两侧5mil的距离铺满铜铜皮会改变微带走线的等效介电常数导致阻抗偏离设计值。处理高速区的原则是信号层铺铜时距离信号线至少3倍线宽以上推荐5倍或者干脆在关键信号区域放置Shape Keepout挖掉信号线周边的多余铜皮。在阻抗控制板上差分对下方及两侧的铜皮间距更是有严格计算不能凭感觉铺。至于射频区域天线净空区很多参考设计明确指出天线区域下方及周围一圈绝对不能有任何铜皮连阻焊开窗之外的铜都要干净处理。这种情况就用Shape Keepout配合禁布区Route Keepout双保险一条命令都不能省。4.4 铜皮散热与过孔的协同大功率器件MOS管、电源芯片、LED灯珠下方的铜皮是主要散热通道要尽量让其完整增大通风路径。这里的关键技巧是在焊盘上打散热过孔阵列时不要让过孔直接放在焊盘正中央形成药水陷阱最好错开排列孔径控制在0.3mm到0.5mm之间孔间距控制在1mm到1.5mm。同时大电流过孔的载流能力有限你需要用多个过孔并联来降低电阻和电感。对于需要载流10A的铜皮我一般至少布8个0.5mm的过孔。只铺一大片铜而不打过孔电流在层间无法顺畅流动铜皮再大也白搭。4.5 网格铜低频屏蔽与高频涡流的取舍再提一下热词里那个“电机上面铺铜会导致高EMC”的场景。在高频开关节点附近如果需要铺铜很多时候用网格铜Hatched比实心铜更合适。网格铜能显著减小涡流损耗对于MHz以上开关噪声来说好比给噪声电流提供一条“碎石子路”而不是完整导体平面。设置方法动态铜参数里有一个Hatch style选项选择十字网格或对角网格并设定网格线宽一般10mil到20mil和网格间距一般20mil到50mil。注意网格铜的载流能力大约只有实心铜的一半左右所以大电流路径慎用网格铜。高频信号的屏蔽层也不建议网格铜屏蔽效能会下降。做到什么程度合适需要电气工程师自己做取舍这没有标准答案。5. Allegro铺铜后DRC检查报错只是开始读得懂才是关键DRCDesign Rule Check是铺铜后的第一道质检关卡。但DRC查出来问题不是直接修而是要先看问题类型再决定修法。很多时候的DRC报错恰恰是你规则设置不合理的体现。5.1 DRC的正确执行姿势在Allegro里铺铜后一定要先执行Display Status查看所有DRC错误标记。同时强烈建议执行Tools Database Check检查数据库本身的完整性尤其改过Shape后。DVDesign Validation检查也需要跑一遍重点看Unconnected Pins和Shape Violations。这里有个关键点动态铜修改后DRC结果在没执行Smooth前可能是不准确的。所以当你要检查时一定先把所有动态铜选中右键Update Shapes或者按快捷键CtrlF看你设置的快捷键等待完美避让全屏刷新完毕再打开DRC标记。顺序别搞反否则你看到满屏“Clearance”错误其中一半是假的。5.2 高频BRD报错的深度解读我最常碰到的、也是困扰新手最多的就是热词里那句drc rtstat-6 partial route conflicts。这个报错的本质是有584条网络存在部分布线冲突也就是网络没有完全连通或者某段走线被规则判定为无效路径。我可以负责任地告诉你这个报错90%和铺铜有关系。最常见的情况是你有一大片动态铜但同一网络被另外一块高优先级Shape或Keepout切成两段导致它实际是“断路”状态。你肉眼看铜皮是连着的可DRC会告诉你没连上。排查方法是把报告里的网络列表导出来逐一高亮这些网络查看铜皮是否有断裂点。另一个常见原因是某一段走线网络名称和铺铜网络名称不一致比如走线叫3V3_SYS铜皮叫3V3DRC判定为两个独立网络自然就有收入冲突。5.3 铺铜常见DRC错误分类解析我把这段时间遇到的典型问题整理成了表格方便你对照排查DRC错误类型典型报错信息常见原因解决方案Clearance violationShape 1 and Shape 2 overlap or touch两块同层铜皮避让间距不足检查净距规则降低Shape优先级手动Void或改shape边界Unconnected pinsNet has no connectivity焊盘没有连线铜皮网络名不匹配确认网络名检查连接方式是否为Full ContactUnrouted cablePartial route conflicts网络布线未完成铜皮断裂更新Shape后重查连通性寻找断点补线Island / Isolated shapeIsland area found孤岛铜皮产生打开Removed dead copper手动补Void或连接Minimum mask clearanceSoldermask sliver阻焊层开窗区域小于制造极限调整阻焊开窗让铜皮避让焊盘间距更大看到满屏DRC错误先别慌逐条分类。真正的“铺铜灾难”往往集中在第一行也就是Clearance violation。这种错误通常是你复制了别人的Shape却没有同步它源网络的规则或是两块Shape共用同一个Zone导致难免相交。5.4 检查铜皮时容易被忽略的细节即使DRC报Clean了你也不能完全撒手不管。有几个必须肉眼确认的地方铜皮边缘是否有尖锐的凹角Notch。这种凹角在高压下会集中电场最好手动拉成圆滑过渡。铜皮到定位孔、安装孔的距离是否足够。很多结构件需要金属螺柱如果螺柱孔周围没有足够的铜皮净空装上金属螺柱后孔璧和铜皮一接触直接短路。大面积铜皮与小焊盘的连接是否是热焊盘。如果不是回流焊时器件一侧极容易出现立碑或虚焊。尤其在混装板上小电阻电容的热容量差异特别大。6. 光绘输出前铜皮必须过的最后一关铺铜在电脑上看着漂亮能不能变成实实在在的PCB还得看光绘文件是否完美。6.1 Gerber导出前的Shape检查在Allegro中准备光绘文件时有一项不能跳过Manufacture Artwork。打开这个窗口后你要仔细检查每一层对应的光绘文件名和格式。针对铜皮要确保所有Shape都能完整转换为Gerber 274X格式不要存成旧的RS-274-D格式这个没有内嵌孔径信息容易导致铜皮与小焊盘之间出现莫名其妙的短路。还要确认Film Side正片还是负片。如果你是正片出图绝大多数情况铜皮在光绘里就是实心铜如果是负片铜皮就是空洞。一旦在这里搞反你的板子生产出来就是一块全部短路的光板。我建议新手一律使用正片简单直观。负片主要在传统大板电源层时用现在Gerber 274X普及後意义已不大了。6.2 铜皮与板厂的沟通要点下单前最好给板厂留一版.art_aper或.art_param格式的光绘参数文件里面包含了孔径和层叠信息。同时对板厂特别说明以下几点铜皮与走线的最小间距如果没有特别说明很多板厂会按自己的最小工艺极限来导致某些区域蚀刻过度。需要做铜厚加厚比如2oz的区域是否已经预留了足够的线宽和间距。加厚铜的侧蚀效应更严重你的铜皮边缘可能会比设计值缩窄。表面处理工艺如果是沉金板铜皮的平整度影响很大动态铜Smooth没跑好边缘会有毛刺沉金后可能出现金属颗粒残留。7. 高频常见问题速查铺铜多年这些坑我替你踩遍了最后这一部分我把这些年被问得最多、自己踩过也最深的坑汇总一下方便你直接对号入座。7.1 铜皮只有轮廓没有填充这个情况非常经典。很多人刚导入板子或者从低版本迁到高版本后发现铜皮显示为一个框中间是空的。这不是没有铺上而是Allegro的显示和填充状态问题。解决办法有两个第一检查动态铜参数里的Fill是否被切到了Rough或Disabled。Disabled状态下Shape就只显示轮廓必须切回Smooth。第二如果已经是Smooth还是不显示检查一下是否是数据库问题执行一次Database Check然后更新所有Shape。99%的“只有轮廓没内容”问题这一步就能解决。7.2 修改电路后铜皮不会自动避让很多人在改完走线、移完器件后发现原有的铜皮没有更新避让DRC炸了。其实是因为Allegro的动态铜不会每时每刻自动重算你需要手动触发更新。选中有关联的Shape右键选择Update Shapes或者直接在菜单里执行Shape Update All Shapes。更推荐在编辑结束后统一执行一次否则频繁的全局更新会很卡。7.3 同网络焊盘与铜皮连接不上有时候DRC报告某个电源网络的引脚未连接可你的铜皮明明覆盖了这个引脚。问题往往出在两个地方一是该焊盘的Thermal Relief连接被设置为None导致铜皮和焊盘完全隔离二是焊盘的Shape Conductor层被遮蔽或规则设置错误导致该区域不开窗。处理方法是检查约束管理器中该网络的Thermal relief connects设置并把连接方式改成Orthogonal或Full Contact。如果是BGA类器件还可能是信号引脚在BGA内层断连导致外表看起来铜皮覆盖了实际上网络不通需要重点查看BGA扇出区域。7.4 死铜与孤岛的终极处理自动删除死铜虽然开着但还是会有些“漏网之鱼”。比如一块孤岛铜内部包含几个过孔它是有网络属性的软件不认为它是死铜但它确实没有载流意义。处理方法是把这块孤岛铜通过Shape Void或者Shape Delete直接删掉或手动加一小段走线把它和主铜皮连接起来。我的习惯是尽量连接而非删除以保持铜皮覆盖率给板厂一个“这板子铜够多”的信号。7.5 从Allegro转PADS或AD时的铜皮兼容问题偶尔会有协作项目需要把Allegro文件转给其他工具处理。这里要特别小心Allegro的Shape到了别的EDA里很可能会变成一组独立的多边形对象优先级、热焊盘等属性全部丢失。转出前最好对所有铜皮都做一次Smooth并输出ODB或GenCAD格式这两个中间格式对Shape的保留度比Gerber好得多。如果对方只要简单查看那就出光绘或PDF最保险。千万不要直接拿.brd转出的PADS文件去搞铺铜微调结果基本都会让你崩溃。8. 写在最后铺铜的思路比技巧本身更重要我个人在实际操作中的体会是铺铜这件事真正难的不是怎么画而是怎么在画之前就想清楚它是用来干什么的。你是在做电源通道是在做回流参考地还是在做局部屏蔽目标不同参数完全不一样。Allegro给了你极其强大的工具链但工具链的每一环都需要人去决策——优先级怎么设、参数怎么调、哪里该禁布这些都需要结合电路功能来思考。这也是为什么两个工程师用同一个板子文件铺出来的效果会截然不同。最后再分享一个小技巧如果你发现自己的板子一到铺铜就各种繁琐的DRC问题试着别急着动铜皮先把下面三件事按顺序做一遍——更新所有Shape并Smooth、重跑DRC、根据报错类型逐条分类。你会发现那些看起来密密麻麻的错误提示真正需要你动手解决的其实就那么几类剩下的全是参数没配好引起的连锁反应。铺铜是一场持久战多踩几次坑提前规划好每个区域的用途你的Allegro功力自然就上来了。
返回列表