做了这么多年PCB,我几乎每次画完板子都要被一件事折磨——明明铺铜铺得满,地也连了,可EMC预测试就是不过,辐射超标、底噪偏高。后来拆开板子一层一层看才发现,问题往往不是铺铜没铺,而是层与层之间的地铜压根没“真正连起来”。说得直白点,你的地平面像两层楼,中间却没几部楼梯,信号回流的时候只能绕着走远路,绕出来的回路面积就是一根根天线。
这个问题的标准解法,就是加缝合孔(Stitching Via)。今天这篇就以PADS VX2.4为工具,把从铺铜设置到阵列过孔的完整流程捋一遍,包括每个参数怎么填、每个步骤为什么这么做,以及我在实际项目里踩过的坑。不管你用的是VX2.4还是更高的VX版本,流程和底层逻辑基本通用,准备入坑或者已经在坑里的朋友都可以直接照着操作。
1. 缝合孔到底在解决什么问题:理解回流与EMC的底层关系
1.1 电流走的不只是“路”,而是“回路”
很多人对信号的认知是:从驱动端出发,沿着走线到达接收端,结束。但物理世界不是这样的,信号必须以回路的形式存在,有去必有回。高频信号的回流电流并不会老老实实沿着地走线回来,而是会寻找阻抗最低的路径,通常就是紧贴在信号走线下方的参考平面上。
这里有个关键点:当信号走线在顶层,参考平面在第二层时,回流电流主要分布在第二层平面靠近顶层走线的位置。如果信号换到第三层走,回流电流就要换到第三层附近的参考平面。如果这两层地平面之间的连接过孔很少,回流电流就得在某个地方“爬上爬下”,这个换层的位置如果没有过孔,回流电流就只能绕一个大圈到远处有孔的地方再换层。绕行意味着环路面积变大,环路面积大意味着辐射强,EMC指标自然就崩了。
缝合孔做的事情,就是在地平面的不同层之间密集地打上过孔,让回流电流随时可以就近换层,不需要绕远路。你可以理解为:给上下两层地板之间安了足够多的楼梯,人(回流电流)随时可以下楼,不用跑到楼道尽头去绕。
1.2 缝合孔、普通信号过孔和散热孔的区别
很多初学者会把缝合孔和普通过孔混为一谈,实际上它们的定位完全不同。
| 类型 | 主要连接对象 | 核心目标 | 网络归属 | 间距特点 |
|---|---|---|---|---|
| 缝合孔 | 不同层的参考地铜 | 降低回流路径阻抗、抑制EMC | 通常为GND | 密集均匀,2.5mm到5mm常见 |
| 普通信号过孔 | 信号走线跨层 | 引导信号换层传输 | 信号网络 | 随走线走,无固定间距 |
| 散热孔 | 发热器件到内层铜皮 | 导热、降低热阻 | 多接GND或电源 | 紧贴器件焊盘附近 |
缝合孔的核心价值是“电气性能”,不是为了过信号,也不是为了散热。把它当普通过孔用当然也能导通,但如果不注意间距均匀性和与回流路径的配合,效果会大打折扣。
1.3 哪些板子必须认认真真加缝合孔
我不是说所有板子都要疯狂打孔,但以下几种情况,缝合孔是刚需。
第一,四层板及以上、有完整内层地平面的板子。这是缝合孔的主战场。两层板因为缺少完整参考平面,缝合孔的收益相对有限,但仍然可以在板边和接口附近起作用。
第二,高速信号密集的区域,比如DDR、USB、HDMI、以太网等接口附近。信号换层时紧邻的过孔位置必须放置回流过孔,否则信号的回流路径断裂,信号完整性问题马上显现,眼图质量差、误码率高。
第三,板边、螺丝孔、结构件附近。这些位置容易受到外部干扰,也容易向外辐射。沿板边每隔一段距离放置缝合孔,相当于在板子边缘竖起一道“法拉第笼”式的屏障,把板内辐射关在笼子里。
第四,射频电路周围。射频电路对地阻抗极其敏感,缝合孔能显著降低接地电感,让参考地更加“实”。我见过一个2.4G模块的案例,天线附近地铜的缝合孔从稀疏改成密集后,发射功率和接收灵敏度都有可测的改善。
2. 动手之前先做好铺垫:铺铜与设计规则的准备工作
2.1 在PADS里先把过孔类型和间距规则定义好
缝合孔的添加不能靠临时抱佛脚,必须在设计规则阶段就预留好合适的过孔类型。否则你边画边建过孔,容易因为参数错误导致后面批量放置后DRC一堆报错,返工到怀疑人生。
在PADS Layout中,从“工具”菜单进入“PCB设计规则”,或者是直接双击“设计规则”图标。重点设置的项目有这么几个:
过孔焊盘直径。缝合孔不需要承载大电流,所以没必要做得很大。我常用的规格是钻孔0.3mm、焊盘0.55mm,如果板厂工艺支持0.25mm钻孔,也可以进一步缩小,但没必要,0.3mm是性价比和可靠性都很好的选择。
过孔到铜皮的安全间距。这个值决定了缝合孔密集排列时会不会触发间距规则报错。一般设置0.2mm到0.25mm,如果使用0.3mm钻孔的过孔,过孔中心距最小可以做到0.55+0.4=0.95mm,但实际使用时我们不会放这么密,后面细说。
还要确认过孔是否允许连接铺铜。在PADS的规则里,过孔与铜皮的连接方式有直连和热焊盘两种,缝合孔强烈建议用直连,一字不差地说,就是“Direct”。如果用热焊盘,过孔与铜皮之间只有四条细小的热桥连接,电气上等于变相增加了过孔电感,缝合效果会大幅削弱。
2.2 铺铜的操作细节与常见误区
缝合孔是长在铺铜上的,铺铜的质量直接决定缝合孔的效果。在PADS VX2.4里,铺铜的基本操作是点击“铜皮”工具,在“绘图工具”工具栏里选择Copper Pour图标,然后画一个闭合的边框。画完以后双击这个铜皮区域,给它分配网络,例如GND,再点击“填充”按钮,软件就会按规则生成实心铜。
这里有一个非常常见的误区:很多人图省事,直接使用“铜皮”工具里的Copper(非Pour类型),这种铜皮不会自动跟随规则变化,也不会和过孔建立动态连接。缝合孔放在这种静态铜皮上,虽然物理上连通了,但如果你后面修改走线或移动器件,静态铜皮不会自动避让,DRC检查时你会看到一片红。正确做法是使用“Copper Pour”(动态铜皮),让铜皮保持“活性”,自动避让过孔和走线。
另一个误区是网格铜和实心铜的选择。有些工程师习惯把整板都铺成网格铜,觉得好看、省铜、板材附着好。但如果你的板子有大量缝合孔,网格铜的连接效率远不如实心铜,因为网格线条本身就窄,过孔与网格的交点可能只有一两个,导电截面严重不足,缝合效果接近零。我的建议是:常规板子老老实实用实心铜,只有在需要控制板材翘曲、或者某些高频模拟板有特殊需求时才用网格铜,而且要专门对缝合孔区域做实心处理。
2.3 铺铜禁区(Keepout)的正确画法
热词里有一条“cadence禁止铺铜区”,虽然说的是Cadence工具,但PADS里同样有对应的概念,叫Keepout。Keepout的作用是定义一个禁止区域,在这个区域内不允许铺铜、不允许走线、不允许放过孔。
在PADS中,点击“禁止区域”工具(Keepout图标),画一个闭合图形,然后双击设置属性。在“图层”选项卡中选择作用范围,比如顶层、底层或所有层,在“选项”中勾选允许或禁止的对象类型,例如禁布走线、禁布过孔、禁布铜皮。
画Keepout的时机要在铺铜之前完成。因为动态铜皮会自动避让Keepout区域,如果先铺铜再画Keepout,铜皮不会自动掏空,需要重新填充或者手动画Copper Cutout才能修正,操作起来事倍功半。所以我的习惯是:铺铜前先把板子上的结构禁布区、高隔离区域、天线净空区全部用Keepout框出来,然后再铺铜,一步到位。
3. PADS VX2.4缝合孔添加全流程:每个步骤的参数和意图
3.1 在PADS Router中调出缝合孔功能
PADS的缝合孔功能藏在PADS Router里,不是在PADS Layout的界面直接操作。这也是很多新手卡住的地方:在Layout里翻遍了菜单找不到缝合孔,以为软件没有这个功能,就开始手动一个一个放孔。
正确路径是这样的:先用PADS Layout打开板子,然后在“工具”菜单中选择“PADS Router”打开布线器。进入Router界面后,加载的仍然是同一块板,但是多了一些高级布线相关功能,其中就包括缝合孔。
在Router中,先框选需要添加缝合孔的区域。我习惯的做法是直接选中整块铺铜区域,或者在板框内全选。然后点击右键,在弹出的菜单里找到“添加缝合过孔”(Add Stitching Vias)选项。需要注意的是,不同小版本之间菜单位置可能略有差异,有的版本里这个功能在“编辑”下拉菜单中,有的在右键菜单里,如果你找不到,就在菜单栏里点一遍“编辑”,看看有没有“Stitching”相关选项。
点击后,会弹出缝合过孔设置对话框,这是整个流程的核心,后面单独花一节讲清楚。
3.2 缝合过孔对话框参数逐一拆解
在“添加缝合过孔”对话框中,需要设置的参数主要有以下几项,每一项的含义和推荐值如下。
过孔类型。这里要选择你在设计规则里预先定义好的缝合孔专用过孔,即0.3mm钻孔、0.55mm焊盘那个。不要随手选一个大号的电源过孔,缝合孔的体积小、寄生电容和电感都更低,密集放置时对设计的影响也更小。
网络。一般选择GND。缝合孔的核心任务是把各地网络连成一个低阻抗整体,所以网络必须指向地。如果你的板子上有地分割,需要特别注意缝合孔不要跨越分割区域,否则等于直接桥接了两个地平面,破坏了分割的意义。
间距。这是缝合孔的相邻过孔中心距。推荐值是2.5mm到5mm。具体取舍看你的工作频率:频率越高,回流电流越集中在表层,需要的缝合孔越密集;普通数字电路板取3mm左右比较稳妥,高速板可以做到1.5mm到2mm,但要注意别太密导致板子强度下降。经验法则是缝合孔间距不超过最高关注频率对应波长的二十分之一,举个例子:1GHz信号对应波长300mm,二十分之一就是15mm,看起来3mm绰绰有余,但实际因为介质常数和回流集中效应,工程上会用更保守的间距。
离边界距离。这个参数控制缝合孔距离铺铜区域边界的最小距离,一般设置为0.5mm到1mm即可。太贴边会导致过孔半悬在铜皮边缘,焊接和阻抗特性都不理想。
设置完成后,点击确认,Router就会在选中的区域内自动按照设定间距生成一排排整齐的缝合孔,像稻田插秧一样均匀。这个操作对大面积地铜特别高效,几百个孔几秒钟就全部放好了,纯手动放孔的话得点半个小时。
3.3 缝合孔生成后的微调手法
自动生成的缝合孔整体很规整,但总有个别位置需要手动干预。比如有些过孔落在了螺丝孔附近,或者与结构件干涉,这时候不需要删掉整个缝合孔集,直接单独选中这几个过孔删除即可。
如果发现局部区域缝合孔太稀疏或太密集,也可以单独选中区域内的过孔,删除后重新在局部执行一次缝合孔操作。PADS的缝合孔功能支持多次添加,后添加的会和原有孔自动避让?实际上并不会自动避让,它只会按网格生成,所以局部重做时最好把旧孔先删除,否则可能出现重叠或间距违规。我常用的方式是用“选择过孔”过滤器,框选出局部区域内的缝合孔,删除后再重新添加。
还有一个实用技巧:有些缝合孔生成后发现没有连接到地铜,检查网络属性时显示为“无网络”或者孤儿过孔。出现这种情况,多半是因为对面层的铜皮是静态铜皮或者铜皮有破损,过孔没有与铜皮建立连接关系。解决方法就是在Layout中重新填充一遍铜皮,让过孔与铜皮重新建立连接,然后再回Router里确认网络。
4. 阵列过孔的独立应用:另一种批量打孔思路
4.1 缝合孔功能与阵列过孔的分工
缝合孔功能是“软件按规则自动生成”,适合大面积、规则网格的场景。但PCB设计里并不是所有需要过孔的场景都适合这种全自动方式。比如我要在某个电源模块下面放一片散热过孔,或者在USB接口的滤波电路附近放一圈接地过孔,这种局部强调的场景,用“阵列过孔”的方式反而更灵活可控。
阵列过孔的本质是:先手动放置一个过孔,然后按照指定的行数、列数和间距,一次性复制出一片过孔阵列。它和缝合孔的区别在于,缝合孔会自动跟随铺铜区域形状、自动避让障碍物,而阵列过孔是纯粹的机械式行列复制,不会考虑你旁边有没有走线、有没有器件,完全按你给的数字来。
4.2 手工放置基本过孔并批量复制的操作步骤
第一步,先确认当前层和网络。在PADS Layout中,选择走线层为需要连接的地层,从“设计”工具栏中选择“过孔”工具,在目标区域放置第一个缝合孔。放置时立即按Tab键或直接在设计规则中确认网络为GND。
第二步,选中这个已放置的过孔,点击右键,在弹出的菜单中寻找“阵列”(Array)或“重复放置”(Step and Repeat)选项。我用的VX2.4版本里,右键菜单有“Add Array”的入口,点击后弹出的对话框需要填写这些参数:
- 列数/行数:根据区域大小临时估算,比如我要覆盖一个10mm×8mm的区域,过孔间距3mm,那么大约需要4列×3行,计算方式是区域长度除以间距后向上取整再加一。
- 列间距/行间距:这里输入3mm,与缝合孔的间距保持一致,保证电气性能均匀。
- 递增方向:往X方向和往Y方向递增,通常选择90度方向展开。
确认后,PADS会按设定生成一排整齐的过孔阵列。如果阵列生成后发现有局部与器件干涉,直接选中干涉位置附近的过孔删除即可。
4.3 阵列过孔时的参数计算与实操建议
阵列过孔虽然简单,但有几个细节值得注意,否则容易返工。
阵列的方向要和板子的实际方向对齐。如果板子是斜的,就不要凭感觉输入行列数,最好先测量区域的角度,在阵列参数中输入对应的旋转角度,否则阵列整体是斜的,看起来会非常难受。
间距取值要结合板厚和过孔孔径。板厚1.6mm、钻孔0.3mm的过孔,阵列间距3mm完全没问题。但如果板子很厚(比如2.4mm),过孔的长细比变大,钻孔时容易偏斜,阵列间距可以适当放宽到3.5mm以上,保证成品率和结构强度。
还有一点,阵列过孔生成后,网络属性可能因为复制操作而丢失,变成“无网络”。我踩过这个坑,在板厂回来检查时发现一堆过孔和地铜没有连通,看起来在铜皮上,但实际上是“假连接”。解决方法是:全选阵列过孔,在属性对话框中统一将网络修改为GND,然后再重新填充铜皮,确保过孔与铜皮建立真实的连接关系。
4.4 阵列过孔和缝合孔如何配合使用
实际工程项目中,两者常常是配合关系,而不是二选一。
大面积的核心地平面区域,用PADS Router的缝合孔功能全自动生成,保证整体均匀性;局部重点区域,比如电源模块、接口滤波地、天线净空边界,用阵列过孔做针对性加强。举个例子,DC-DC电源下方,通常需要多个过孔把顶层和底层地连接起来,降低回路电感,我会用阵列过孔在模块下方放两排10个孔,间距2mm左右——这种局部高密度用缝合孔反而不容易控制位置,它可能给你放得歪七扭八。
配合使用时的经验是“缝合孔打底,阵列孔强化”。底子均匀,局部够密,EMC性能和信号完整性都能兼顾。
5. 缝合孔做完之后的验证与高频踩坑点
5.1 如何检查缝合孔是否真的“缝”上了
打完缝合孔这件事不算完,关键要检查它是否真的和地铜建立了连接。我见过太多板子,表面上过孔密密麻麻非常漂亮,实际一测网络属性,要么是孤立过孔(No Net),要么是悬空过孔(Unrouted)。
快速检查方法很简单:在PADS中打开“无网络”过滤显示,在“视图”菜单的“网络”颜色显示里,把所有无网络的过孔用高亮颜色显示出来。如果缝合孔区域出现了高亮的“无网络”过孔,说明这些过孔没有和任何铜皮建立连接,需要处理。
处理办法我之前已经提到,先在属性中给这些孤孔分配GND网络,然后返回PADS Layout,点击“填充管理”,执行一次全面的铜皮重新填充。重新填充后,过孔就会真正“咬”进铜皮里。之后再到Router里检查一遍网络,确认不再是No Net状态。
另一个检查维度是DRC。运行PADS的“验证设计”功能,重点看“过孔到过孔间距”的报错。缝合孔密集区域如果报出一堆间距违规,说明你的设计和规则有冲突,调整规则或者调整过孔位置,不要硬着头皮忽略报错。缝合孔的位置违规在PCB生产时可能会直接导致钻孔偏孔、焊环断裂,这种可靠性问题在恶劣环境下非常致命。
5.2 热焊盘、孤儿铜和分割地平面:三个容易忽略的坑
热焊盘问题。前面提到过,缝合孔要求直连铜皮,但如果你在设计规则里没有修改连接方式,默认可能还是热焊盘连接。这种情况下,过孔和铜皮之间的连接截面积非常小,回流电流通过时相当于经过了一个瓶颈,缝合效果大打折扣。检查方法:选中缝合孔,看属性中的“连接方式”,如果是Thermal,改成Direct。批量修改的方式是选中所有缝合孔,右键打开属性对话框,统一调整。
孤儿铜问题。动态铜皮在某些狭窄区域可能无法完全填充,形成孤立的“铜岛”,即没有通过任何过孔或走线与网络主体连接的铜皮。这种铜岛在电气上是浮空的,等于一个随机天线,反而恶化EMC。缝合孔如果打在铜岛上,等于给浮空铜皮加了一根天线,问题更严重。处理方式是:在PADS中执行“铜皮检查”,把孤儿铜皮删除或手动补过孔连接。
分割地平面问题。在前置准备时就应该规划好地平面的分割,安装缝合孔后更要检查缝合孔是否跨越了分割区域。如果缝合孔把割开的地平面又桥接起来,那分割就白做了,模拟地和数字地之间的噪声会通过缝合孔串通,导致信号质量灾难。
5.3 关于缝合孔间距的一些实测体会
经常有人问我:“缝合孔间距到底多少合适?”我给不出一个精确数字,因为这完全取决于你的叠层、频率和EMC要求,但可以说几个实测规律。
在普通四层板、数字时钟频率在100MHz上下的板子上,缝合孔间距3mm和间距5mm,EMC测试结果差异大概在2到3dB。如果你的产品余量很紧张,把间距缩小比换更高成本的滤波器更划算。
在射频区域,间距2mm以内是常见做法。射频工程师对地的抠门程度超出一般想象,我能理解,因为每增加0.1nH的接地电感,对射频性能都是可见的损失。
还有一个被很多人忽略的细节:缝合孔不要在地平面的正中央铺得太密。回流电流天然集中在走线下方和板边,地平面中央的缝合孔贡献有限。把有限的过孔预算优先分配给走线密集换层处、板边、接口和器件下方,性价比远高于全板均匀分布。
6. 回到工具本身:VX2.4版本的一些使用心得
用PADS VX2.4做缝合孔已经有几年时间,整体来说这个版本的功能完成度已经相当高,几个大的坑基本都被Mentor填完了。但一些小问题还是存在,比如在Router里添加缝合孔时,如果板子上有大量未布完的走线,软件会明显卡顿,尤其是框选大面积铜皮时。我的建议是缝合孔操作尽量放在布线接近完成阶段,这时候动态铜皮数据量更小,Router运行更流畅。
另一个心得是,给多块相同结构的板卡做设计时,缝合孔的参数和规则可以保存为一份独立的规则文件。PADS支持从已有的PCB文件导出规则(在“文件”菜单里选择“导出”中的“规则”),下一次新板子直接导入这套规则,缝合孔类型、间距、安全距离全部自动载入,不用重新设置一遍。这个习惯帮我省了大量的重复劳动,强烈推荐。
还有一个和结构工程师协同的小技巧:板子上如果有金属屏蔽罩,建议在屏蔽罩焊盘下方加一圈缝合孔。金属屏蔽罩通过焊盘连接地后,如果下方没有缝合孔把顶层地铜和内地平面连通,屏蔽罩就会成为一个巨大的浮空金属体,不仅起不到屏蔽作用,反而可能辐射增强。加一圈缝合孔后,屏蔽罩真正变成“接地的笼子”,屏蔽性能才能发挥出来。
最后说一下我个人的工作习惯:缝合孔不是在布线完全结束后才想起来加的,而是在布局基本确定、关键走线扇出完成的时候就开始规划。哪几个区域需要密集缝合,哪几个区域只需要稀疏布置,心里提前有数。等PCB布线全部走完、铺铜全部填充完毕,再统一执行缝合孔操作。这样节奏清晰,不需要中途反复调整过孔位置和数量,效率最高。毕竟缝合孔看起来只是“点一下的事”,但其背后的信号回流设计、平面完整性保障和制造工艺适配,才是影响板子最终性能的关键。