ARTICLE DETAIL

资讯详情

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

Allegro 17.4实战:过孔扇出与盲埋孔配置指南

Allegro 17.4实战:过孔扇出与盲埋孔配置指南 先抛个问题你画一块BGA主控板或者电源板芯片引脚密密麻麻走线一层绕一层绕不过去最后只能靠打过孔换层解决。结果过孔打得满板都是内层铜皮被掏得不成样子电源网络上还全是过孔瓶颈板子做回来性能一测就翻车——这种场景我见过太多回了。用Allegro 17.4做PCB设计过孔扇出和盲埋孔这两件事是决定高密度板能不能画得动、画得好的分水岭。会的人十分钟把BGA扇得干干净净不会的人折腾半天DRC还一屏报错。这篇就把我实际项目里用过孔扇出和盲埋孔配置的经验摊开讲。1. 过孔扇出的底层逻辑与准备工作1.1 扇出不是“点一下命令”那么简单扇出的本质是给芯片引脚“接电线”。你要把一个间距0.5mm的BGA引脚引出来焊盘之间只有不到0.2mm的间隙夹缝里走不出去线只能在焊盘旁边打孔、换层把引脚引到内层或者避开密集区域再走。很多人把扇出理解成“执行Fanout命令软件自动拉几根线出来”这个理解太浅了。扇出真正的难点不在命令本身而在于你怎么规划扇出的方向和顺序。我习惯把扇出分成三个层次来看逐脚扇出每个引脚单独引出一小段线到过孔这是最基础的操作用来解决“引脚出不来”的问题。区域扇出按电源域、地域、高速信号分组把相邻引脚归并为同一层同一方向扇出这是解决“内层不交叉”的关键。整器件扇出对一个BGA整体规划区分引脚类型电源、地、信号不同类型用不同的过孔、走不同层这是解决“全板可用性”的核心。你在实际操作中遇到的很多问题比如内层绕不过去、电源回流路径被割裂、过孔密度太高导致平面层千疮百孔都是因为扇出阶段没有做好区域规划直接把锅甩给了布线阶段。做扇出之前先问自己三个问题这颗芯片的电源引脚集中在哪几个区域高速信号的扇出方向是否会形成跨分割内层层数够不够把扇出来的线都走完想清楚这三个问题再动手效率翻倍。1.2 扇出前的规则与尺寸计算Allegro 17.4里扇出必须依托于Physical约束规则。我见过很多新手一上来直接点Fanout发现命令灰色不可用或者扇出来全是DRC错误十有八九是规则没设置。扇出相关的规则主要涉及几个参数线宽、线距、过孔到焊盘的间距。以我从实际项目里总结出来的经验不同BGA间距对应的扇出参数可以参照这个表BGA Pitch推荐线宽推荐过孔外径/孔径过孔到焊盘间距1.0mm6~8mil20/10mil≥8mil0.8mm5~6mil18/8mil≥6mil0.65mm4~5mil14/6mil甚至激光孔≥5mil0.5mm及以下3~4mil10/4mil激光孔≥4mil这些参数看着像随口给的其实背后都有板厂加工能力和电气要求的约束。过孔外径太大焊盘之间的缝隙塞不下线太窄铜厚和载流能力撑不住过孔离焊盘太近钻偏一点就把焊盘钻穿了。扇出之前的规则设置本质上是把制造工艺吃透之后固化到软件里而不是随便填个数字求个“能跑通”。在17.4里设置方法我啰嗦两句打开Constraint Manager在Physical选项卡里找到你给BGA器件分配的那个CSet把线宽Line Width和线距Line to Line按表格里的值设进去。接着打开同在Physical的Vias列表把你打算用的过孔类型全部勾选上后面扇出的时候才有得选。做完这两步再去执行Fanout命令你会发现命令菜单变成可用状态扇出来的走线也不会一堆DRC。2. 盲埋孔的基础认知与叠层规划2.1 通孔、盲孔、埋孔到底怎么选很多人分不清三类孔的区别这里用最直白的话说清楚通孔Through Hole从顶层穿到底层的孔是所有PCB的起点加工简单成本低但会打通全部层。如果你的板子内层有一片完整的电源平面一个通孔打过去平面就多了一个“窟窿”信号回流可能被切断。盲孔Blind Via从表层打到某一个内层就停了比如L1-L2不穿透整个板。盲孔可以释放表层空间减少内部平面被打穿的次数。埋孔Buried Via完全藏在板子内部的孔比如L2-L3外面根本看不见。埋孔能连接任意两个内层把信号换层完全放在内部完成不打扰表层。三类孔的直观对比我也整理过放在这里方便你选型类型优点缺点成本通孔工艺简单、成本低、可靠性高占用全层空间、影响平面完整性最低盲孔释放表层空间、减少平面破损加工工序增加、对位精度要求高中埋孔内部自由换层、不打扰表层压合次数增多、工艺难度大高选哪种孔不只看能不能画得通更要看板厂能不能加工、成本能不能接受。8层板用通孔能解决的事情你非要上4阶盲埋孔纯粹是给代工厂送钱。2.2 HDI叠层设计中的盲埋孔组合盲埋孔在实战中几乎不会“单打独斗”都是组合使用。我用得最多的是1阶HDI结构和2阶HDI结构。1阶HDI比如8层板叠层方向从上到下是L1-L8那么盲孔只做L1-L2和L7-L8埋孔做L2-L7。这种结构的好处是只需要多压合一次成本增加有限却能极大释放表层空间而且关键的高速线几乎都可以通过L1-L2盲孔跳到内层避免通孔打断L4和L5的参考平面。2阶HDI更进一步盲孔可以做到L1-L3意思是表层可以直接隔层跳到第三层适合信号层特别紧张的设计。但代价是加工时激光钻孔次数增多报废率也上去了费用大概比1阶多20%到35%。叠层规划阶段就有个很关键的操作要点盲埋孔的组合必须在Cross-section里预先定义清楚。在Allegro 17.4里菜单Setup - Cross-section打开叠层设置在Physical栏给每一层命名层名建议直接用L1、L2这样的编号方便后续选过孔时对应。然后要特别注意Start和End的设置——HDI层对之间的盲孔只能在相邻层之间生成这是手动指定的不指定的话软件只会给你生成通孔。还有一件事我踩过坑厚径比。盲孔是激光钻的深度不能无限增加。一般板厂对激光盲孔的极限深径比在1:1左右也就是盲孔深度不能超过孔径。做0.1mm孔径的盲孔最多打到第二层打第三层就很容易断钻头。所以规划叠层时不要贪心1阶HDI用L1-L22阶才用L1-L3再往上就是任意层互连技术费用按高端HDI算一般项目用不起。3. Allegro 17.4过孔扇出实操3.1 Pad Designer创建过孔焊盘做扇出之前得先把“扇出用的过孔”这个焊盘定义好。Allegro 17.4集成的是Padstack Editor创建过孔的流程和常规Pad设计一样但是有些坑必须提醒你。打开Padstack Editor新建一个焊盘类型选Through或者Blind/Buried。这里的“Through”指的就是普通的通孔“Blind/Buried”才是盲埋孔。名字一定要起得有规律我习惯用VIA_1_2表示L1-L2的盲孔VIA_2_7表示L2-L7的埋孔VIA_THRU表示通孔。命名清晰在后面的BBI Via规则选择里太重要了不然几十个过孔类型排在一起你根本分不清哪个是哪个。参数设置上以0.8mm间距BGA为例我一般这么配钻孔直径8mil0.2mm焊盘外径18mil约0.45mm反焊盘Anti-Pad26mil比焊盘大4~6mil即可反焊盘设置很关键。反焊盘太小过孔周围没有足够的空隙隔离高速信号通过时寄生电容增大信号质量明显变差反焊盘太大又容易把内层平面的可用宽度吃掉太多。多试几次找到适合自己板卡参数的平衡点。如果你做的是盲埋孔在Padstack Editor里还要额外定义起始层和结束层。比如VIA_1_2的盲孔Start Layer选TOPEnd Layer选L2就是内层第2层中间过孔内径走线要放一层“Anti-Pad”之外再单独设置Drill层。埋孔同理比如VIA_2_7的埋孔Start选L2End选L7。这里一旦选错层后面布线时软件根本不会让你放置这个过孔类型因为它的物理范围都不在一对层内。3.2 约束管理器设置物理规则过孔焊盘创建好了下一步是让Allegro知道“哪些过孔可以用”。这一步在17.4里叫BBI Via设置全称是Blind/Buried Interface Via专门用来管理盲埋孔在布线时的可用规则。打开Constraint Manager进入Physical选项卡找到你给BGA模块分配的Physical CSet。双击Vias这一列弹出的Dialog里会把Padstack Editor里所有过孔类型全部列出来手动把刚才创建的过孔勾选上。注意光勾选不等于万事大吉。对于盲埋孔软件还需要知道“哪些层之间允许用某种孔”。比如VIA_1_2这个盲孔只能在L1和L2之间用你想要用VIA_1_2把BGA的表层扇出到内层L2那布线过程中只要当前走线是在L1层双击过孔时软件就会自动只显示允许L1-L2跳转的VIA_1_2通孔则永远可用。这个过滤机制用好了布线效率提升明显。设置的时候还要把Same Net Spacing同网络间距一并考虑。十五六年前很多老工程师在规则里只设了不同网络间距同网络间距忘了结果过孔挨得太近生产时钻个孔就撞上另一个孔的边缘板子直接报废。17.4里在Spacing选项卡同样要设置Via to Via的同网络间距一般设成5mil以上比较稳。3.3 用Fanout by Pick做扇出规则设置完毕后真正动手扇出。在Allegro 17.4里菜单路径是Route - Fanout by Pick。点击后光标会变成十字点一下你要扇出的器件或者框选一片区域弹出扇出设置面板。面板上几个核心选项我给你逐条解释Fanout Style扇出风格。BGA类器件选BGA Pin Escape这是专门为BGA设计的会尽量让脚在焊盘对角线方向出线绕开相邻引脚。普通的DIP或连接器可以选Inline出线方向更规则。Direction扇出方向。Inside是把所有出线引导到器件中心内部去适合中间有大量电源地引脚、需要在内部打孔的情况Outside是引导到器件外部适合边界信号引脚多的场景Alternating是交替方向从不同方向引出减少同层拥挤。Pin/Via Allowed这里选择允许使用的过孔类型。通孔、盲孔、埋孔都勾上也可以只勾某一种比如这一步只做表层到内层的盲孔扇出那只看VIA_1_2。Include Pins with no connection是否包括未连接的引脚。建议勾上不然有些空脚不扇出后续临时加信号时又要重新手动处理。拿我最近做的一块电源板举例芯片是LQFP封装周围一圈电源脚和地脚混在一起。我第一步全选引脚用通孔在外部做扇出把所有信号脚引出来第二步单独框选电源引脚方向设为Inside让电源引脚通过盲孔直接打到内层电源层平面。两步走完表层走线清爽内层电源平面也没有被通孔打得太碎。扇出完成后一定要切换到单层显示检查是否有交叉。比如只看L2层的扇出走线如果两条扇出线在同一个层内形成了交叉那说明你扇出方向规划得不对需要把其中一部分引脚的扇出方向改成相反方向或者把其中一个过孔换到其他层。这一步别偷懒Autovoid和推挤功能虽然好用但扇出阶段的交叉是整个布线阶段最难处理的遗留问题交叉越多后期越痛苦。4. 盲埋孔实战配置全流程4.1 叠层编辑器搭建HDI结构实战配置盲埋孔第一步是在Allegro 17.4里把叠层搭对。进Setup - Cross-section快捷键是Setup - Cross-section在17.4新版里也可以直接用快捷键Command里输入cross。界面里默认就是Top和Bottom两层你要手动添加中间层。举个典型8层板1阶HDI的例子我通常会这么配层号类型功能L1TOP导电层信号/器件L2参考平面地平面L3导电层信号L4导电层内层电源分割L5参考平面地平面L6导电层信号L7参考平面地平面L8BOTTOM导电层信号/器件Cross-section里每一行对应一层名称建议直接改成L1、L2这种这样后面在Padstack Editor和约束管理器里选择层时名字完全对得上不会把L2内层第二层和L7内层倒数第二层搞混。叠层设置还有一个细节在Material栏选铜箔厚度和介质厚度时要考虑盲孔激光钻的层间距离。盲孔L1-L2虽然有介质厚度但12层以内的常规板材这个厚度介于2到4mil之间是没有问题的。过厚的介质层激光钻不穿容易导致盲孔可靠性下降。所以叠层设计阶段盲孔跨层的介质厚度最好控制在4mil以内这点板厂工程师一看叠层表就能判断工艺性。4.2 过孔类型与BBI Via规则组合叠层建好以后把上一节Padstack Editor里创建的VIA_1_2和VIA_2_7用常规的Tools - Padstack - Modify Design Padstack也可以但这里直接用约束管理器配置到BBI Via规则里。具体操作是打开Constraint Manager在Physical选项卡找到你的CSet。对这个CSet的Vias列双击进去把VIA_THRU、VIA_1_2、VIA_2_7全部勾选。这时候关键的一步来了你要在“BBI Via”子页面里给每个盲埋孔分配“可以使用的层对”.实际上Allegro 17.4中BBI Via的接口在Physical Constraint Set里不是单独的一页而是在Vias那一列下一层BBI Via选项。你双击进去能看到每对Start Layer 与End Layer的组合。如果VIA_1_2对应的是Top-L2那Rules表格里就应该出现一行“StartTop, EndL2, ViaALLOWED”。如果没出现手动Add组合再挂上Via类型。这里有个17.4特有的经验Vias设置完以后布线过程中默认显示的Via栏是通孔。如果你想让布线时自动选择盲埋孔需要到Options面板的Via栏点开下拉选中你当前层对对应的盲孔类型。比如现在走线在L1要跳到L2Via栏就选VIA_1_2。17.4会根据起止层自动过滤这点做得比16.6人性化很多16.6经常会列表一大堆全给你选错层放置后DRC报错。还有一个坑BBI Via设置完之后如果发现布线时过孔无法放置检查一下你在约束管理器里有没有给这个层对分配过孔。很多人在BBI Via里只添加了过孔类型却忘了添加层对组合导致Allegro认为这个孔不属于任何一对层自然不让你放。4.3 盲埋孔布线实战规则都配置好了真正用盲埋孔画线时效率会比纯通孔高一大截。我画高速BGA板时习惯这么分层表层L1专门走控制信号和时钟信号过孔用VIA_1_2盲孔直接跳到L2地平面下方的L3信号层继续走。L3走线遇到换层需求用VIA_2_7埋孔直接到L6这一对埋孔把内层信号牢牢夹在两个地平面之间参考平面完整性极高信号质量比通孔穿来穿去好太多。实际布线操作我总结了一套方法大家可以参考打开走线命令确定当前布线层是L1。在Options面板的Via列表里选择VIA_1_2。走到需要换层的引脚单击鼠标放置过孔软件自动完成L1到L2的换孔。按“L”键Layer Change快捷键17.4里也可以直接在Options里改Active Layer切到L3继续走线如果要从L3到L6再次在Via栏选择VIA_2_7。内层走线过程中尽量保持沿着晶格点走减少锯齿。这里有个快捷键设置的小心得。Allegro 17.4默认的换层快捷键不多我一般会在env文件或User Preference里自定义几个比如F4放盲孔换到指定层。具体设置方法是Setup - User Preferences - Interface在左边找到Route_Board把route_include_blind选项设为1。这个选项的意义是告诉软件在自动布线或手动布线时要把盲埋孔也计算进去否则它只会用通孔去自动连接你一推挤走线预设的盲孔就被覆盖了。实际尺寸上盲孔比通孔小很多内径8mil激光盲孔的焊盘还能更小所以0.65mm的BGA只有用盲孔才能扇得出去。这也解释了为什么HDI板几乎都是盲埋孔在做主力不是钱多是真的一般的通孔放不下。5. 常见问题与排查技巧实录盲埋孔和扇出用多了坑也踩多了。这里把最常见的几个问题列成速查表建议你在排查时直接对照现象可能原因解决方法Fanout命令灰色不可用Physical CSet里没有勾选任何过孔打开约束管理器给对应CSet勾选可用的Via类型扇出后大量DRC报错Via to Via距离不够同网络过孔间距设置过小在Spacing规则里增大Via to Via间距或同网络间距布线时找不到盲孔选项Options面板的Via栏仍是通孔手动展开Via列表选择对应的VIA_1_2或VIA_2_7盲孔无法放置提示Layer Pair不存在BBI Via里没有添加对应层对进入Physical CSet的BBI Via手动添加Start/End层对扇出方向导致内层交叉扇出前没有规划信号和电源区域将电源引脚单独框选方向改为Inside或Outside再重新扇出内层平面被掏空严重通孔过多没有合理使用盲埋孔关键信号换层用盲孔内层穿层用埋孔限制通孔数量电源过孔载流不够板子发热过孔数量不足或孔径太小按电流密度估算过孔数增加并联过孔这些坑里最值得展开说的是“电源载流不足”这一条。很多人只看信号完整性忘了电源完整性。一个0.2mm孔径的过孔镀铜厚度按常规35μm算单孔载流大概0.5到0.8A。如果你板上某路电源要跑8A电流理论上至少需要10到16个并联过孔。这个数目在设计阶段就要算好放在电源引脚扇出时同步打够不能等到布线完再补那时候铜皮都被割开想放也没位置了。还有一次我做12层板2阶HDI盲孔L1-L3。扇出时看着挺好看布线到一半发现某对差分线的两个过孔一个走L1-L2盲孔再跳L2-L3埋孔另一个直接L1-L3盲孔两者延时差了将近30ps。这种等长问题用视觉根本看不出来必须靠XNet或相对传播延迟约束。所以在做盲埋孔规划时差分对的两个脚尽量用同一类盲孔别混搭。不然信号完整性测试时眼睛都瞪大了。另外一个容易被忽略的坑是钻孔文件输出。Allegro 17.4在输出Gerber或钻孔文件时盲埋孔必须用NC Drill Legend单独分项。如果只在Drill图上显示了通孔盲孔的钻孔坐标丢了板厂会给你打无数电话问钻孔文件在哪儿。我每次出图前都会检查一下Manufacture - NC - NC Drill里的钻孔类型列表确认VIA_1_2、VIA_2_7、VIA_THRU三类孔都出现在列表里再生成钻孔文件。6. 一点实操总结与个人习惯分享最后再分享一个我自己养成的小习惯不一定多高级但对复杂板卡非常管用每次开新板我都会在正式布线前专门花半小时做一次“扇出演练”。把主控芯片的扇出先做出来然后用Display - 3D Viewer在三维模式下转一圈检查过孔位置和层间对应关系。这一步能帮你提前发现叠层定义的错误、过孔分配不合理的地方比布线做到一半再回头改叠层要省几天的工时。三年前我接了一个医疗设备的主板项目叠层8层、主控BGA 0.8mm间距、四路高速以太网就是靠这套流程一口气把扇出和盲埋孔全部定下来后面布线阶段一次DRC清空。你如果也正在啃Allegro 17.4和盲埋孔照着这个思路走设计质量和出板速度都会明显上一个台阶。
返回列表