
1. 从铺铜铺了个寂寞说起为什么铜皮挖空比铺铜本身更考验功力做PCB设计这些年我见过太多新手甚至是有几年经验的设计师在铺铜阶段挥洒自如一到铜皮挖空就手足无措。说起来也挺有意思——铺铜是把铜填进去谁都会但该把铜抠出来的时候很多人反而不知道从哪儿下手、抠多大、用什么指令、抠完怎么验证。先把这个概念说清楚。所谓Allegro铜皮挖空就是指在已经铺好的动态或静态铜皮上人为地创建一个或多个空洞区域让铜箔在这些区域不覆盖、不连接从而实现电气隔离、阻抗控制、结构避让等目的。英文术语里对应的是Shape Void也有叫Shape Cutout或者直接叫Route Keepout的容易搞混的就是这几个概念。这篇东西解决什么问题三个层次第一给你一套完整的铜皮挖空操作全流程从选择命令到画边界到最终成型每一步都讲透第二把Allegro 17.4、22.1和最新的24.1这几个版本之间的操作差异摆出来别让你拿着老版本的肌肉记忆去新版本里抓瞎第三把我这些年踩过的坑、总结出的验证方法、以及什么时候该用挖空、什么时候不该用的工程判断一并倒给你。说实话铜皮挖空这件事看起来就是个画个圈把铜切掉的简单操作但实际项目里翻车率极高。我见过有人把电源芯片底下的散热焊盘周围铜皮全挖空了芯片一上电直接过热保护也见过有人在高速信号线旁边该挖空隔离的地方没挖导致串扰超标、EMI测试不过。所以这绝对不是一个会点鼠标就行的活儿背后牵扯到对信号完整性、电源完整性、散热设计、制造工艺的综合理解。先提醒一句这篇文章默认你用的是Allegro PCB Designer不管你是17.4、22.1还是24.1基本逻辑是相通的但菜单位置和交互方式有差异这些差异我会专门拿出一章来讲。如果你用的是其他EDA工具操作指令可能不一样但设计思路完全可以直接迁移。2. 挖空前必须想明白的三件事为什么挖、挖哪里、挖完会怎样2.1 为什么挖挖空的工程目的决定了操作方式铜皮挖空不是装饰性操作每一个挖空区域背后都对应着一个明确的工程诉求。我梳理了一下常见的挖空目的大概有这么几类。第一类是阻抗控制需要。微带线、带状线的阻抗主要由线宽、介质厚度和参考平面决定但如果铜皮离走线太近会导致阻抗偏低。这时候在走线两侧对应的铜皮上挖出一条隔离带就能把有效介质环境固定下来让阻抗更接近计算值。典型场景是射频走线、USB差分对、HDMI等高速接口的阻抗控制。第二类是电气隔离需求。不同网络之间需要保持安全间距尤其是在高压区域。比如大功率电源板上初级侧和次级侧之间、交流输入端和直流输出端之间安规要求爬电距离和电气间隙这时候在铜皮上挖空是满足安规距离的重要手段。还有模拟地和数字地的分割、敏感模拟信号区域的铜皮去除这些都是为了减少干扰耦合。第三类是结构避让与装配需求。比如板子上有定位孔、螺丝孔、卡扣槽或者某些结构件需要穿过PCB这些区域的铜皮如果不挖掉安装时可能短路或者结构件直接压坏铜皮。另外板边、拼板工艺边、V-cut区域附近通常也需要挖空避免分板时铜皮被撕裂、起翘。第四类是天线净空区。板载天线、蓝牙天线、Wi-Fi天线周围往往要求铜皮净空否则天线辐射特性会严重劣化。这时候需要在天线周围的铜皮上挖出一个特定形状的禁布区。这一条在IoT产品里几乎每天都遇到。还有一个容易被忽略的场景——调试与测试。有些信号测试点附近如果大面积铺铜探头一搭上去就可能短路或者测量值受铜皮寄生参数影响。预留挖空区可以给调试留出干净的测量环境。你发现了没有光是为什么挖就已经有五个完全不同的方向。而每个方向对应的挖空边界画法、间距设置、验证方式都不一样。所以我强烈建议你在动手之前先在纸上或者文档里把挖空的目的写清楚。别笑我见过太多的案例是我也不知道当初为什么挖反正就挖了等到改版的时候这些莫名其妙的空洞成了巨大的坑。2.2 挖哪里边界位置和形状尺寸怎么定才算专业确定挖空位置说穿了就是一句话——以你要保护或隔离的对象为中心给它让出足够的安全空间。但这个足够到底是多少就有讲究了。以高速差分线的阻抗控制挖空为例假设你走的是100Ω差分对线宽6mil线间距8mil介质厚度4mil叠层结构是L1信号层、L2完整地平面。如果你在L1层走线两侧铺了铜且铜皮边缘距离走线小于等于20mil那么阻抗会受到明显影响实测可能掉到85Ω甚至更低。这时候正确的做法是在差分对两侧各挖出至少一个包络区域让走线两侧的铜皮边界往后退退到距离走线中心至少3倍线宽以上的地方。也就是说挖空边界距离走线中心大约18到20mil起步如果空间允许我一般会留到30mil以上效果更稳。再比如安规爬电距离的挖空这就要看你的产品适用什么标准。以IEC 60950-1现在很多被IEC 62368-1取代为例220V交流输入初级侧和次级侧之间基本绝缘要求的爬电距离一般在6.3mm以上具体取决于污染等级和材料组别。这里的爬电距离是指沿着绝缘表面测量的最短路径所以你在铜皮上挖空实际上是在物理上切断这条由铜皮提供的便捷通路——把焊盘与焊盘之间的大面积铜皮挖掉表面绝缘路径就变成了直线距离反而更容易满足。这种情况下挖空的边界要让两个不同网络的最短表面距离不小于规定值同时还要考虑制造公差我一般会多留15%到20%的余量。天线净空的挖空就更有意思了它不是一个简单的矩形或者圆形而是要根据天线的辐射方向图来设计净空区域的形状。全向天线的话净空区通常是天线周围一个特定半径的圆定向天线或者PIFA天线则要根据天线走线方向预留特定的多边形区域。这种挖空往往要反复仿真验证不是一次就能定下来的。总的来说挖空边界确定的原则可以归纳为三条以被保护对象为中心把该对象周围的铜皮让开让出距离遵循相应设计规则阻抗线宽倍数、安规距离、天线净空半径等挖空边界尽量平滑避免尖锐的内角因为尖锐角在蚀刻时容易出现铜皮残留或过度腐蚀也会造成电场集中挖空区域之间留够间隔避免挖得太多导致大面积的铜皮被切成孤岛尤其是电源平面的碎块化容易引发直流压降和回流路径问题。2.3 挖完会怎样先预测影响再动手操作这一步很多人会忽略但恰恰是资深工程师和普通工程师的分水岭。挖空对电气性能的影响是多方面的。首先是回流路径问题。高速信号的回流电流总是沿着阻抗最小的路径走也就是尽可能贴着信号走线的下方或者旁边。如果你在信号走线的回流层上挖了个大洞回流电流就得绕道绕道的代价就是回流路径面积增大、回路电感增大、串扰和辐射随之增加。所以如果你在L2层参考地平面层挖空来避让结构件但L1层正好有高速信号跨过这个挖空区域那等于人为给高速信号挖了个回流断崖信号质量必然恶化。这种情况下要么调整挖空位置要么在信号跨过挖空区域的旁边加一个回流地过孔帮助回流电流跳过空洞。其次是散热问题。铜皮的导热性能很好大面积铜皮本身就是一种散热通道。如果你把功率器件正下方和周围的铜皮都挖空了散热路径就断了器件温升会明显增大。我之前做过一个DC-DC电源模块刚开始为了追求焊盘间的电气隔离把电感底下的铜皮挖得干干净净结果整板实测温度直接比仿真高了12℃后来在电感下方保留了一块经过计算的地铜皮并打了阵列过孔辅助导热温度才回到正常范围。所以功率器件底下的挖空一定要和散热设计一起评估别闷头挖。再次是制造工艺问题。铜皮挖空后会形成一些细长的铜皮条带或者孤立的铜皮岛。在PCB制造过程中孤立铜皮如果没有连接到任何网络在蚀刻时容易出现侧蚀过度导致铜皮翘起或脱落。这个时候解决方案不是不挖而是在挖空的同时在某些小铜皮岛上加一些工艺连接筋teardrops或者支撑铜条来固定它。当然如果是真正的死铜还是要删除或者通过过孔连接到地网络。最后是电磁兼容问题。合理的挖空可以用来隔离干扰源和敏感电路。比如晶振下方对应的地层挖空可以减少晶振的寄生电容耦合起振更容易、频率更准。又比如在某些高频开关节点下方的铜皮挖空可以减少开关噪声对邻近敏感走线的容性耦合。但挖空位置不当比如在滤波电容底下挖空反而会破坏高频回流路径让滤波效果变差。所以我的习惯是在Allegro里动手挖空之前先花五分钟在脑子里过一遍——这个区域下面和周围的信号层是什么有没有高速线跨过这个区域有没有功率器件需要散热挖完之后回流路径从哪里走这五个问题想清楚了再打开软件操作效率高且不容易返工。3. 逐步拆解Allegro铜皮挖空操作全流程3.1 操作前的准备工作层叠确认、开关状态与文件保存正式操作之前有几件事必须做否则操作过程中容易出错或者被卡住。第一件事确认当前工作的层。看起来是废话但翻车率极高。挖空操作通常是针对特定层面的铜皮你必须在Options面板的Active Layer里选对层比如你要挖TOP层的铜皮当前层就得是TOP否则可能把铜皮挖到了隔壁层。Allegro的Shape编辑命令是层敏感的选错层虽然也能操作但结果完全不在你预期的地方而且这种错误在出Gerber之前很难发现。第二件事确认铜皮类型是静态还是动态。动态铜皮Dynamic Copper会在你编辑完边界后自动避让、自动重铺操作体验好很多静态铜皮Static Copper不会自动更新需要你手动重新填充或者直接删除重建。建议设计过程中尽量使用动态铜皮只在出Gerber前或者特殊情况下用静态铜皮。关于静态和动态的取舍后面我会专门讲。第三件事把无关的显示层关掉或者调暗。如果板子上器件多、走线密全显示状态下去画挖空边界一方面容易看花眼另一方面鼠标捕捉时容易误抓到无关的元素。我一般会只打开当前层和相邻参考层的显示把器件位号、丝印、装配层全部关掉保持视野干净。第四件事另存一个备份文件。铜皮编辑操作虽然可以Undo但Shape编辑的Undo有时候不太可靠——特别是你连续执行了多个编辑操作、中间又夹杂了其他命令的时候Undo很容易只回退一部分留下一个诡异的中间状态。所以我每次做批量挖空之前都会先File Save As存一个带日期的备份比如board_20250105_before_void.brd。这个习惯救过我太多次了。3.2 动态铜皮挖空最常用、最灵活的操作路线对于动态铜皮Allegro提供了非常顺手的交互式编辑工具。操作路径是这样选择菜单Shape Manual Void Create或者在命令行输入快捷命令**void**此时光标旁边会出现一个十字准星单击选中你要编辑的动态铜皮区域。注意这一步是选中铜皮不是直接开始画挖空区域。选中后铜皮会高亮显示选中之后命令栏会继续提示你绘制挖空的边界。你可以在Options面板里选择绘制方式——矩形、圆形、多边形Polygon或者通过路径Path在铜皮上依次点击绘制挖空区域的顶点。画完最后一点后右键选择Done或者直接敲回车挖空区域就成形了这时Allegro会自动重铺这块动态铜皮你能立刻看到被挖空后的效果铜皮会在挖空边界处自动让开形成干净的隔离区域。这个流程的关键点在第三步和第四步之间的交互逻辑。很多新手在选中铜皮之后不知道下一步该干嘛以为要重新去菜单里调指令实际上命令栏已经挂起等你去绘制了。你只要直接在画布上点击、绘制边界就行不需要也不应该再去点菜单。画边界的时候有几个细节值得注意捕捉设置Snap如果你希望挖空边界对齐到某个器件焊盘的边缘、线宽边界或者板框边缘一定要先在Options面板里选好捕捉类型比如Snap to Segment Vertex、Snap to Pin等。默认的Snap to Grid在画粗略矩形时没问题但对齐精密边界时就力不从心了绘制方向Allegro支持顺时针和逆时针绘制挖空多边形不强制方向。但如果你后面要把挖空区域导出成DXF或者用来做规则检查统一的方向会让后续操作省不少事绘制完成后微调如果画完发现某个顶点位置不对不需要删除重画。右键选择Edit Boundary或者用Shape Manual Void Edit命令然后拖动顶点微调。对于动态铜皮每一次编辑都会触发自动避让重算实时看到结果。这个操作最舒服的地方在于动态铜皮的挖空是完全参数化的、可反复编辑的。你改了挖空边界铜皮自动重铺不需要手动删除旧铜皮再重新铺。这在工程项目里太重要了——当你还在反复调整天线净空区位置时每次改完立刻能看到新的电气效果效率拉满。3.3 静态铜皮的挖空先转动态还是直接挖静态铜皮没有动态避让和自动重铺机制所以在Allegro里直接对静态铜皮执行Manual Void操作会受限实际上传统版本的Allegro并不支持对静态铜皮直接做Manual Void。如果你面对的是一块静态铜皮想在上面挖空有两条路可走。第一条路转成动态铜皮再挖。操作方式是选中静态铜皮在右键菜单里选择Change Shape Type把类型从Static改成Dynamic。之后按3.2节的流程操作。如果需要最终输出静态铜皮有些公司的设计规范要求出Gerber前所有铜皮都是静态的可以在挖空完成之后再把铜皮从Dynamic改回Static。记得转换完之后检查一下整体避让效果因为动态转静态的过程中Allegro会按照当前的避让规则冻结出结果如果规则设置有问题转出来的静态铜皮可能出现不该有的连接或间隙。第二条路编辑Shape的边界几何。这招适合小范围、边界简单的场景。你用Shape Edit Boundary直接编辑静态铜皮的外轮廓把需要挖空的部分在轮廓上绕过去——本质上你是在重新画一个带凹陷的铜皮边界而不是在铜皮内部挖洞。这个方法要求你对外轮廓的重画有十足的把握因为静态铜皮边界一旦改错重铺结果很难预测。我没记错的话这个方法在17.4和22.1上交互差别不小新版本对顶点编辑更友好老版本则相对生硬。我的建议是永远优先走第一条路把静态转动态挖完再转回去。这样既保留了对挖空区域的参数化控制又满足了最终输出规范。静态铜皮直接改边界的方法只适合那种临时切一小块的场景——比如确认一个测试点附近铜皮必须去掉而且形状非常简单矩形就能搞定的时候。3.4 挖空成型后的精修修改边界、合并挖空与删除挖空挖空不是一次性操作项目迭代过程中你大概率需要反复修改挖空的边界和位置。Allegro在这个环节给了一组非常成熟的编辑命令我按使用频率从高到低给你梳理一遍。修改边界菜单**Shape Manual Void Edit**点选你要修改的挖空边界此时边界上的顶点会变成可拖拽的状态白色小方块你可以拖动单个顶点也可以在边界上右键选择Add Vertex增加新的顶点、Delete Vertex删除已有顶点。修改完成后右键Done铜皮重新避让并显示新效果。注意这里的顶点编辑遵循Alllegro的常规交互你在拖动顶点前可以按F6或者用右键的Vertex菜单来切换不同的编辑模式。重新绘制区域如果形状变化太大与其慢慢拖顶点不如直接删掉重画。选中挖空边界后按Delete删除或者用**Shape Manual Void Delete**命令点击该挖空区域即可。删除后原来的铜皮会自动愈合——也就是重新铺满之前挖空的区域这时候如果你还想挖用Create命令重画就行。合并多个挖空有时候你会在同一块铜皮上画了好几个相邻的矩形挖空后面发现它们之间隔得太近不如合并成一个整体。Allegro本身没有一个叫Merge Void的命令最直接的方式是把中间隔着的铜皮边界删掉——也就是编辑挖空边界拖动中间那根隔断的边让两个区域连通。操作路径就是Edit边界、删除隔断边上的顶点、再调整形状让它们变成一个多边形。这么做之后铜皮的重铺逻辑会按新边界重新计算效果等同于两个挖空的并集。一个很实用的操作习惯挖空边界编辑完成后养成一个习惯——执行一次Check菜单 Display Status或者快捷键F6。Check会实时报告DRC错误数量和类型铜皮相关的常见错误包括Shape to Shape Spacing违规、Shape Void Spacing设置不满足等。确保检查结果干净或者只有你已知且接受的可控警告再继续下一步。3.5 参数细节这些设置不改挖空会给你制造意外Allegro里跟挖空相关的参数设置分布在不同菜单里很容易被忽略但它们决定了挖空的实际效果和制造成果。先说Shape Void Spacing——这可能是挖空中最核心的一个参数。它的含义是动态铜皮边界或挖空边界与铜皮上的走线、焊盘、过孔等元素之间需要保持的最小间距。如果该值设得太小挖空后铜皮与走线之间可能出现接近甚至违反制造能力的情况设得太大铜皮被让开得太远又会让隔离效果或者散热效果不达预期。一般默认值是0.508mm20mil如果你的产品用的是高密度设计可以压到0.254mm10mil但不要低于板厂的制造极限。这个参数在Setup Design Constraints Constraints里可以全局设置也可以针对特定网络或特定铜皮单独设置。其次是Shape Void 的显示与渲染。如果你发现挖空之后屏幕上看到的铜皮状态跟预期不符——比如该空的地方还是显示有铜——多半是显示设置的问题。在Display Color/Visibility里把Shapes的Poutline边界轮廓和填充模式都打开同时检查Display OpenGL的渲染设置是否开启了形状填充。另一个常见情况是你改完挖空后动态铜皮没有自动重铺这通常是动态铺铜被手动暂停了——如果屏幕右下角有Dynamic Shapes Disabled提示打开Shape Dynamic Copper Enable恢复自动重铺即可。还有Boundary Trim边界裁剪选项。在做挖空时如果你勾选了Options面板里的Trim by Rectangle或者Trim by Polygon选项那么你画出来的挖空区域只有落在矩形/多边形范围内的部分生效。这个功能在你想精准控制只挖某一段的场景下非常有用。举个例子你有一块大面积铺铜想在上面沿一条走线方向挖一个长条形的隔离槽但你不想手动画出长条形的所有顶点你可以先画一个覆盖该区域的矩形再勾选Trim by Rectangle拖动矩形框住那段需要挖掉的区域快速生成挖空边界。这个技巧节省了大量琐碎的顶点点击。最后是网络规则。如果你的挖空区域跨越了两个不同的网络区域比较少见但有可能比如挖空边界穿过了安全间距检查区域Allegro在动态重铺时会执行网络间距规则检查违反规则会直接报DRC错误。这种情况下需要你回到设计规则里确认这两个网络之间的间距规则是否设置正确。如果设计的意图本就是让它们通过挖空区域隔离就要确保规则允许。4. 版本差异破解17.4、22.1、24.1到底哪里不一样4.1 为什么Allegro版本升级总让人头疼Cadence的版本迭代说实话功能是在增强的但UI和交互逻辑经常大动干戈让老用户叫苦不迭。对于铜皮挖空这个操作不同版本之间的差异主要体现在三个方面菜单入口位置、命令交互细节、以及底座引擎的渲染和避让计算方式。很多从17.4迁移到22.1的用户最崩溃的不是找不到命令而是找到了命令但操作手感完全不对——鼠标点哪里、右键出什么菜单、选项面板里有什么全都不一样。这一章我会把三个主要版本线的差异摊开来说。还是先强调一句设计逻辑是通用的操作路径是版本相关的。你掌握了设计逻辑不管什么版本都是找入口的问题但如果只背了操作路径版本一换就抓瞎。4.2 17.4经典时代命令路径清晰但交互略显繁琐Allegro 17.4以及之前的16.6等版本是很多工程师入门的版本也是网上教程最多、老工程师肌肉记忆最深的版本。在17.4里铜皮挖空的操作是动态铜皮挖空Shape Manual Void Create然后点选铜皮在画布上绘制挖空区域右键Done完成编辑挖空Shape Manual Void Edit删除挖空Shape Manual Void Delete。看起来是不是跟前面3.2节讲的差不多对因为17.4的菜单组织非常直白所有跟形状相关的操作都集中在Shape菜单下。Manual Void的意思就是手动挖空对比的是Automatic Void——但在实际使用中动态铜皮会自动避让走线、焊盘而你要主动挖空的区域几乎都是靠手动绘制所以Automatic Void在工程里的使用频率反而不高。17.4的交互有一个特点选中铜皮后命令会直接进入等待绘制边界的状态不需要你再确认任何选项直接在画布上画就行。选项面板里的捕捉设置、绘制类型选择在绘制过程中随时可以切换。这个无打扰式的交互其实挺舒服的后面22.1反而改复杂了。17.4时代的坑在于如果你操作之前没有把当前层设置正确选中铜皮时会选中到别的层的铜皮而且因为没有层的颜色高亮区分新手很容易在多层板中选错目标。这个版本里你需要养成先看底部状态栏当前层显示的习惯。4.3 22.1UI重构的分水岭菜单换了马甲但逻辑没变到了22.1Cadence对界面做了一轮比较大的调整很多人调侃它越来越像Windows 11和Altium的混血。具体到铜皮挖空变化最大的地方在于很多Shape相关的命令被整合进了Ribbon风格的面板里默认菜单结构跟17.4有明显区别。在22.1里铜皮挖空的操作入口通常是顶部菜单Shape Manual Void Create/Edit/Delete依然存在但你还可以通过Home Shape Edit区域的Interactive Void按钮快速进入右键菜单也变了选中铜皮后右键直接有Create Void / Edit Void / Delete Void等上下文相关命令。这个改变其实很友好不用再跑到顶部菜单去点两步了选项面板的布局发生了调整绘制类型切换按钮从下拉列表变成了图标按钮第一次用会有点懵但习惯了之后鼠标移动距离反而更短。功能层面22.1有一个很实质的改进动态铜皮的重铺计算速度明显更快尤其在挖空边界复杂、多边形顶点多的情况下不再像17.4那样需要长时间等待。我自己对比过同样是一块带12个挖空区域的地铜皮移动其中一个挖空边界的顶点17.4需要等近10秒重铺22.1基本是即时的。这个体验差异在大板、高密度板上尤其明显。另一个22.1带来的小变化是Shape Void的顶点编辑更灵敏了鼠标靠近边界会自动高亮顶点位置捕捉起来比17.4轻松很多。这看似是小改进但对频繁调整天线净空区的RF设计来说省下的时间相当可观。4.4 24.1最新版的交互升级与操作习惯再适应24.1是目前Cadence较新的版本线实际项目中我见过用23.1的也不少这里以24.1为例。这一代最大的变化是引入了更现代的渲染引擎和更智能的编辑提示。说实话第一次打开24.1做铜皮挖空的时候我一度以为自己打开的不是Allegro因为整个画布的高亮、阴影、边界提示都变了。核心变化有这么几个变化一命令入口继续向上下文式演进。24.1里选中一块铜皮后右键菜单里不仅会出现Create Void等命令还会根据你当前鼠标所在位置动态显示在这里创建挖空编辑这个边界等智能提示。本质上这是把以前先选命令、再选对象的逻辑颠倒过来变成先选对象、再出可用命令。你不需要记住命令在哪个菜单里了选中铜皮后自然就能看到下一步能做什么。变化二绘制边界时的实时预览效果大幅增强。在17.4里你得画完整个挖空边界然后Done才能看到铜皮重铺后的效果。24.1里你每画一个顶点都会实时看到挖空区域与周围铜皮的动态避让效果相当于边画边预览。这对设计精确度是实打实的帮助——你画到第三个顶点时发现这个区域太小、不足以实现隔离立刻就能停下来调整而不是等到整个边界画完再返工。变化三挖空的约束管理更严格。24.1对挖空相关的间距约束检查更加细化如果你设置的Shape Void Spacing与全局设计规则冲突系统会给出更明确的提示而不是默默地按某个默认值执行。这从设计规范的角度看是好事但对老用户来说意味着升级后第一次跑Check时可能会爆出一堆之前在旧版本里不存在的DRC。别慌这不一定是你板子真的有问题很可能是新版本暴露了之前被默认值掩盖的不合理设置逐个排查、修正规则即可。变化四对触摸屏和高分屏的适配明显好了。如果你在用高分辨率笔记本或者外接4K屏17.4在缩放160%以上时的图标模糊、选项面板错位问题24.1基本解决了。这个跟操作本身没直接关系但直接影响工作效率值得提一嘴。说实话这三个版本的差异我用一张表帮你总结一下方便你快速对照对比维度17.4经典22.1重构过渡24.1最新命令入口Shape菜单集中管理Shape菜单Ribbon右键菜单右键上下文智能菜单为主绘制实时预览无画完才重铺基本无有边画边预览顶点编辑基础可用更灵敏的自动高亮智能提示高亮增强重铺速度大板明显等待显著加快进一步优化动态铜皮自动重铺运行正常默认开启但可暂停智能化程度更高约束检查严格度按静态规则局部增强更细化DRC提示更明确4.5 一处就是一处版本差异要死记设计原理要活学分别讲完三个版本之后我再总结一下通用性的东西。不管哪个版本铜皮挖空的设计原理是一致的你画一个封闭多边形告诉Allegro这块区域不要铜然后动态铜皮自动避让。版本差异只是入口和交互不同不是原理不同。所以我的建议是版本升级后先花一个小时把菜单走一遍别急着在项目上直接开工。具体来说打开一个测试板或者复制一份当前项目文件把挖空相关的Create、Edit、Delete各操作做三遍感受一下网格捕捉、右键菜单、选项面板的变化。等你重新找回节奏了再在正式项目上操作。这个热身过程看着浪费时间但实际上能帮你避开大量因为操作不熟悉引发的低级错误——比如该编辑A挖空结果点到B挖空上、或者选了当前层以外铜皮这种致命误操作。另外有一个跨版本的通用技巧值得你记住无论哪个版本Alias命令也就是快捷键命令在很大程度上是稳定不变的。比如void命令在17.4、22.1、24.1上基本都可以直接输入调用。如果你习惯了命令行操作甚至可以不关心菜单长什么样直接在Command栏敲void然后按老流程走。这算是对抗版本UI变化的最强底牌。5. 实操案例从天线净空到高压隔离三个场景的完整演示5.1 场景一2.4G天线净空区挖空这是一个典型的IoT模块设计。板子尺寸不大六层板板载2.4G PCB天线放在板边一角。天线厂家给出的设计要求是天线正上方和周围至少要有X方向的净空区具体尺寸根据天线规格书净空区内顶层铜皮必须完全去除。但板子空间极其紧张天线的左侧是射频匹配电路右侧有USB座的金属外壳下方走了一组I2C信号。我的操作思路是这样的第一步先把天线走线、匹配电路的边界和板框全部显示出来关闭无关层。然后用Shape Manual Void Create选择天线所在的TOP层动态铜皮第二步根据天线规格书在天线周围画一个净空多边形。注意这个多边形要包含天线走线的整个辐射区域并且要超出天线边缘至少5mm厂家推荐值。我把多边形顶点精准对齐到板框边缘和器件边界上确保挖空后铜皮边界不会侵入天线占用的空间第三步画完边界右键Done让Allegro自动重铺。这时候仔细观察天线区域确认整个天线辐射区都没有铜皮残留同时检查旁边的射频走线是否因为此次挖空变得裸露——裸露的射频走线如果旁边有其他信号线可能会引发耦合。如果发现风险我会在天线和匹配电路之间再加一排接地过孔形成隔离屏障第四步把挖空后的铜皮边界与天线辐射区的距离实际量一遍确认符合规格书。量距离用的是Dimension工具或者测距命令确保每个位置都达标。这个案例里有一个特别容易踩的坑天线净空区挖空不能只挖顶层如果天线是层叠结构天线或者需要底层净空你得在多个层上分别执行挖空。我在有些项目里见过只挖了顶层、底层一片铜皮铺得密密麻麻实际测试天线效率直接掉了一半的案例。所以每次挖完一定要把所有相关层都检查一遍。5.2 场景二开关电源初级次级安规隔离挖空第二个案例是大功率电源板输入220V交流输出12V直流板子上有高压区和非隔离区。安规要求初级侧和次级侧之间必须保持足够的爬电距离和电气间隙。为了满足这个要求我在初级侧和次级侧之间的铜皮上做了挖空处理。操作流程如下首先根据安规标准计算出需要满足的爬电距离。输入电压是220V正常工作条件下基本绝缘的爬电距离需要6mm以上电气间隙需要5mm以上。考虑到产品可能在污染等级2的环境下使用我决定把挖空后两边的铜皮边界距离做到7.5mm留足余量然后在Allegro里用挖空命令沿着初级侧和次级侧的分界线画出一条宽度约2mm的隔离槽把两边的铜皮彻底分开。注意这里的隔离槽不是把整层铜皮全挖掉而是沿着分界画出一条带状挖空区让两边铜皮的最近距离达到7.5mm重点来了挖空完成后还要检查这条隔离槽有没有被任何走线、铜皮引线桥接过去。因为Allegro的DRC虽然能检查间距但不会自动检查爬电距离——爬电距离是沿着绝缘表面走的DRC默认检查的是直线距离和电气间隙。如果走线从挖空槽旁边绕过去了直线距离可能没有问题但爬电路径却走了一个弓背导致实际爬电距离不达标。这个检查需要工程师手动确认经验不足的人特别容易漏。我的检查方法是在挖空槽的边缘用测距工具沿着板和铜皮表面模拟爬电路径逐段测量最短表面路径把每一段的长度加起来确认总爬电距离大于7.5mm。如果不够就把隔离槽加宽或者通过增加开槽PCB Board Cutout来增加表面路径长度。开槽是比铜皮挖空更强力的手段因为它在PCB基材上物理开一个槽表面路径直接在空气中走爬电距离计算方式和沿着板材表面完全不一样。但在很多场景下先做铜皮挖空已经能解决大部分问题。5.3 场景三高速差分线跨层区域的回流面挖空规避第三个案例比较进阶。一个PCIe Gen4的链路走线从L1层换到L3层过孔旁边正好有一个结构件安装孔需要把L2层参考地平面的一块铜皮挖空来避让结构件。但是挖空区域正好位于高速过孔的正下方如果直接挖回流电流就要绕着巨大的空洞走一圈链路阻抗连续性和回流完整性都会受影响。这种情况怎么处理我的方案是先把安装孔对应的L2层铜皮挖空这是结构需要无法避免然后在高速过孔旁边紧贴着加两个回流地过孔GND via让回流电流在L1到L3换层时能够通过这两个地过孔直接跨越L2层的空洞。回流地过孔的位置很关键不能离信号过孔太远——一般控制在30mil以内最好是对称放置形成回流电流的近路。挖空操作本身并不复杂依然是Shape Manual Void Create选中L2层动态地铜皮画出安装孔周围的净空区域。但难的是挖完之后你要用仿真或者经验判断回流的路径是否够短、够顺畅。如果条件允许我会把这一段的S参数仿真结果拉出来对比——挖空并加回流地过孔之前和之后回损和插损的变化一目了然。实测中加了回流地过孔后高速链路的回损能改善3到5dB效果极其明显。这个案例想说明的是铜皮挖空从来不只是画个圈这么简单它牵一发而动全身。你在某一层挖掉的铜皮可能正好是另一层关键信号的参考平面。所以每挖一次都要有全局视野。6. 高频翻车现场挖空操作中常见的五大错误及排查链路6.1 翻车一挖完铜皮后整片铜皮直接消失了这是最让人头皮发麻的情况。你在动态铜皮上执行完挖空本来只想开一个小窗口结果整个铜皮都不见了屏幕上只剩一个孤零零的铜皮外轮廓框。出现这个情况大概率是你在画挖空边界的时候边界画到了铜皮轮廓之外或者边界根本没有闭合。Allegro在动态铜皮重铺时会把你画的挖空区域当作从原铜皮上减去的区域。如果你的挖空边界把整个铜皮都包进去了那减完之后就什么都不剩了。还有一种可能是你画了一个非常大的挖空区域大到覆盖了铜皮的大部分面积剩下的条带太细小于了动态铺铜的最小条带宽度设置Allegro直接把这些细条丢弃了。排查链路第一步按下Undo回退到操作前状态第二步检查Options面板里的Minimum Sliver Width最小条带宽度和Void Spacing设置第三步用Shape Manual Void Edit重新查看挖空边界确认边界是否封闭、范围是否正确第四步如果边界正确但铜皮依然不显示检查一下是不是当前层的动态铜皮被冻结了用Shape Dynamic Copper Enable恢复。大部分情况走完前三步就解决了。6.2 翻车二想挖掉的地方没挖掉不想挖的地方被挖了这种情况在多层板、高密度板上特别常见。你以为你挖的是TOP层的铜皮结果选中的是内层的你以为你画了一个矩形挖空在某个走线旁边结果因为网格捕捉没对齐实际挖空区域偏移了零点几毫米正好压到了另一条不该碰的铜皮上。排查链路第一确认选中铜皮时颜色高亮是否出现在你预期的层上。Allegro默认显示中不同层的Color/Visibility颜色不同如果你开了所有层一定要看高亮颜色属于哪一层第二画挖空边界时把不需要编辑的层全部关闭只留下当前层这样捕捉和选择就不会串层第三挖空完成后用Display Element命令点击挖空边界查看它的所在层属性、字符串名称等参数确认它的归属。这个检查虽然多了一步但能从根源上杜绝挖错层。6.3 翻车三动态铜皮挖空后避让结果和预想不一样有时候你画了一个矩形挖空但Allegro重铺后挖空边界并不是一个干净的矩形而是带着各种锯齿、凹陷、突起看起来像是被什么东西啃过一样。这个现象多数是因为挖空边界和周围的走线、焊盘、过孔之间发生了避让逻辑冲突。动态铜皮在重铺时会同时执行避让障碍物和遵循挖空边界两条规则。如果你的挖空边界离某个走线太近避让逻辑会优先把铜皮拉得更远于是挖空区域就膨胀了如果你的挖空边界碰到了某个异形焊盘避让逻辑还会把边界咬出一个口子。排查链路先确认挖空边界本身是否干净——用Shape Manual Void Edit查看编辑状态下的挖空边界线看看边界线上有没有额外的顶点或者拐点如果没有再检查挖空边界周围是否有高度接近的元件或者走线把它们的间距参数调大一点再重铺一次最后如果这些都不是原因检查是否有Static Shape和Dynamic Shape混在一起。静态铜皮和动态铜皮混用时会互相干扰避让结果这是很多诡异形状问题的元凶。6.4 翻车四DRC报出一堆Shape相关错误挖空操作之后DRC报错是家常便饭。但同样是报错有不同的根源处理方式完全不同。最常见的错误是Shape to Shape spacing violation——挖空后的铜皮边界和另一块铜皮边界距离小于规则要求。这个一般是挖空边界画得太激进和旁边另一块铜皮贴得太近了。解决方案有两种扩大挖空区域或者缩小另一块铜皮。优先检查两块铜皮是否属于不同网络如果是异网络间距问题必须改到满足规则如果是同网络需要确认设计意图是否允许它们贴得那么近。其次常见的是Line to Shape spacing violation。挖空边界离走线太近铜皮避让后留的间隙不够。这种情况在细间距BGA出线区域特别多你需要把挖空边界往远离走线的方向移动一些或者在走线另一侧留出更大的隔离空间。还有一个特别容易忽略的错误来源挖空区域与板框重叠。如果你画挖空边界时越过了板框线Allegro在重铺时会尝试在板外也执行挖空结果生成奇怪的极窄铜皮或者错误碎片。很多人遇到挖空后铜皮变成一堆零散碎片的情况根源就在这里。解决方式是让挖空边界始终位于板框内如果需要板边缘避免铜皮直接设置板框到铜皮的间距规则更简单。6.5 翻车五Gerber输出后挖空区域完全消失这是最隐蔽的一种问题——在Allegro里看起来一切正常挖空区域边界清晰、铜皮避让完美但板厂拿到的Gerber里那些挖空区域全都不见了铜皮恢复成完整的一大片。出现这种情况基本可以断定问题出在挖空区域所在的铜皮类型和Gerber输出设置的配合上。Allegro在输出Gerber时如果你用的是静态铜皮且静态铜皮在输出前没有执行重新填充或者边界更新Gerber里输出的铜皮图形就是旧的——也就是说你看到的新挖空形态只存在于Allegro的内存里但没有被固化到静态铜皮的几何数据中。排查链路第一步确认挖空区域的铜皮是静态还是动态。如果是静态铜皮在输出Gerber前用Shape Select Shape or Void/Cavity选中该静态铜皮然后右键执行Update To Smooth或者Replace Shape强制刷新几何数据第二步打开Gerber预览工具比如CAM350或者Allegro自带的Gerber Viewer逐层查看铜皮层确认挖空区域确实存在第三步对比Allegro设计界面和Gerber文件中的铜皮轮廓如果发现差异优先排查是不是有其他软件比如第三方转换工具在处理过程中丢失了挖空边界。说实话这一步是我见过的坑里最隐蔽的一个因为很多人根本不看Gerber预览直接把文件发板厂等板子回来才发现问题返工成本极高。6.6 翻车六铜皮挖空引发的散热灾难最后再提一个电气之外的坑——散热。这个我在第2.3节已经剧透过但这里用完整的案例再强调一次。我之前做过一个LED驱动板LED驱动芯片底部有一个散热焊盘thermal pad我的初衷是在散热焊盘周围挖空铜皮避免散热焊盘和旁边的一些高压走线间距不足。结果挖空之后散热焊盘周围的铜皮被大幅削减芯片的散热路径几乎全断了。实测时满载工作十分钟芯片表面温度达到了117℃而正常设计应该是85℃左右。排查链路其实很快一摸芯片温度异常我就意识到是铜皮挖空影响了散热。解决方式是在保证间距安全的前提下把挖空边界往远处推回去一些保留一块足够大的铜皮连接散热焊盘并且在焊盘正下方打了一排1.0mm的散热过孔阵列连接到内层大面积地铜皮。改完之后实测温度降到88℃。这个案例告诉我们挖空和散热是互相拉扯的两个需求。在功率器件周围挖空时不要直接把焊盘周围全部铲平而是应该在满足电气间距的前提下尽量保留散热通道。如果实在无法兼顾那就应该改叠层或者在器件底下增加额外的散热结构而不是牺牲电气间距去迁就散热。7. 高阶技巧与工作流优化挖空效率翻倍的实操心得7.1 用Skill脚本批量生成挖空区域如果你是Allegro的重度用户一定绕不开Skill——这是Cadence为Allegro定制的脚本语言本质上就是用代码来驱动设计操作。在铜皮挖空这个场景里Skill的价值在于批量化和参数化。举个例子我有一个项目里需要在二十几处位置做完全相同的矩形挖空位置坐标是有规律的按行列排列。如果手动操作我需要在每块铜皮上执行Create、画矩形、Done一套流程下来至少半小时还容易出错。用Skill就快得多核心思路是写一个脚本遍历这些位置坐标自动创建挖空形状。Skill脚本的关键在于调用Allegro的Shape编辑函数。一个典型的创建挖空的Skill伪代码思路是这样的先通过坐标选择目标动态铜皮axlSelectShape然后调用axlAddVoid或者等效的API传入挖空的顶点坐标数组最后刷新显示。不同版本的Skill API函数名有一点差异但思路完全一致。如果你没有Skill基础我的建议是从录制宏开始用Allegro自带的操作录制功能录一遍手动操作然后查看生成的Skill代码在此基础上修改坐标参数算是入门Skill最平缓的方式。7.2 利用Class和子类Subclass层级管理挖空区域Allegro的层管理允许你在同一个物理层下创建多个不同的子类。比如你可以把铜皮放在TOP层也可以把特殊的挖空区域放在TOP/CUTOUT_TEST这种自定义子类里。这样做的好处是你可以针对性地控制显示和输出挖空区域和正常铜皮互相独立管理起来更清晰。但注意Allegro的挖空操作是针对Shape本身的不是在子类上做的。我这里的建议是如果你要在设计里加很多临时性的挖空——比如调试用的测试区域、后期可能要移除的保留区域——可以考虑把这类挖空信息用额外的图形或者标记放在自定义子类里方便后期识别和移除。而对于正式的挖空区域还是老老实实用Shape Void功能做在铜皮本身上。这个技巧更多是项目管理层面上的但它能让你在改版时快速区分哪些挖空是必须保留的哪些是后期检查用的非常实用。7.3 从Layout到板厂挖空信息如何正确传递给制造端铜皮挖空最终要传递到板厂主要依赖的是Gerber文件和钻孔文件。但板厂实际制造时他们真正关心的是每一层铜皮的最终几何形状包括挖空区域、层间间距、最小线宽线距、以及板框和开槽信息。如果你的挖空区域同时涉及铜皮和板材开槽那两者要分别处理铜皮上的挖空随Gerber铜层文件输出即可板厂会按图蚀刻如果需要板材本身开槽那是Board Outline或者Board Cutout要单独用机械层文件通常叫Outline层或者Drill Drawing层表达并在钻孔文件里标注开槽尺寸。很多人把这两个概念混在一起以为在铜皮上挖空就能让板材也开槽这是完全错误的。铜皮挖空只是让铜皮上没有铜基材还是完整的开槽是在基材上物理掏洞。所以做结构避让时一定要分清是铜皮让开还是板子开槽两者表达方式和制造工艺完全不同。在Gerber输出环节我的习惯是把每一层铜皮的Gerber文件用RS-274X格式输出同时把板框和开槽信息放在专门的机械层输出。输出之前我会执行一次Artwork检查用Allegro自带的Manufacture Artwork打开光绘文件管理器逐层确认铜皮层的输出内容挖空区域在预览中应该是清晰可见的。如果预览中看不到挖空区域说明前面6.5节说的问题必须停下来排查不能硬着头皮发板。7.4 用差分对和区域规则的联动设计避免挖了又填在高速PCB设计中铜皮挖空经常和差分对设计、区域规则绑定在一起。一个常见的工作流是在差分对周围设置一个形状Shape把这个形状指定为Keepout禁布区属性那么铺铜时Allegro会自动按Keepout避让效果等同于手动挖空。这种方法的优越之处在于Keepout属于规则层面的定义你改差分对走线时不需要重新挖空Keepout区域自动跟随。具体操作是先画一个封闭多边形选中它然后在右键菜单或属性面板里把它的类型改成Route Keepout或者Shape Keepout。之后在这个Keepout区域内任何动态铜皮都不会填充。你可以在同一位置既设Shape Keepout又设Route Keepout实现铜皮和走线的双重禁布。这个技巧特别适合那些设计还处于高频迭代阶段的位置——比如天线净空区、传感器周围、高压隔离带。你不需要每次修改都重新执行挖空只要Keepout区域不动铜皮自动遵守。不过要注意Keepout的输出和挖空在Gerber里的表达方式不一样——Keepout本身不是铜皮几何的一部分它只是铺铜时的一个规则边界。如果最终输出的铜皮已经按Keepout避让好了那Gerber里看到的铜皮形状就是正确的。如果你把铜皮类型从动态改成静态Keepout的避让结果也会被固化下来和手动挖空效果一致。7.5 挖空与测试点、调试探针的配合设计最后分享一个很实用但很容易被忽略的经验在设计早期就把调试测试点的挖空需求规划进去。很多板子在调试阶段会遇到这样的事明明板上留了测试点但因为测试点周围铺满了铜皮万用表探针或者示波器探头搭上去不是短路就是量出奇怪的数值。等你回头想去挖空要么已经没空间了要么不敢动铜皮怕影响性能。我的做法是在设计阶段给测试点预留一个探针安全岛——即在测试点周围画一个小型的Shape Keepout区域直径约2到3毫米让铜皮自动让开但又不能全部让空——太远了探针反而不容易搭到焊盘上。这个区域的尺寸其实很有讲究太小了探针头打上去还是可能碰到铜皮太大了又影响铺铜的连贯性。我自己总结的经验值圆形Keepout区域的直径比测试焊盘直径大1.5到2倍比较合适。这个习惯看似微不足道但真正进入调试阶段时你会发现省下来的时间非常可观。调试不再战战兢兢地怕短路示波器探头随便搭效率翻倍。8. 写在最后我踩过几次坑之后的几点实在建议铜皮挖空这个操作真要说难度学会操作可能只要十分钟但要是想把什么时候挖、挖多大、怎么验证这些判断练明白需要几个项目周期的积累。文章最后我不做什么总结陈词就分享几个我自己实实在在的习惯你拿去就能用。第一个习惯每次挖空后强制自己做一次三看检查。一看当前层的铜皮状态确认挖空区域正确出现、边界平滑二看相邻层的参考情况确认没有高速信号跨过挖空区域形成回流断崖三看Gerber输出预览确认挖空信息真真切切传到了制造文件里。这三看加起来用不了两分钟但能挡住八成以上的返工。第二个习惯所有临时性的挖空都用Shape Keepout表达而不是手动Void。Keepout更灵活、更可逆改起来代价小。只有设计定了、马上要出带才把最终的挖空效果固化到铜皮上。这个习惯能让你的设计文件在版本迭代时保持干净、可维护。第三个习惯多花十秒钟思考如果不挖会不会有问题。铜皮挖空是有代价的——它牺牲了散热、破坏了回流路径、可能增加制造成本。所以每挖一处你都要确信不挖不行。如果只是因为别人都这么挖或者看着不顺眼我劝你慎重。设计里的每一块铜皮都是你的资源资源要用在刀刃上。Allegro版本在迭代菜单在变交互在变但这个操作背后的工程逻辑——电气隔离、阻抗控制、散热、制造可行性、回流完整性——这些是始终不变的。把逻辑吃透了工具就永远只是工具版本变化对你来说也就是换一套快捷键而已。希望这篇文章能帮你在铜皮挖空这条路上少走一些弯路也欢迎在评论区聊聊你自己遇到的那些挖空翻车事故——我猜咱们踩过的坑大概率是同一个。