ARTICLE DETAIL

资讯详情

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

Allegro过孔放置全攻略:单孔、阵列与Fanout实战技巧

Allegro过孔放置全攻略:单孔、阵列与Fanout实战技巧 1. 过孔放置这件事为什么值得单独拎出来讲画PCB的人都有一个共识布局决定成败布线决定性能而过孔——这个看起来只是“打个洞”的动作实际上同时牵扯到电气性能、散热能力、机械强度和可制造性。我见过太多板子原理图没问题布局也说得过去最后栽在过孔上电源路径上就放了俩小孔满载跑起来压降大得离谱BGA底下过孔塞得密密麻麻结果加工厂反馈孔到铜的距离不够良率直接腰斩。Allegro在过孔放置这块给的工具链其实相当完整从最基础的单孔手动放置到Fanout自动扇出再到Via Array阵列批量生成覆盖了从原型验证到量产设计的全部场景。但工具多不代表好用很多人用了几年Allegro依然只会手动一个个点效率低不说一致性还差。这篇内容就把单孔、阵列、Fanout这三条路径彻底讲透顺带把电源过孔、散热过孔这些特殊场景的处理方式一并说清楚。不管你是刚接触Allegro的新手还是已经画过几十块板子的老手只要你的日常工作里涉及PCB设计这篇内容都能帮你省下大量重复劳动的时间同时避开那些“看起来没问题、跑起来要命”的坑。2. 过孔放置的整体思路与工具选型2.1 先搞清楚你要放的是什么类型的过孔在动手之前得先把过孔的分类理清楚。Allegro里过孔的类型远不止“通孔”一种不同场景用的过孔在Padstack定义、钻孔方式、镀铜工艺上都不一样。选错了类型后面再怎么调都是白费功夫。从结构上分常见的有这几类通孔Through Via从顶层贯穿到底层最通用成本最低但占用所有层的布线空间。盲孔Blind Via从外层打到内层不贯穿整板用于高密度BGA区域。埋孔Buried Via完全在内层之间外层看不到用于极高密度场景。微孔Microvia激光钻孔通常用于HDI板孔径极小。从功能上分又可以分为信号过孔承载高速信号需要关注阻抗匹配和回流路径。电源过孔承载大电流需要关注载流能力和压降。散热过孔用于导热通常成阵列分布在发热器件下方。接地过孔用于连接地平面降低接地阻抗。注意盲孔和埋孔的成本远高于通孔除非密度实在压不下来否则优先用通孔方案。很多加工厂对盲埋孔的工艺能力有限设计前一定要和工厂确认。2.2 工具选型手动、Fanout还是Via ArrayAllegro提供了三种主要的过孔放置方式各有适用场景放置方式适用场景效率一致性学习成本手动单孔放置零星过孔、特殊位置低差极低Fanout自动扇出BGA/QFN等密集器件高好中等Via Array阵列散热、电源、屏蔽极高极好中等我的建议是零星过孔手动放器件扇出用Fanout大面积阵列用Via Array。三者配合使用基本能覆盖95%以上的场景。下面逐个拆解。2.3 Padstack的定义是基础中的基础不管用哪种方式放过孔前提是你得先有定义好的Padstack。Padstack就是过孔的“模板”定义了钻孔直径、焊盘直径、阻焊开窗、反焊盘等参数。在Allegro里通过Setup Padstack Padstack Designer打开编辑器。一个典型的通孔Padstack需要设置Drill钻孔直径通常比成品孔径大0.1-0.15mm考虑镀铜厚度。Regular Pad各层的焊盘直径一般比钻孔大0.2-0.25mm。Thermal Relief负片层用的热焊盘内径比钻孔大0.25mm左右外径比焊盘大0.2mm。Anti Pad负片层的隔离盘比焊盘大0.2mm左右。Solder Mask阻焊开窗通常比焊盘大0.05-0.1mm。举个实际例子一个0.3mm成品孔径的过孔钻孔设0.4mm焊盘设0.6mm反焊盘设0.8mm阻焊开窗设0.65mm。这套参数在大多数加工厂的工艺窗口内都是安全的。实操心得Padstack命名一定要规范比如“VIA_0R3_0R6”表示成品孔0.3mm、焊盘0.6mm。项目多了以后命名混乱会让你痛不欲生。3. 单孔放置最基础但最容易出错3.1 手动放置过孔的标准操作单孔放置是基本功。在Allegro里快捷键F3或者菜单Route Via进入放孔模式然后在Options面板里选择需要的Padstack点击目标位置即可放置。看起来很简单对吧但这里有几个细节决定了你的板子能不能顺利加工第一格点设置。放孔之前一定要确认格点Grid设置合理。如果格点太密过孔位置会参差不齐如果太疏又对不准焊盘中心。我的习惯是布局阶段用0.1mm格点扇出阶段切到0.05mm精细调整时用0.01mm。第二过孔与铜皮的连接方式。Allegro里过孔和铜皮的连接有几种模式全连接Solid、热焊盘连接Thermal Relief、隔离Isolated。信号过孔通常用全连接电源过孔用热焊盘防止焊接时散热过快不同网络的过孔之间要有足够的隔离。第三过孔到线的间距。很多人只关注过孔到过孔的间距忽略了过孔到走线的间距。实际上过孔焊盘和相邻走线之间的间距如果不够加工时容易短路。一般建议过孔焊盘到走线的间距不小于0.15mm。3.2 过孔参数的实时检查放完过孔不是就完事了得检查。Allegro的Tools Quick Reports里可以生成过孔统计报告包括过孔总数、各类型过孔数量、钻孔尺寸分布等。这个报告在出Gerber之前一定要看一遍。另外Display Element可以查看单个过孔的详细信息包括它属于哪个网络、用的哪个Padstack、在哪些层有焊盘。如果发现某个过孔的网络不对直接删掉重放别想着用替换功能——替换过孔在网络不匹配时容易出问题。3.3 单孔放置的常见错误与规避我总结了几种最常见的单孔放置错误过孔放在焊盘上除非是盘中孔工艺否则过孔不能直接放在SMD焊盘上会导致焊接时锡膏流失。过孔间距不足两个过孔之间的孔壁间距Drill to Drill一般要求不小于0.25mm太小了加工厂钻头会断。过孔到板边太近过孔焊盘到板边的距离建议不小于0.3mm否则铣板时容易伤到过孔。电源过孔数量不够这是最隐蔽的错误后面会专门讲。注意Allegro的DRC设计规则检查可以帮你抓出大部分间距问题但前提是你的Constraint Manager里规则设对了。默认规则往往太宽松一定要根据加工厂的工艺能力自定义。4. Via Array阵列批量放置的效率利器4.1 Via Array的适用场景当你需要在某个区域放置大量规则排列的过孔时一个个手动放就是自虐。比如发热器件下方的散热过孔阵列电源平面连接的大电流过孔阵列屏蔽罩下方的接地过孔阵列BGA区域的规则扇出这些场景用Via Array功能几秒钟就能搞定几十上百个过孔而且间距完全一致美观又可靠。4.2 Via Array的参数设置详解在Allegro里通过Place Via Array打开阵列放置界面。核心参数有这几个Array Type阵列类型可选Matrix矩阵、Perimeter周边、Staggered交错等。散热用Matrix屏蔽罩接地用Perimeter高密度扇出用Staggered。Via Padstack选择之前定义好的Padstack。Spacing过孔间距可以是中心距也可以是边距。建议用中心距方便计算。Rows/Columns行数和列数决定了阵列的规模。Rotation阵列的旋转角度对于非正交布局很有用。举个实际计算的例子一个5mm x 5mm的散热焊盘需要放置散热过孔阵列。假设用0.3mm成品孔径的过孔焊盘0.6mm过孔中心距设1.0mm。那么5mm宽度上可以放5个过孔5/1.055mm高度上也是5个总共25个过孔。这个密度对于大多数散热场景已经足够了。如果发热量特别大可以把间距缩小到0.8mm这样能放6x636个过孔。但要注意间距太小会影响焊接时的锡膏流动可能导致虚焊。4.3 阵列放置后的检查与调整阵列放完之后一定要做这几件事检查网络连接阵列里的每个过孔是否都连接到了正确的网络。Allegro有时候会把阵列过孔默认连到某个网络如果不对需要手动改。检查与铜皮的连接阵列过孔和铜皮的连接方式是否统一。散热阵列通常用全连接电源阵列用热焊盘。检查DRC阵列过孔之间、阵列过孔与周围走线之间的间距是否满足规则。检查钻孔报告确认阵列过孔的钻孔尺寸和数量在加工厂的能力范围内。实操心得Via Array放置时建议先放一个过孔确认参数正确再用阵列功能批量放置。这样万一参数错了只需要删一个不用删一堆。4.4 电源过孔阵列的特殊考量电源过孔阵列和普通散热阵列不一样核心考量是载流能力。铜的载流能力有限一个过孔的载流量取决于它的截面积。粗略估算公式一个过孔的载流量约为孔径(mm) x 镀铜厚度(mm) x 电流密度(A/mm²)。常见镀铜厚度0.025mm电流密度取20A/mm²保守值那么一个0.3mm孔径的过孔载流量约为0.3 x 0.025 x 20 0.15A。如果要承载3A电流理论上需要20个过孔。但实际设计中要考虑降额通常按50%降额使用也就是需要40个过孔。这个数量听起来很多但用Via Array几秒钟就能放完。当然实际载流能力还受过孔长度、环境温度、铜皮厚度等因素影响上面的估算只是快速参考。精确计算需要用专业的仿真工具。5. Fanout自动扇出BGA器件的救星5.1 Fanout的基本原理BGA器件的引脚在芯片底部无法直接布线必须通过过孔“扇出”到其他层才能连接。手动给一个几百引脚的BGA放扇出过孔工作量巨大且容易出错。Allegro的Fanout功能可以自动完成这个任务。Fanout的核心逻辑是根据BGA的引脚间距、焊盘尺寸和布线规则自动计算每个引脚的最佳扇出方式过孔位置、走线角度、出线方向然后批量生成。5.2 Fanout的参数配置在Allegro里通过Route Fanout打开扇出设置。关键参数包括Via Direction过孔相对于焊盘的方向可选Outward向外、Inward向内、Any任意。Via Padstack扇出用的过孔类型。Line Lock扇出走线的角度限制通常设45度或90度。Max Via Count每个引脚最多允许多少个过孔。Spread Between Vias过孔之间的最小间距。对于0.8mm间距的BGA通常用0.2mm成品孔径的过孔焊盘0.4mm扇出方向向外。对于0.5mm间距的BGA可能需要用0.15mm孔径的微孔或者采用盘中孔工艺。5.3 Fanout后的手动优化自动扇出不是万能的生成的结果往往需要手动优化调整出线方向自动扇出可能生成一些不合理的出线角度导致后续布线困难。合并过孔相邻引脚的扇出过孔如果距离太近可以合并成一个节省空间。处理电源和地引脚电源和地引脚通常需要多个过孔自动扇出可能只给了一个需要手动补充。检查逃逸布线扇出后的走线是否能顺利逃出BGA区域如果逃不出去需要调整扇出策略。实操心得Fanout之前一定要把Constraint Manager里的规则设好特别是过孔到焊盘、过孔到走线的间距规则。规则不对扇出的结果全是DRC错误改起来比手动放还累。5.4 Fanout失败的常见原因Fanout失败通常有这几个原因BGA焊盘太大焊盘太大导致过孔放不下需要减小焊盘或改用更小的过孔。间距规则太严过孔到焊盘的间距要求太大导致无法扇出需要放宽规则或调整过孔位置。格点设置不对格点太疏导致过孔无法对准焊盘中心。Padstack未定义没有为扇出定义合适的Padstack。遇到Fanout失败先检查这四项90%的问题都能解决。6. 特殊场景下的过孔处理技巧6.1 散热过孔阵列的设计要点散热过孔的核心目标是把发热器件的热量传导到PCB内部或背面。设计要点过孔尽量靠近热源过孔离发热焊盘越近热阻越小。过孔数量要足够一般来说每平方厘米的散热焊盘至少需要20-30个过孔。过孔要贯穿所有铜层只连到一层的过孔散热效果有限要贯穿所有可用的铜层。背面要有散热铜皮过孔把热量传到背面后背面需要有足够大的铜皮来散发热量。6.2 电源过孔的载流计算与布局电源过孔的布局要遵循“就近、多点、均匀”的原则就近过孔尽量靠近电源引脚减少走线电阻。多点用多个过孔并联降低单个过孔的电流密度。均匀过孔在电源平面上均匀分布避免局部过热。载流计算前面已经提过这里补充一个更精确的估算方法对于1oz铜厚0.035mm镀铜厚度通常按0.025mm计算一个0.3mm孔径的过孔截面积约为π x 0.3 x 0.025 ≈ 0.0236mm²。铜的电阻率约1.7e-8 Ω·m一个过孔假设板厚1.6mm的电阻约为1.7e-8 x 1.6e-3 / 0.0236e-6 ≈ 1.15mΩ。如果承载1A电流压降约1.15mV功耗约1.15mW。这个数值看起来很小但如果是3A电流、只有5个过孔总压降就是0.69mV功耗6.9mW虽然不大但也不容忽视。6.3 过孔与铜皮优先级的交互Allegro里铜皮和过孔的交互是个容易踩坑的地方。铜皮有优先级设置当过孔穿过铜皮时铜皮的优先级决定了过孔和铜皮的连接方式。如果铜皮优先级高过孔会被铜皮“吞掉”连接方式由铜皮的设置决定。如果过孔优先级高过孔会“切开”铜皮形成隔离。实际设计中要根据过孔的功能来设置优先级接地过孔让铜皮优先级高过孔自动连接到铜皮。电源过孔通常也连接到铜皮但要注意不同电源网络之间的隔离。信号过孔需要和铜皮隔离设置过孔优先级高或者用Anti Pad。注意铜皮优先级设置不当会导致过孔连接错误甚至短路。出Gerber之前一定要用Display Dynamic Rats检查所有过孔的连接状态。6.4 过孔在高速信号中的处理高速信号过孔会引入阻抗不连续导致信号反射。处理要点过孔stub要短过孔在信号层之外的部分叫stubstub越长反射越严重。可以用盲埋孔或背钻来缩短stub。过孔周围要有接地过孔为高速信号过孔提供回流路径减少电磁辐射。过孔阻抗要匹配通过调整过孔焊盘和反焊盘尺寸使过孔阻抗接近走线阻抗。这些内容展开讲能写一整篇这里只提个醒如果你的板子上有DDR、PCIe、USB3.0以上的高速信号过孔处理一定要慎重。7. 常见问题与排查技巧实录7.1 过孔放置常见问题速查表问题现象可能原因排查方法解决方案过孔无法放置Padstack未定义或未加载检查Padstack库路径重新定义或加载Padstack过孔网络错误放置时未指定网络查看Element信息删除重放或手动修改网络DRC报错间距规则不满足查看DRC报告调整过孔位置或放宽规则过孔与铜皮连接异常铜皮优先级设置不当检查铜皮属性调整优先级或连接方式Fanout失败焊盘太大或规则太严检查BGA参数和规则调整焊盘或规则过孔加工不良孔径太小或间距不足检查钻孔报告调整Padstack参数7.2 过孔相关DRC错误的排查思路Allegro的DRC报告有时候会给出大量过孔相关的错误看着就头疼。我的排查思路是第一步分类。把DRC错误按类型分组间距错误、连接错误、钻孔错误。先解决数量最多的那类。第二步定位。用Display DRC定位到具体位置看看是哪个过孔、和什么冲突。第三步判断。这个错误是真错误还是规则太严导致的误报如果是误报调整规则如果是真错误调整过孔。第四步批量处理。如果同类错误很多考虑用Skill脚本批量修改比手动改快得多。7.3 过孔替换与批量修改技巧有时候需要把一种过孔替换成另一种比如把0.3mm的过孔全部换成0.25mm的。Allegro提供了Tools Padstack Replace功能可以批量替换。但替换有个前提新旧Padstack的钻孔尺寸和焊盘尺寸要兼容否则替换后可能出现DRC错误。替换前建议先备份替换后全面检查DRC。另外Allegro的Skill脚本可以批量修改过孔属性比如批量修改网络、批量调整位置。如果你经常做重复性的过孔修改工作学点Skill会大幅提升效率。7.4 出Gerber前的过孔最终检查清单出Gerber之前过孔相关的检查项[ ] 过孔总数和类型统计是否合理[ ] 钻孔报告中的孔径和数量是否在加工厂能力范围内[ ] 过孔到板边、过孔到走线、过孔到过孔的间距是否满足规则[ ] 电源过孔数量是否满足载流要求[ ] 散热过孔阵列是否覆盖了所有发热区域[ ] 高速信号过孔的stub是否在可接受范围内[ ] 过孔与铜皮的连接方式是否正确[ ] 阻焊开窗是否覆盖了所有过孔这份清单我每次出Gerber前都会过一遍能避免90%以上的过孔相关问题。8. 一些零散但重要的经验补充8.1 过孔命名规范与库管理项目多了以后过孔Padstack的管理会变成一个大问题。我的做法是按孔径分类命名比如VIA_0R2、VIA_0R25、VIA_0R3。在Padstack里添加描述信息说明适用场景。定期清理不用的Padstack避免库文件臃肿。团队协作时统一Padstack库避免各人用各人的。8.2 过孔与PCB加工工艺的配合设计过孔时一定要考虑加工厂的工艺能力最小钻孔直径普通工艺0.2mm高精度工艺0.15mm。最小孔壁间距0.25mm。最小孔到铜间距0.15mm。最大板厚孔径比普通工艺10:1高精度工艺20:1。这些参数在设计前就要和加工厂确认不要等设计完了才发现做不了。8.3 过孔设计的未来趋势随着HDI技术普及微孔和盘中孔的应用越来越广泛。微孔可以做到0.1mm以下盘中孔可以让BGA扇出更紧凑。但这些工艺的成本也更高需要根据产品定位来权衡。另外Allegro新版本对过孔的支持也在增强比如17.4版本对Via Array的改进、对高速过孔仿真的集成等。保持对新功能的关注能让你的设计效率持续提升。8.4 一个容易被忽略的细节过孔盖油与开窗过孔盖油Tented Via还是开窗Untented Via这是个经常被忽略但很重要的问题。盖油可以防止焊接时锡膏流入过孔但不利于散热和测试。开窗方便测试和散热但可能导致短路。我的建议是信号过孔盖油散热过孔开窗电源过孔根据情况选择。测试点过孔必须开窗。这个设置可以在Padstack的Solder Mask层里配置也可以在出Gerber时统一设置。关键是团队内部要统一标准避免不同人做出不同的选择。过孔放置这件事说难不难说简单也不简单。核心就三点选对类型、设对参数、用对工具。把这三件事做好你的PCB设计效率和可靠性都会有明显提升。我在实际项目中踩过的坑、总结的经验基本都在这篇内容里了。如果你在操作过程中遇到什么奇怪的问题欢迎一起交流。
返回列表