
做硬件这几年PCB布局里最容易被低估的动作之一就是GND过孔。早几年我做一块通信板DDR区域需要大量GND过孔做回流和屏蔽当时我还习惯用PV一颗一颗地放几百个孔放完手腕酸不说检查下来还有好几颗没落在GND网络上返工又花了一个多小时。后来在参考设计里看到别人用Altium Designer 20的过孔缝合Via Stitching批量处理叠加阵列粘贴补局部孔位效率和整齐度完全不一样从那以后我在AD20里的布局节奏就变了。这篇就把我做板过程中关于GND过孔批量放置和智能避让的经验整理出来涉及原理、参数、操作步骤和踩过的坑适合需要提升Layout效率、又想把GND过孔布得规范的朋友。1. 先搞清楚GND过孔的作用与数量很多人上来就问“GND过孔放多少合适”但我觉得得先想清楚它是干什么的。GND过孔不是拿来凑数的放少了回流路径不完整放多了内层铜皮被割得稀碎反而坏事。这个平衡要想把握好得从原理上理解它的三重作用。1.1 回流路径决定了过孔的位置信号走表层电流不是只走信号线本身它还需要一个回流路径一般由参考平面通常是GND层提供。当信号线通过过孔从表层换到内层时参考平面也发生了切换这时候回流电流怎么从旧平面跳到新平面靠的就是旁边的GND过孔。如果信号过孔旁边没有就近的GND过孔回流电流就得绕一个非常大的环路去“找路”。环路面积越大辐射越强串扰也越严重高速信号上体现出来就是波形劣化、EMI超标。所以我个人的习惯是信号换层的过孔旁边0.5mm到1mm以内必须至少有一个GND过孔这个不是强迫症是射频和信号完整性设计的基本要求。从整板角度看大面积铺GND过孔相当于在每个信号层之间建立了一个“垂直回流通道”。你可以把它理解成城市下班高峰的主干道主路通畅了大家就不需要穿小巷子事故和拥堵自然就少了。GND过孔就是给回流电流开出的近路。1.2 屏蔽和散热的附加需求除了回流GND过孔还有两个非常重要的任务边缘屏蔽和散热。板边打一排GND过孔在工程上叫“过孔围栏”或“Via Fence”。这些孔配合外围的GND铺铜可以在板子边缘形成一个类似法拉第笼的结构把内部的电磁场圈在里面同时也能减少外部干扰耦合进板内。对射频区域、天线附近、高速连接器周围这种围栏几乎是标配。间距怎么定通常要求远小于工作波长工程上可以按λ/20估算。比如2.4GHz信号的波长约125mmλ/20约6.25mm所以板边过孔间距控制在5mm以内才算可靠这只是个经验值实际还要看整板EMI测试结果。散热方面GND过孔可以把热量从表层焊盘快速导到内层大面积地铜上。我做过几块带DC-DC电源的板子MOS管底下和电感下方密集打过孔配合内层地铜发热体表面温度能降好几度。这种过孔怎么放一般是布成网格或阵列状间距50mil到100mil具体看器件发热量和可取板面积。1.3 数量怎么定一张表说明白GND过孔没有绝对的标准公式我简单整理一个工程参考表格基本覆盖常规场景板子类型不同可以在此基础上下浮动。应用场景参考密度 / 规格说明低速数字/模拟板每平方厘米2~3个板边1~2mm间距保证基本回流和平面连接即可DDR、USB3.0等高速数字区信号过孔旁0.5~1mm内至少1个GND过孔为信号换层提供就近回流射频/天线区域板边过孔间距小于λ/20用密集过孔围栏形成屏蔽DC-DC等大电流区域20mil孔径过孔按每孔约1A能力估算实际按2倍余量铺走散热和大电流折返路径大面积覆铜区过孔间距100mil~150mil网格布防止铜皮脱落保证层间连接强度关于电流能力多说一句常规20mil0.5mm孔径的全通孔在0.5oz铜厚下大约能承受1A左右的电流这是过孔壁铜截面积决定的。大电流场景如果孔径开太大占板面积和工作量都会成倍增加更合理的做法是多个过孔并联分流。比如10A电流用20mil过孔打20个以上才稳这就属于多孔并联的典型思路。还要提醒一下过孔数量不是越多越好。内层的GND平面被打成“筛子”之后参考平面的完整性会被破坏。尤其是在高速差分线正下方的区域过孔太密会导致平面阻抗不连续这跟“过孔太少”是同样麻烦的问题。所以我更倾向于按需分区域放置而不是全板无脑打满。2. AD20批量放置GND过孔的几种高效方法搞清楚为什么放、放多少接下来就是怎么放的问题。AD20里批量放置GND过孔的方法大体上有三种过孔缝合、阵列粘贴、手动补孔。三种方法各有适用场景组合使用效率最高。2.1 Via Stitching过孔缝合真正的批量化过孔缝合是AD20里处理GND过孔最实用的功能没有之一。它可以按照你指定的网络、间距和范围一次生成整片过孔阵列而且放置过程中会参考当前DRC规则做避让检查避免把孔打在铜皮间距不足的位置上。调用路径是Tools工具菜单 - Via Stitching过孔缝合 - Add Stitching to Net向网络添加缝合过孔。点击后弹出对话框关键参数有几个Net选择要缝合的网络这里选GND。Via Size / Hole Size过孔外径和钻孔直径。我常用0.5mm外径、0.25mm钻孔兼顾工艺和密度。Spacing过孔中心间距。整板缝合建议100mil~150mil起步间距太密会让内层铜皮严重破损。Style可以选择Grid网格状或Staggered交错状。交错排列在物理上更均匀对平面完整性更好一些。范围你可以选择整块板Board Outline做全板缝合也可以先用鼠标框选某个区域或Room再执行只在该区域内生成过孔。这个命令生成的是带GND网络的过孔阵列直接在L2、L3等内层会连接到对应平面上。如果生成之后发现密度不合适可以用Tools - Via Stitching - Remove Stitching to Net一键删除再重新设置参数缝合修改成本很低。2.2 阵列粘贴灵活但需要避让意识如果说Via Stitching是大规模生产阵列粘贴就是更加灵活的“局部加工”。它的逻辑很简单先在板上任意位置放一颗GND过孔设置好尺寸和网络属性然后复制这颗过孔用阵列粘贴功能一次性铺出一排或一片。具体操作是这样的先按P、V放置过孔按Tab键在属性面板里把Net设置为GND确认尺寸和钻孔后放到板上选中这颗过孔CtrlC复制再打开编辑菜单找到阵列粘贴Paste Array或特殊粘贴Paste Special设定需要粘贴的行数、列数以及行列间距然后点击确定。粘贴时鼠标会带一个锚点移动鼠标到目标区域的原点位置点击即可完成整片过孔的铺设。这里有个非常重要的提醒阵列粘贴只是把过孔“铺”上去它不会自动检查间距也不会规避障碍物。如果你在BGA下方、电阻电容密集区用阵列粘贴很容易出现过孔和焊盘间距过近的情况。这种方法的适用场景是规则相对干净的区域比如板边地线围栏、DC-DC模块下方的散热过孔区。放完之后一定要顺手跑一遍DRC把冲突的过孔单独调整。2.3 手动补孔与属性批量修改批量缝合和阵列粘贴解决了90%的过孔数量需求但总有些特殊位置需要手动微调。比如BGA扇出区域、连接器附近的回流孔这些地方空间紧张过孔位置要根据周围走线一点点试这时候老老实实用PV逐个放反而是最高效的。手动放孔有一个技巧放置过程中按Tab键可以连续修改属性如果放置的过孔网络不是GND可以在放置状态下按“L”或者直接在属性面板切换网络不需要先放再改。放完之后如果发现一批过孔尺寸或网络需要统一调整可以用右键菜单里的Find Similar Objects查找相似对象功能选中一个GND过孔右键选择查找相似对象选择相同的过孔尺寸、相同网络、相同层软件会自动选中所有匹配过孔然后在Properties面板统一修改“过孔直径”“钻孔直径”或网络属性。这个方法比一个个双击修改快得多。3. 智能避让的关键设置与操作技巧“智能避让”在AD20里不是一个单独按钮而是一套由规则、模式和软件算法组成的机制。你要先理解它的运作方式才能在实战中真正用上。3.1 Clearance规则避让的底层逻辑AD20里所有避让行为最终都落在Clearance间距规则上。也就是说不管你是用缝合过孔、推挤布线还是手动放孔软件判断“能不能放在这里”的依据就是规则里设定的间距值。进入Design设计- Rules规则- Electrical电气 - Clearance间距。在这里可以针对不同对象组合设置间距。你可以单独设置Via到Via、Via到Pad、Via到Track之间的最小间距。常规数字板我会统一设为8mil约0.2mm电源板会加大到12mil或15mil以满足安规和工艺要求。多条规则同时存在时AD20按优先级从上到下逐条匹配第一条命中的规则生效。如果板子里既有默认间距规则又有专门针对BGA区域的局部规则一定要检查优先级的排序防止局部规则被默认规则提前拦截导致避让行为不符合预期。另外推荐把在线DRC打开Design - Board Insight - Display或者直接在右下角面板把DRC错误显示打开。这样放置过孔时如果间距不满足规则软件会实时高亮绿色错误不等最后跑批量DRC就能发现。用缝合功能批量打孔时这个实时提示尤其有价值。3.2 交互布线中的推挤与过孔模式交互式布线Interactive Routing是AD20里最常用的手动布线工具它自带几套避让模式通过ShiftR快捷键循环切换Ignore忽略障碍头铁直接穿过一般不建议用除非是最后强行处理特殊线网。Avoid避开障碍遇到走线或焊盘自动绕开不会改变其他对象的位置适合多数常规布线场景。Push推挤障碍会把挡路的已有走线顺势往旁边推开让当前走线通过适合在拥挤区域调线。Hug紧贴障碍贴着已有对象边缘走空间紧张时用来走短距线很好用。走线过程中需要换层时按*或者CtrlShift滚轮可以切换层同时自动放置过孔。过孔的模式可以通过按V键循环切换在最小过孔、标准过孔、最大过孔之间切换。如果默认过孔不是你想要的GND过孔先在Preferences菜单里把Preferred Via设置成标准GND过孔再按V切换这样交互布线中放置的过孔就会自动带上GND网络并采用你预设的尺寸。这里分享一个实战经验在密集的BGA下走线我习惯先切到Push模式把周围信号线整理好再切换到布线模式放置换层过孔。推挤不仅让走线避开了障碍也给过孔留出了更合理的位置省掉了大量手动挪孔的时间。3.3 缝合过孔如何利用规则自动避让回到Via Stitching它的“智能避让”其实体现在两个地方。第一缝合前它会读取当前Clearance规则生成过孔时会严格按照间距规则来定位。如果某个位置空间不足软件会调整相邻过孔的间距或者跳过该位置而不是强行塞入导致规则冲突。前提是你的规则设置正确这也是我把Clearance放在前面讲的原因。第二你可以通过选择缝合范围实现“软避让”。比如你只想在某个ROOM区域如DDR区域内缝合GND过孔那直接在ROOM上执行Via Stitching它就只在这个范围内生成不会跑到旁边的模拟区域干扰布局。如果缝合后想整体偏移或删除用Remove Stitching to Net可以一键清除再重新设置。这样配合ROOM和区域的边界管理批量缝合的可用性非常强。4. 一块四层板的GND过孔实战流程理论讲了这么多还是用一个实际的四层板案例把整个流程串起来。这块板子有DDR区域、DC-DC电源模块和若干接口叠层是L1信号、L2地、L3电源、L4信号GND过孔要走全通孔贯穿全板。4.1 准备阶段叠层、过孔与规则在开始放过孔之前我先做三件事。第一步确认叠层和过孔栈。Set Up LayersDK快捷键可以调出层设置确保四层已启用通孔类型是全板贯穿。过孔本身我采用外径0.5mm、钻孔0.25mm这个尺寸在常规PCB工厂是标准工艺不用额外加钱加工良率也高。第二步设置默认过孔。在Preferences参数设置的PCB Editor - Defaults里找到Via把默认尺寸改成外径0.5mm、钻孔0.25mm并设置Net为GND。这样之后PV放置的过孔天生就是GND网络省去每次手动修改。第三步检查Clearance规则。我把默认间距设为8mil同时新建一条针对DDR区域的规则间距设为6mil因为DDR区域比较挤8mil实在走不开并确认优先级排列正确保证DDR区域的规则生效。4.2 批量放置过孔的完整操作准备完毕开始实际放置。整板范围内的GND缝合我放在布局后期、布线之前的阶段做。执行Tools - Via Stitching - Add Stitching to Net网络选GND间距设100mil范围选Board OutlineStyle选Staggered。这样会在整板范围内生成一片比较均匀的GND过孔网格作为最基本的垂直回流骨架。DDR区域我单独加强。选中DDR所在的Room再执行一次Via Stitching网络还是GND间距缩小到50mil范围选当前选中区域。这样DDR下面会多出一批密集过孔为高速信号换层提供充足的近路。DC-DC模块下方我会用阵列粘贴补充散热过孔。先在MOS附近放置一颗GND过孔复制后用阵列粘贴铺成4x4或5x5的网格间距60mil左右。这样热量通过过孔直接导到内层地铜实测能明显降低器件温度。板边围栏我也用阵列粘贴来做。沿着板子四周以5mm左右的间距放置一排GND过孔。这个围栏对整板EMI的抑制很有帮助尤其是当板内有RF或者高速接口时。4.3 内层连接检查与DRC验证过孔放完之后不能直接发板还要检查内层连接和规则冲突。打开L2和L3层视图确认这些GND过孔是否与内层地铜连接正常。双击过孔查看Plane Connection平面连接设置大批量的GND过孔我一般设成Direct Connect直接连接因为它是大面积地铜散热不影响焊接直接连接还能降低回路阻抗。如果是连接到某一小块铜皮或者散热片区域再用Relief Connect热焊盘方式避免焊接时热量流失太快。最后跑一遍完整DRCDesign - Rule Check - Run Design Rule Check重点关注Clearance错误和Un-Routed连接。缝合过孔产生的间距冲突会很直观地列在Message面板里双击即可跳转到对应位置调整起来非常快。如果整个区域错误太多不妨直接删除缝合过孔重来一次重新设小间距或换交错排列比一个个手工挪孔快得多。5. 常见问题排查与避坑实录使用批量方法放置GND过孔之后不可避免会碰到一些奇奇怪怪的问题。下面这几个是我自己遇到过的也是不少工程师朋友问过我的基本覆盖了最常踩的坑。5.1 过孔网络“神秘消失”阵列粘贴或复制粘贴后有时会发现新过孔网络是No Net没有自动带上GND。最常见的两个原因一是复制源过孔本身就没有网络属性也就是说你复制的那颗孔在放置时根本没有设置Net二是粘贴方式选错了特殊粘贴对话框里如果你把网络相关属性勾掉粘贴出的所有对象都会丢失网络。解决办法也不复杂。如果不嫌麻烦可以直接全选这些无网络过孔用Find Similar Objects筛选出所有同尺寸无网络的过孔然后在Properties面板统一设置Net为GND。或者更干脆在放置过孔之前就设置好默认网络像我前面说的在Preferences - Defaults - Via里把Net预置成GND之后再任何方式放置、复制、粘贴出来的过孔都会保留网络属性。5.2 过孔间距大面积报错怎么收场批量缝合之后DRC报出一大片Clearance错误看起来吓人但原因通常就是那么几个间距设得比规则小、范围包含的区域过于拥挤、或者Clearance规则本身有问题。先看规则。进入Design - Rules - Electrical - Clearance确认默认间距数值合理再确认优先级排序正常。如果是DDR这种局部区域单独设了更小间距一定要把这条规则排在默认规则前面否则软件根本不会匹配到它。再看缝合参数。如果Via Stitching里Spacing设了50mil但规则要求8mil这个间距是OK的可如果你设成了40mil规则要求50mil就会成片报错。这种情况直接Remove Stitching to Net把间距改成60mil重新缝合一步到位不建议手动一个个挪又慢又容易漏。5.3 过孔明明在平面上却不连通有时候GND过孔放好了从顶层看到有孔切换到内层一看内层的铜皮却与过孔隔离了。这个问题的根源多半在Plane Connection设置。过孔在平面层上的连接方式有三种Direct Connect、Relief Connect和No Connect。如果你在平面对话框里把过孔的连接方式误设成No Connect或者热焊盘连接时设置的连接宽度太小导致PCB工厂加工后实际接触面积极小而开路都会出现“看到孔、量不到线”的情况。修正方法选中这些过孔在Properties面板里把Plane Connection改为Direct Connect然后重新铺铜或重新缝合。还有一个小概率情况是内层平面根本没有分配到GND网络。进入Layer Stack Manager或者平面层属性确认L2层分配的网络是GND而不是No Net或者别的网络否则过孔到了内层当然无法连接。5.4 盘内孔与元件干涉的取舍很多时候空间紧张GND过孔不得不打到元件焊盘上也就是Via-in-Pad。AD20支持这种放置但物理上你要想清楚后果焊盘上的过孔会在焊接时把焊锡吸走导致虚焊而且过孔不做处理的话焊盘表面会有凹陷。如果工厂支持树脂塞孔或铜膏填孔工艺盘内孔是可以做的如果工厂是标准工艺尽量别打。折中方案是把过孔放在焊盘边缘附近间距控制在Clearance允许的最小值这样既保证了回流又避开了焊接区域。实在要打盘内孔最好在制造说明里明确标注需要树脂塞孔同时调整Solder Mask Expansion设置避免孔口被绿油或开窗影响焊接。以上这些问题在实际操作中遇到任何一个都不必慌。我的经验是先上线找问题根源把DRC跑起来大部分坑都能在错误信息里找到方向。批量放置GND过孔这件事熟练之后十几分钟就能完成原来一小时的活而且放置结果更整齐、更规范。如果后续你在用AD20做布局时还有其他过孔相关的疑难杂症欢迎在评论区留言交流我尽量用实际做过的东西给大家回复。