ARTICLE DETAIL

资讯详情

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

Allegro 16.6过孔操作全解析:从焊盘栈设计到实战避坑指南

Allegro 16.6过孔操作全解析:从焊盘栈设计到实战避坑指南 1. 过孔操作在Allegro 16.6中的核心定位过孔这东西说简单也简单说复杂也复杂。简单在于它本质上就是一块PCB上钻个孔、镀上铜、把不同层的走线连起来复杂在于一旦你开始处理高密度板、HDI板或者高速信号过孔的类型、参数、放置规则就会变成整个设计成败的关键。Allegro 16.6作为Cadence家族里经典到不能再经典的PCB设计工具至今仍有大量公司在用尤其是消费电子、工控和通信设备领域。很多人装完Cadence SPB 16.6之后打开Allegro一脸懵连过孔在哪设置都找不到。这篇文章就把Allegro 16.6里过孔的基本操作从头到尾捋一遍包括过孔类型定义、焊盘栈设计、放置方法、常见报错处理以及我自己在实际项目中踩过的坑。如果你刚开始接触Allegro或者从PADS、Altium转过来对Allegro这套“先定义后使用”的逻辑不太适应那这篇内容应该能帮你省下不少查文档的时间。Allegro和PADS最大的区别之一就是PADS里你可以随手放一个过孔工具会自动帮你处理Allegro不行你必须先在约束管理器或者焊盘栈编辑器里把过孔定义好才能在PCB里调用。这个逻辑贯穿Allegro的几乎所有操作过孔只是其中一个典型代表。2. 过孔类型与焊盘栈的基础认知2.1 通孔、盲孔、埋孔到底怎么选在Allegro里过孔从结构上分三大类通孔Through Via、盲孔Blind Via和埋孔Buried Via。通孔是从顶层直接打到基层贯穿整个板子盲孔是从外层打到内层但不穿透整板埋孔则是完全藏在内层之间外表看不到。选哪种取决于你的板子层数、密度要求和成本预算。通孔最便宜因为钻孔工艺最简单所有板厂都能做。盲孔和埋孔需要多次压合、多次钻孔成本会翻倍甚至翻几倍。我一般建议新手项目或者成本敏感的产品尽量用通孔搞定实在布不通再考虑盲埋孔。Allegro 16.6对盲埋孔的支持是完整的但设置起来比通孔麻烦不少后面会细说。从电气性能角度看通孔因为贯穿整板会带来更大的寄生电容和电感对高速信号不太友好。盲孔和埋孔可以缩短过孔的stub长度减少反射和损耗。如果你在做DDR3以上的高速信号过孔的stub效应就必须认真对待了。Allegro 16.6里可以通过约束管理器设置过孔的最大stub长度但这个功能需要License支持不是所有版本都能用。2.2 焊盘栈编辑器过孔的“身份证”Allegro里每一个过孔都对应一个Padstack焊盘栈。你可以把焊盘栈理解成过孔的“身份证”里面定义了过孔在每一层的尺寸、形状、钻孔大小、阻焊开窗等参数。没有焊盘栈过孔就不存在。这一点和PADS完全不同PADS里过孔是独立对象Allegro里过孔是焊盘栈的实例。打开Padstack Designer的方法在Allegro里选择Setup - Padstack - Designer或者直接在命令行输入padstack_designer。进去之后你会看到一堆参数Drill钻孔、Regular Pad规则焊盘、Thermal Relief热风焊盘、Anti Pad隔离焊盘、Soldermask阻焊层、Pastemask钢网层。对于过孔来说最核心的是Drill、Regular Pad和Anti Pad。钻孔尺寸怎么定一般过孔钻孔直径比成品孔径大0.1mm左右因为孔壁要镀铜。比如你想要的成品孔径是0.3mm那钻孔尺寸就设0.4mm。Regular Pad一般是钻孔直径的1.5到2倍比如0.4mm钻孔对应0.6mm到0.8mm的焊盘。Anti Pad比Regular Pad大0.1mm到0.2mm用来隔离过孔和不同网络的铜皮。这些数值不是死的要根据板厂的工艺能力和你的设计密度调整。2.3 过孔命名规范与库管理Allegro里过孔命名一般遵循“VIA钻孔尺寸焊盘尺寸”的格式比如VIA_0_4_0_8表示钻孔0.4mm、焊盘0.8mm。这样命名的好处是一眼就能看出过孔规格不用打开焊盘栈去看。我见过有些工程师用VIA1、VIA2这种命名时间一长自己都忘了哪个是哪个换个人接手更是灾难。焊盘栈文件一般放在工程目录下的padstacks文件夹里或者统一放在公司库路径下。Allegro通过Setup - User Preferences - Paths - Padpath来指定焊盘栈的搜索路径。这里有个坑如果你把焊盘栈放在多个路径下Allegro会按顺序搜索找到第一个匹配的就用后面的忽略。所以千万不要在不同路径下放同名但不同参数的焊盘栈否则你会遇到“明明改了焊盘栈但PCB里没变化”的诡异问题。3. 在Allegro 16.6中创建过孔的完整流程3.1 从零开始做一个通孔过孔打开Padstack Designer之后第一步是选择过孔类型。在Padstack Designer的界面里有个“Padstack Type”选项选“Through”就是通孔。然后设置单位一般用毫米mm也有公司用mil的看你们习惯。我建议统一用mm因为现在大部分板厂和器件规格书都是mm单位混用容易出错。接下来设置钻孔。在Drill栏里Hole Type选CircleDiameter填0.4mm。然后设置每一层的焊盘。Allegro 16.6的Padstack Designer里有一个层列表默认有BEGIN LAYER、DEFAULT INTERNAL、END LAYER。对于通孔来说BEGIN LAYER和END LAYER是顶层和底层的焊盘DEFAULT INTERNAL是所有内层的焊盘。你可以在DEFAULT INTERNAL里设置一个统一的焊盘尺寸也可以逐层设置不同的尺寸。Regular Pad设0.8mm圆形Anti Pad设0.9mm圆形Thermal Relief根据你的铜皮连接方式设置。如果是全连接SolidThermal Relief可以设成和Regular Pad一样大如果是花焊盘连接就要设置开口宽度和角度。对于过孔来说我一般建议用全连接因为过孔不需要考虑焊接散热问题花焊盘反而会增加阻抗。设置完之后点Save As保存到你的焊盘栈路径下命名比如VIA_0_4_0_8。这样这个过孔就定义好了。3.2 盲埋孔的设置要点盲埋孔的设置比通孔复杂因为你要指定过孔从哪一层开始、到哪一层结束。在Padstack Designer里Padstack Type选“Blind/Buried”然后会出现一个层对选择界面。比如你要做一个从顶层到第二层的盲孔就选BEGIN LAYER到LAYER2。Allegro 16.6里层名取决于你的叠层设置所以设置盲埋孔之前必须先把叠层Cross-section定义好。盲埋孔的钻孔尺寸一般比通孔小因为激光钻孔的精度更高。常见的是0.1mm到0.2mm的钻孔焊盘0.25mm到0.4mm。但要注意不是所有板厂都能做这么小的盲埋孔设计之前一定要和板厂确认工艺能力。我见过有人设计了0.1mm的盲孔结果板厂说做不了只能改设计重新投板浪费了一周时间。还有一个坑Allegro 16.6里盲埋孔的层对设置必须和叠层严格对应。如果你在Padstack Designer里选了BEGIN LAYER到LAYER2但叠层里LAYER2是内层那这个盲孔就是合法的。如果你选了一个不存在的层对Allegro会报错。所以叠层设计是盲埋孔的前提千万别搞反顺序。3.3 过孔焊盘栈的参数计算实例假设你要做一个0.4mm钻孔的通孔过孔板厚1.6mm铜厚1oz。成品孔径大概是0.3mm因为孔壁镀铜厚度一般0.025mm到0.05mm。焊盘尺寸怎么算IPC-2221里有公式但实际项目中我们一般用经验值焊盘直径 钻孔直径 0.4mm。所以0.4mm钻孔对应0.8mm焊盘。这个值能保证足够的环宽Annular Ring一般环宽不小于0.15mm。Anti Pad 焊盘直径 0.2mm 1.0mm。这个值保证过孔和不同网络的铜皮之间有足够的隔离。如果板子密度很高可以适当缩小但不要小于0.1mm的隔离否则板厂蚀刻时容易短路。Thermal Relief如果是花焊盘开口宽度一般设0.2mm到0.3mm开口角度45度或90度。对于过孔我前面说了建议全连接所以Thermal Relief可以设成和Regular Pad一样大或者干脆不设Allegro会自动用Regular Pad代替。4. 过孔在PCB中的放置与调用4.1 手动放置过孔的操作步骤过孔定义好之后在Allegro里放置就很简单了。打开PCB Editor选择Route - Via或者直接在工具栏点过孔图标。然后在Options面板里选择你刚才定义的过孔比如VIA_0_4_0_8。接着在PCB上点击你要放置过孔的位置过孔就放上去了。但这里有个细节Allegro默认放置过孔时会自动连接到当前激活的走线网络。如果你没有激活任何网络放下去的过孔是孤立的没有网络属性。所以一般流程是先走线走到需要换层的地方按快捷键或者点右键选择“Add Via”Allegro会自动在走线末端放一个过孔并切换到目标层。这样过孔和走线是连在一起的网络属性也正确。手动放置孤立过孔的场景也有比如你要在铜皮上打散热过孔或者做屏蔽过孔墙。这时候你可以先放一堆过孔然后通过Assign Net功能给它们指定网络。Allegro 16.6里选Logic - Assign Net然后点过孔再点目标网络过孔就归属到那个网络了。4.2 过孔阵列与散热过孔的处理散热过孔一般打在芯片焊盘下方或者铜皮上用来把热量从顶层传到内层或底层。Allegro 16.6里没有直接的“散热过孔阵列”功能但你可以用Copy命令或者Place - Via Array来批量放置。Via Array功能可以设置过孔间距、行列数适合规则排列的散热过孔。散热过孔的间距一般设1.0mm到1.2mm太密了会影响焊接太疏了散热效果不好。过孔孔径一般0.3mm到0.5mm太小了散热效果差太大了会漏锡。如果你做的是BGA封装散热过孔要避开BGA焊球的位置否则焊接时锡会顺着过孔流走导致虚焊。还有一个经验散热过孔最好用全连接不要用花焊盘。因为花焊盘的开口会限制热传导散热效果打折扣。但全连接的过孔在焊接时散热太快可能导致焊盘温度不够所以如果你的板子要过回流焊散热过孔的设计要和焊接工艺一起考虑。4.3 过孔与走线的连接方式Allegro里过孔和走线的连接方式有两种全连接和花焊盘连接。对于信号过孔一般用全连接因为信号过孔不需要考虑散热全连接阻抗更低。对于电源和地过孔可以用花焊盘连接方便焊接时散热均匀。但实际项目中我见过很多工程师统一用全连接也没出什么问题关键看你的焊接工艺。在Allegro 16.6里过孔和铜皮的连接方式由焊盘栈里的Thermal Relief设置决定。如果你在焊盘栈里设置了Thermal Relief过孔和铜皮就是花焊盘连接如果没设就是全连接。你也可以在PCB里单独修改某个过孔和铜皮的连接方式但这样比较麻烦不如在焊盘栈里统一设置。5. 过孔操作中的常见问题与排查5.1 过孔打到Pad上为什么不报错这是Allegro新手经常问的一个问题。在PADS里过孔打到焊盘上会报DRC错误因为过孔和焊盘重叠了。但在Allegro里默认情况下过孔打到同网络的焊盘上是不报错的因为Allegro认为这是合法的连接。只有过孔打到不同网络的焊盘上才会报错。这个逻辑其实更合理因为在实际设计中我们经常需要在焊盘上打过孔比如BGA焊盘上打散热过孔或者焊盘上打过孔换层。如果Allegro一律报错反而会影响设计效率。但这也带来一个风险如果你不小心把过孔打到了不同网络的焊盘上Allegro可能不会立即报错直到你运行DRC检查才发现。所以我的习惯是每完成一个区域的布线就手动运行一次DRC不要等到最后才检查。如果你希望Allegro对过孔打到焊盘上严格报错可以在约束管理器里设置Pad-Pad Connectivity检查规则。具体路径是Setup - Constraints - Mode然后打开Pad-Pad Connectivity的Online DRC。这样过孔和焊盘重叠时就会实时报错。但我不建议新手打开这个因为会频繁报错影响布线效率。5.2 过孔无法放置或找不到焊盘栈有时候你在Allegro里选了一个过孔但放不下去或者Options面板里根本找不到你定义的过孔。原因通常有三个第一焊盘栈路径没设对Allegro找不到你的焊盘栈文件第二焊盘栈命名有冲突Allegro加载了错误的版本第三焊盘栈参数不合法比如钻孔尺寸大于焊盘尺寸Allegro拒绝加载。排查方法先检查Setup - User Preferences - Paths - Padpath确认你的焊盘栈路径在里面。然后打开Padstack Designer重新加载你的焊盘栈看看参数有没有问题。如果焊盘栈参数没问题但Allegro还是找不到试试重启Allegro有时候是缓存问题。还有一个坑Allegro 16.6对焊盘栈的文件名大小写敏感。如果你在Windows下命名成via_0_4_0_8但在Allegro里调用VIA_0_4_0_8可能就找不到。所以命名最好统一用大写避免大小写问题。5.3 过孔DRC报错汇总与解决报错信息原因解决方法Via to Via spacing过孔间距小于约束值调整过孔位置或放宽间距约束Via to Line spacing过孔和走线间距不足移动过孔或走线或调整约束Via to Shape spacing过孔和铜皮间距不足调整Anti Pad尺寸或移动过孔Drill to Copper钻孔和铜皮距离太近增大钻孔到铜皮的间距Annular Ring环宽不足增大焊盘尺寸或减小钻孔尺寸Via Stub过孔stub过长改用盲埋孔或调整走线层这些报错里最常见的是Via to Via spacing和Annular Ring。Via to Via spacing一般是约束设置太严或者过孔放得太密。Annular Ring一般是焊盘太小或者钻孔太大需要重新计算焊盘栈参数。5.4 过孔修改后的同步问题在Allegro里修改了焊盘栈之后PCB里的过孔不会自动更新。你需要手动刷新Tools - Padstack - Refresh然后选择要更新的过孔。或者用Tools - Padstack - Replace把旧过孔替换成新过孔。这个操作要小心因为替换过孔可能会影响走线连接最好在修改之前备份PCB文件。我自己的习惯是焊盘栈定稿之前先在Padstack Designer里反复检查确认没问题再放到PCB里用。一旦PCB里用了就尽量不改焊盘栈要改也是小改改完立即刷新并运行DRC。大改焊盘栈参数比如改钻孔尺寸可能会导致走线断开需要重新布线。6. 过孔操作中的实战经验与避坑指南6.1 过孔设计前的工艺确认清单在开始设计之前一定要和板厂确认以下参数最小钻孔尺寸、最小焊盘尺寸、最小环宽、最小过孔间距、是否支持盲埋孔、盲埋孔的层对和最小钻孔尺寸。这些参数直接决定你的过孔能不能做出来。我见过太多设计在PCB里跑得好好的结果板厂说做不了只能改设计重新投板。一般板厂的工艺能力是通孔最小钻孔0.2mm最小焊盘0.4mm最小环宽0.1mm。盲埋孔最小钻孔0.1mm最小焊盘0.25mm。但这些是极限值实际设计最好留余量比如通孔钻孔不小于0.3mm焊盘不小于0.6mm。留余量的好处是良率高、成本低而且不容易出问题。6.2 高速信号过孔的处理技巧高速信号过孔要考虑阻抗匹配和stub效应。Allegro 16.6里可以通过约束管理器设置过孔的阻抗目标但实际控制还是靠焊盘栈参数和走线层选择。对于DDR3以上的信号过孔stub长度最好控制在0.3mm以内超过这个值就要考虑盲埋孔或者背钻。背钻Back Drill是Allegro 16.6支持的一个高级功能可以把通孔多余的铜壁钻掉减少stub效应。设置方法是在Padstack Designer里勾选“Back Drill”选项然后设置背钻深度。但背钻会增加板厂成本而且不是所有板厂都能做设计之前要确认。还有一个技巧高速信号过孔尽量放在走线末端不要放在走线中间。因为过孔放在中间会引入阻抗不连续导致反射。如果必须放在中间尽量让过孔两侧的走线对称减少阻抗突变。6.3 过孔与铜皮优先级的交互Allegro里铜皮有优先级过孔和铜皮的连接方式受优先级影响。如果过孔在低优先级铜皮上高优先级铜皮会覆盖过孔区域导致过孔和铜皮断开。解决方法调整铜皮优先级让过孔所在的铜皮优先级更高或者在过孔位置挖开高优先级铜皮。这个坑我在一个电源板项目里踩过电源铜皮优先级设得很高结果过孔和地铜皮的连接被切断了导致地网络不完整。后来把地铜皮的优先级调高问题解决。所以铜皮优先级和过孔连接要一起考虑不能只顾一头。6.4 过孔库的维护与复用过孔库是PCB设计的基础资产维护好过孔库能大幅提升效率。我的做法是按公司产品线分类比如消费类、工控类、通信类每类维护一套过孔库。过孔命名统一规范参数统一标准。新项目直接复用不用重新定义。过孔库还要定期更新尤其是板厂工艺能力变化时。比如板厂升级了激光钻孔设备最小盲孔尺寸从0.15mm降到0.1mm那你的过孔库也要相应更新。更新之后旧项目不要动新项目用新库避免影响已投产的项目。7. 过孔操作后的检查与输出7.1 DRC检查与过孔专项检查PCB设计完成后DRC检查是必须的。Allegro 16.6的DRC检查里和过孔相关的有Via to Via、Via to Line、Via to Shape、Annular Ring、Drill to Copper等。运行DRC之后逐条检查过孔相关的报错确认是误报还是真问题。除了DRC我还会做一次过孔专项检查统计过孔数量、检查过孔类型分布、确认盲埋孔层对正确、检查散热过孔是否足够。这些检查DRC不会报但会影响板子的可制造性和可靠性。比如散热过孔不够芯片可能会过热盲埋孔层对错了板子直接报废。7.2 输出制造文件时的过孔参数确认输出Gerber之前确认过孔参数是否正确。钻孔文件NC Drill里要包含所有过孔的钻孔信息包括通孔和盲埋孔。盲埋孔在钻孔文件里会分层输出每一层对一个钻孔文件。输出的时候要确认层对和叠层一致否则板厂会做错。还有一个细节Gerber里的过孔焊盘和阻焊开窗要匹配。如果阻焊开窗太小过孔会被阻焊盖住影响焊接和测试。一般过孔阻焊开窗比焊盘大0.05mm到0.1mm。Allegro 16.6里可以在Padstack Designer里设置Soldermask参数输出Gerber时自动生成阻焊层。7.3 过孔信息的归档与复用项目完成后把过孔库和设计文件一起归档。归档内容包括焊盘栈文件、叠层设置、约束管理器设置、DRC报告。这些资料对后续项目复用和问题追溯很有价值。我见过有些公司不归档过孔库结果每个项目都重新定义过孔效率低还容易出错。归档的时候建议把过孔库单独打包标注版本号和适用板厂。比如“VIA_LIB_V1.2_适用XX板厂_2024Q1”。这样下次用的时候一目了然不用翻旧项目找焊盘栈。8. 个人实操体会Allegro 16.6的过孔操作说到底就是“先定义、后使用”六个字。这个逻辑贯穿整个Allegro设计流程过孔只是其中一个环节。刚开始用Allegro的时候我觉得这套逻辑很繁琐不如PADS方便。但用久了之后我发现这种“先定义”的方式其实更严谨尤其是做复杂板子的时候所有参数都是可控的不会出现“工具自动帮你决定”的情况。我自己的经验是过孔库一定要提前建好不要等到布线的时候才临时定义。临时定义的过孔往往参数不合理后面改起来很麻烦。另外过孔参数要和板厂工艺匹配不要凭感觉设。我见过有人设了0.15mm的钻孔结果板厂说做不了只能改设计重新投板浪费了一周时间。最后分享一个小技巧Allegro 16.6里可以用Skill脚本批量修改过孔参数比如批量替换过孔类型、批量调整过孔间距。Skill是Allegro的二次开发语言学起来不难但能大幅提升效率。如果你经常做过孔相关的重复操作值得花点时间学一下Skill。
返回列表