
做PCB设计的人一听到Allegro的热风焊盘就头疼这个功能说大不大说小不小但你要是没弄明白内电层连接、大铜皮散热、回流焊虚焊这些问题分分钟找上门。我这次用Cadence Allegro 17.4做了两块板子把热风焊盘制作和过孔添加的整套流程好好捋了一遍中间踩了不少坑也积累了一些实打实的经验今天分享出来给有需要的朋友。文章涉及的版本是17.4不过大部分操作思路在其他版本里也通用关键是理解每个参数背后的逻辑。这是一篇纯实操向的内容我不会讲太多教科书理论重点放在三件事怎么做热风焊盘、怎么正确加过孔、以及两者之间怎么配合。无论你是刚转Allegro的新手还是被内电层连接搞得焦头烂额的老手这篇都应该能帮到你。1. 先搞懂两件事什么是热风焊盘为什么它那么重要1.1 热风焊盘的核心作用热隔离与可焊接性热风焊盘英文叫Thermal Relief在Allegro的Padstack Editor里通常显示为Thermal Relief层。它的本质是一个连接焊盘和内电层铜皮的过渡结构最常见的形状是梅花瓣式——中间一个圆环四周开几个弧形或直角的开口把实心铜皮分割成几段连接到焊盘上。为什么不能直接把焊盘和内电层铜皮实心连起来这里涉及两个物理问题散热和焊接。如果你的焊盘直接铺一大块铜皮在上面烙铁或回流焊的热量会迅速被铜皮导走焊盘温度上不去锡膏不能充分熔融结果就是虚焊、冷焊板子做回来一测一堆问题。热风焊盘通过减少金属连接面积来限制热量流失让焊盘在焊接时能迅速升温。另一个问题是SMT贴片时的“立碑”现象。无源器件两头焊盘如果一边连了大铜皮、一边没连两边散热速度不一样回流焊时焊料熔化和凝固的时间就有差异元件会被拉起来严重的直接立起来。热风焊盘是平衡两侧散热速度最有效的手段之一。1.2 没有热风焊盘会怎样直连铜皮的三大隐患我先说个真实案例。去年有一块电源板我在内电层放了一个大电流的过孔阵列当时图省事直接用实心连接没做热风焊盘。板子贴片回来后有一排LED驱动芯片虚焊率高达百分之二三十返修折腾了一个礼拜最后把内电层连接方式改成热风焊盘才彻底解决。热风焊盘真的不只是“规范要求”它直接影响产品的良率。直接实心连接内电层铜皮最常见的问题有三个焊接不良热量被大面积铜皮快速导走焊点温度不够形成冷焊或虚焊。维修困难如果你想用烙铁拆一个器件它的引脚连着一大块铜皮热量怎么都补不上去烙铁头拿开温度马上掉下来拆个元件像打仗一样。应力开裂铜皮和焊盘的热膨胀系数不一样温差变化大时实心连接处的应力集中容易导致焊盘开裂尤其是板材质量一般的情况下。所以除非是特别大的电流通流需求比如大功率MOSFET的散热焊盘或者有明确的仿真数据支持否则我都建议内电层连接默认用热风焊盘。1.3 热风焊盘的设计误区与命名规则我见过不少刚上手Allegro的同学花了很多时间做了热风焊盘结果在PCB里怎么都显示不出来最后发现是一个很低级的错误——在Padstack里根本没把热风焊盘的图形画对或者没有映射到正确的层。还有一个误区是命名混乱。Allegro的焊盘文件.pad和焊盘库.dra是靠文件名关联的热风焊盘的图形通常包含在.pad文件内部所以当你创建一个焊盘时你需要为这个焊盘的每一层设置对应的图形包括Regular Pad正片层正常焊盘Thermal Relief热风焊盘Anti Pad隔离焊盘很多人的问题在于只做了Regular Pad忘了做Thermal Relief或者用了错误层的几何图形。举个常见的例子有人用Flash符号.fsm做热风焊盘时把开口数量、角度搞错或者Thermal relief的口径算错结果不是连接面积不够导致载流不足就是开口过大隔热效果太差。我建议每个项目建立一套命名规范例如SMD电阻焊盘R0402_12X14_PAD.pad热风焊盘图形TH_R0402_OPEN25.fsm 这样一看到文件名就知道它的用途和关键参数后期维护省心很多。2. Allegro 17.4热风焊盘制作全流程2.1 打开Padstack Editor正确操作与界面认知Allegro 17.4里制作焊盘和热风焊盘的工具是独立的“Padstack Editor”通常在开始菜单的Cadence文件夹里能找到也可以在PCB Editor里通过Tools→Padstack→Edit Padstack打开。启动后你会看到左侧是层列表右侧是参数区。界面虽然是英文但结构很清楚。先理清Allegro焊盘设计的核心概念一个完整的焊盘文件包含三个主要几何元素几何元素英文名称作用正常焊盘Regular Pad定义顶层、底层、内层的实际焊盘尺寸热风焊盘Thermal Relief定义焊盘与内电层铜皮的连接方式隔离焊盘Anti Pad定义焊盘周围禁止铜皮进入的区域我之前见过一些教程上来就让人改参数没有解释清楚这三者的关系。其实一个焊盘文件就像一个人的“多重身份”在表层露出来的焊盘是Regular Pad在电源/地层与铜皮连接时用Thermal Relief在需要完全隔离的地方用Anti Pad。三者不是三选一而是同一焊盘在不同层、不同情况下的不同呈现方式。在Padstack Editor的左侧层列表中你需要针对“Default Internal”内层默认以及可能用到的“Top”和“Bottom”来分别设置这些图形。如果是一块四层板顶层和底层走线第二层和第三层是完整的地和电源平面那么焊盘在第二层和第三层时就需要用到热风焊盘和隔离焊盘。2.2 设置热风焊盘的几何参数内径、外径、开口宽度热风焊盘最常用的图形是Flash梅花瓣形在Allegro里可以通过“Shape→Add Flash”或直接用“Add Flash”工具来生成。不过更高效的做法是用符号编辑器先做好Flash符号.fsm再在Padstack Editor里引用它。创建Flash符号有几个关键参数需要算清楚外径Outer Diameter这个尺寸要大于焊盘直径通常比焊盘大10~15mil确保能完全覆盖焊盘的连接区域。比如你的通孔焊盘外径是60mil那Flash外径建议做到70~75mil。内径Inner Diameter这个尺寸通常略小于焊盘尺寸或者等于焊盘的钻孔直径。它决定了热风焊盘环形环的宽度环太宽热隔离效果差环太窄电流承载能力不足。开口宽度Spoke Width即梅花瓣开口的宽度这直接决定了焊盘和铜皮的实际连接面积。开口太窄通流能力不够开口太宽热量流失太快。我自己常用的经验公式是内径 焊盘外径 - 2×环宽环宽通常取8~12mil。开口数量一般为4个也就是四瓣梅花。开口宽度通常取内径与外径差值的35%~50%。举个例子焊盘外径60mil内径30mil环宽就是15mil这个环宽对于大多数信号过孔足够了但对电源过孔我通常会把内径加大到35mil左右保证环宽在12~13mil增加通流能力。画Flash符号的实操步骤17.4版打开PCB Editor新建一个Symbol类型选Flash。设置画布原点用Add→Flash输入内径、外径、开口数量、开口角度。保存为. FSM后缀的文件例如TH_60_30_4SPOKE.fsm。在Padstack Editor中选中Internal层的Thermal Relief列点击“Select Flash Symbol”选择刚才保存的.fsm文件。这里有个需要特别注意的地方Allegro的Flash符号坐标原点必须是焊盘中心否则热风焊盘放上去的时候会偏移。我第一次做的时候没注意原点的位置结果板厂反馈说热风焊盘偏移了半个焊盘后来重新定位原点才算搞定。2.3 将热风焊盘分配给焊盘叠层结构Flash符号做好之后接下来就是把它“放”进焊盘文件里。在Padstack Editor中在左侧层列表中选择“Default Internal”或具体的电源/地层。在右侧的Thermal Relief栏中选择Flash类型并指定Flash符号文件。在Anti Pad栏中设置隔离焊盘通常是一个比焊盘外径大5~10mil的圆形或方形。这里我建议不要偷懒把每一层的Thermal Relief都做出来。即使你现在做的只是两层板以后复用这个焊盘到四层板或六层板时就不需要重新做焊盘了。我见过很多设计师复用焊盘的时候发现内层没有Thermal Relief只能回头一个个改那真是浪费时间。另外Anti Pad的尺寸也很关键。它不能太小否则内层铜皮与焊盘之间的间距不够容易短路也不能太大否则会过多挤占布线空间内层铜皮的连通性变差。常规做法是比Regular Pad大10~15mil如果你的板厂工艺比较成熟8mil也可以。2.4 从零创建一个通孔焊盘的完整实例我以最常用的通孔电阻焊盘为例走一遍Allegro 17.4中从创建符号到生成焊盘的完整流程确定需求插件电阻引脚直径为0.6mm我们选钻孔直径0.8mmRegular Pad直径为1.5mm。打开PCB Editor新建Flash符号内径1.2mm外径1.8mm开口4个开口宽度0.35mm保存为TH_DIP15_D12_OPEN35.fsm。打开Padstack Editor新建PadstackDrill尺寸填0.8mmTop层Regular Pad填1.5mm圆形Internal层Regular Pad同样填1.5mm圆形Thermal Relief选择刚才的Flash符号Anti Pad填1.7mm圆形。为Bottom层设置同样的参数。保存为PTH_DIP15_D08.pad。然后你在PCB Editor中调用这个焊盘时只要保证这个.pad文件在库路径里放置元件时Allegro就能正确识别每一层的图形。3. 在Allegro 17.4中正确添加过孔3.1 过孔的基本类型与Padstack选择Allegro的过孔Via分为通孔Through-hole、盲孔Blind Via和埋孔Buried Via。对多数人来说用到最多的是通孔它贯穿整个板子成本最低加工最简单。在17.4里添加过孔最直接的路径是Place → Via Arrays → Define Array 或 Add Single Via。布线过程中按快捷键默认是“~”或“V”切换模式然后点击走线位置添加过孔。但我更推荐在设计规则里先把过孔种类定义好避免布线时临时选错。具体操作是在Constraint Manager → Physical → Vias里把允许使用的过孔型号添加进去。然后布线时按ShiftV或“~”就可以在允许列表里切换过孔类型。这里要强调一个重要概念过孔也是一个“焊盘”它同样需要Regular Pad、Thermal Relief、Anti Pad。很多人只设置Regular Pad就完事了结果在电源/地平面层上过孔和内层铜皮的连接是实心的根本没有热隔离。如果你是电源过孔阵列这个问题会被放大。3.2 过孔的尺寸设计与载流能力计算过孔尺寸怎么定很多人都是拍脑袋选的。我提供一个很实用的经验流程先定钻孔大小常规工艺最小机械钻孔是0.2mm但为了可靠性和成本我建议至少用0.3mm。如果是高密度板0.25mm也可以但板厂报价会贵一些。再定焊盘外径通孔焊盘外径 钻孔直径 0.4~0.6mm16~24mil这是为了保证钻孔偏差后仍有足够的焊环宽度。举例钻孔0.3mm焊盘外径至少0.6mm。最后校核载流能力每个0.3mm钻孔、1oz铜厚的过孔通过1A电流时温升大约在10℃左右。如果你想通过2A以上电流建议采用多孔并联或者加大焊盘环宽。载流能力有一个粗略估算公式I k × ΔT^0.44 × A^0.725其中A是过孔铜壁的截面积k是常数内层约为0.024外层约为0.048。在实际工程里多数人懒得算精确值所以我一般直接建议电源网络每1A电流至少放一个0.3mm的过孔并且过孔之间间距不要小于0.5mm否则散热太集中反而影响载流。3.3 在PCB中布置过孔扇出、阵列与手动添加Allegro里添加过孔有三种常见场景布线中手动添加走线拉到一半按“~”键或v键打个孔换层继续走。此时过孔的Padstack可以选择也可以通过ShiftV切换。过孔阵列Via ArraysPlace → Via Arrays → Create Boundary框选一个区域然后设置行列间距Allegro自动铺一排过孔。这个在电源模块的输入输出端特别常用能保证电源路径的低阻抗。扇出Fanout针对BGA等高密度器件可以用Route → Fanout by Pick或Fanout by Component让Allegro自动把引脚引出到过孔。BGA扇出时过孔位置和顶层走线相关需要仔细设置Fanout选项否则后期调整很痛苦。3.4 过孔与热风焊盘的配合关系不是所有地方都需要热风焊盘这里我要说一个很多人忽视的点并不是所有的过孔都需要热风焊盘。如果这个过孔只承载高频信号不涉及电源/地平面层的连接那么它在信号层就是Regular Pad在电源/地平面层可以选择Anti Pad隔离完全不连接。这时候你不需要给它做热风焊盘做了反而是多余的。真正需要热风焊盘的过孔是电源或地过孔过孔需要连接到内电层的电源/地铜皮但焊接时又需要一定的热隔离。需要手工焊接的插件器件引脚过孔。大电流过孔阵列虽然大电流需要实心连接来增加通流能力但我建议在量产板中还是用热风焊盘然后通过增加过孔数量来弥补载流损失。这里有一个常见的取舍电源过孔到底是实心连接还是热风焊盘我的做法是如果是电源模块底下的大面积散热过孔我选择实心连接如果是普通的电源分配网络过孔我用热风焊盘。前者需要散热通道后者主要是电气连接。这两种情况分开处理不要一刀切。4. 热风焊盘与内电层连接的实际操作4.1 设置电源/地平面层的连接方式在Allegro 17.4里除了Padstack里的热风焊盘设置还需要在PCB Editor里设置电源/地平面层与焊盘的连接方式。这个很容易漏掉因为它在不同的菜单下。操作路径打开Constraint Manager。找到Physical → Nets或Spacing → Same Net Spacing。在“Shape”相关选项中设置连接方式。更直接的办法是在PCB Editor中选中内电层铜皮Shape右键“Assign Net”然后查看它的属性。Allegro的内电层铜皮默认连接方式有三种Orthogonal正交连接花瓣走线垂直于焊盘边缘。Diagonal对角连接花瓣走线与焊盘边缘呈45度角。Full Contact全连接实心连接。在17.4中打开Shape的属性界面选中铜皮按CtrlI找到“Shape Fill”选项卡在“Connect”选项里可以选“Thermal Relief”并指定连接方式。如果你想让热风焊盘真正生效铜皮的连接方式就不能选Full Contact。4.2 内电层电源过孔的阵列设计与实测我这里分享一个最近做的电源板实例。输入12V、输出5V/8A用了4个开关管并联。为了降低输入输出回路的寄生电感我在输入电容的下面打了12个0.4mm的电源过孔排列成3行×4列。操作流程在PCB Editor中将输入电容摆放在靠近开关管的位置。用Place → Via Arrays → Create Boundary在电容焊盘旁边画一个矩形区域参数设置行间距0.8mm列间距0.8mm孔型号选择PWR_VIA_04_08。阵列生成后把不需要的过孔手动删除保留12个。将过孔的网络属性通过菜单Edit→Properties或直接右键Assign Net分配给VIN网络。在内电层检查这12个过孔与VIN铜皮的连接方式确认是热风焊盘连接而不是全连接。实测下来12个过孔并联输入回路的等效电阻降到了1mΩ以下开关波形上的振铃明显减小。这一步对电源设计来说价值很大。4.3 混合使用实心连接和热风焊盘的技巧还有一种情况很实用在同一块内电层铜皮上有的器件需要实心连接有的需要热风焊盘。Allegro支持对单个焊盘或网络单独设置连接方式方法是选中目标焊盘右键“Properties”在“Shape Connect”属性里选择“Full Contact”或“Thermal Relief”。这个功能在很多场景下能救命。比如功率MOSFET的散热焊盘它的漏极引脚需要通过铜皮散热这时候你希望实心连接但旁边的小信号电阻你希望热风焊盘连接。如果整块铜皮的默认连接方式是热风焊盘你只需要单独把MOSFET那几根引脚改成Full Contact其他不动。反过来也是一个道理。这里我需要提醒一个细节如果铜皮的连接方式设置为热风焊盘但Padstack里该焊盘没有定义Thermal Relief图形那么Allegro会显示一个警告并且在光绘文件里可能直接不连接导致开路。这是一个非常隐蔽的坑。所以每次做光绘之前我习惯在Artwork里用“Check Database”或者用Toolbox里的工具跑一遍专门检查这类问题。5. 常见问题排查与17.4版本避坑实录5.1 热风焊盘在PCB中不显示怎么办热风焊盘不显示几乎是初学者问得最多的问题。排查步骤如下确认Padstack Editor中Thermal Relief列确实选了Flash符号并且符号路径正确。Allegro对文件路径很敏感如果Flash符号被移动过Padstack Editor里显示不出来。确认PCB中该网络的铜皮连接方式不是Full Contact。如果铜皮的Shape属性没有启动Thermal Relief那你做再好的散热焊盘也没用。确认你查看的层是正确的。热风焊盘只出现在内电层电源/地层顶层和底层默认是Regular Pad你不可能在顶层看到热风焊盘。用Artwork光绘输出预览确认。有时候屏幕显示不做热风焊盘但输出光绘时反而正确这是因为图形引擎的显示设置问题。按“Replay”刷新或者用“Render→Full Redraw”看看。5.2 过孔DRC报警连接不良、间距不足、钻孔重叠我遇到的DRC问题主要有几类过孔和内电层铜皮间距不足报“Shape to Via Spacing”错误。原因通常是Anti Pad尺寸太小铜皮离过孔太近。解决办法是在Padstack Editor里把Anti Pad外径加大。过孔焊盘之间间距不足报“Via to Via”或“Pad to Pad”错误。如果允许的过孔列表里包含了多种不同尺寸的过孔而你没有统一它们的位置网格很容易出现小间距。解决方法是统一栅格Grid到0.1mm或0.127mm并在Constraint Manager里设置过孔安全间距。钻孔重叠两个过孔钻孔重叠报警这是板厂最不能接受的。批量修改时建议用“Manufacture → NC → Check Drill”先检查一次钻孔文件再输出。5.3 17.4版本里的几个特定坑17.4虽然已经很成熟了但有几个小问题值得提一下快捷键“~”键在某些键盘布局下不太好按我建议另外设置一个方便的快捷键比如“V”在Environment文件env或allegro.env里加一行alias V “add connect”。这样在布线时按V就能直接打孔。17.4的Padstack Editor和PCB Editor之间切换时偶尔会出现焊盘文件被锁定的情况。如果提示文件只读检查是否有另一个Allegro窗口打开了同一个Padstack。17.4里做Flash符号不要直接用老版本16.x的.fsm文件格式兼容偶尔会有问题建议用17.4重新生成。使用“Add Single Via”手动放置过孔时如果当前激活的网络是空的过孔会默认挂在BOARD NET上导致后面重新分配网络很麻烦。建议在放过孔前先选中某条走线或者直接设置一个默认网络。5.4 板厂反馈热风焊盘异常的对策有时候你做了所有正确设置板厂还是反馈数据有问题。最常见的情况是板厂说热风焊盘的开口角度不符合他们的工艺要求。Allegro的Flash符号默认开口角是45度某些板厂工艺可能要求20度或30度。解决办法是在做Flash符号时把开口角度设置成板厂推荐的数值通常20~45度之间。还有一个容易被忽略的点Flash符号的开口数量。如果焊盘较大可以做6个或8个开口增加连接面积和机械强度。但每个开口的“花瓣”如果太窄加工时铜皮容易断裂。我的经验是开口宽度不要小于0.2mm否则制造公差可能导致实际开口形状与设计偏差很大。6. 总结这套流程的实操价值这一套流程走下来最核心的收获不是记下了几个操作步骤而是建立了一个判断框架什么位置的铜皮连接需要热隔离什么位置需要实心连接以及如何在Allegro里高效地实现两种方式的切换。热风焊盘和过孔是两个独立又紧密相关的主题把它们放在一起理解才能在设计电源内层、BGA扇出、高密度布线时游刃有余。我个人在实际操作中的体会是热风焊盘这件事第一次做的时候花点时间把库建好、命名规范定好后面每个项目都能受益。有些同事图快直接复制粘贴别人的焊盘文件结果内层的连接方式不合适后面改起来反而更费时。另外每次生成光绘前都跑一遍数据库检查重点看热风焊盘是否被正确调用、过孔是否有DRC隐患这两项能帮你在投板前挡住绝大多数低级错误。最后再分享一个小技巧Allegro 17.4里可以用“Reports → Padstack Report”一次性导出所有已用焊盘的详细信息包括每个焊盘在各层是否有Thermal Relief、Anti Pad的参数等。板厂有疑问时把这个报告直接发给工艺工程师沟通效率能提升不少。搞电路的工具只是手段把底层逻辑吃透了换哪个版本、哪个工具都不慌。