ARTICLE DETAIL

资讯详情

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

Allegro 17.4过孔设置全攻略:从Padstack到生产制造

Allegro 17.4过孔设置全攻略:从Padstack到生产制造 1. 动手之前先想明白Allegro里的过孔到底是什么先说个很多新手容易忽略的事实在Cadence Allegro 17.4 PCB Editor里过孔Via不是一个简单的“洞”而是一个完整的Padstack焊盘堆栈。它包含了钻孔、各个层的焊盘、阻焊开窗、反焊盘、热焊盘等多个属性。你用到的每一个过孔本质上是调用了一个独立的.pad文件这个文件决定了过孔在每一层长什么样、能载流多大、能不能散热、会不会短路。理解这一点非常关键。因为很多人第一次打开Allegro 17.4直接在布线过程中按了一下数字键盘上的5或者点击图标发现过孔能用就觉得“过孔设置”这件事已经结束了。但等到画多层板、做电源设计、跑仿真、出Gerber的时候问题就全冒出来了过孔盘太大导致内层短路、钻孔孔径和板厂实际能力不匹配、盲埋孔层对不上叠层、电源过孔数量不够导致压降超标……这些问题的根源几乎都能追溯到最初过孔定义和规则分配这两个环节。所以这篇教程我不想只教你怎么点按钮而是按照“理解原理 → 建立Padstack → 定义过孔类型 → 绑定物理规则 → 实际调用 → 批量处理 → 生产对接”这条完整链路来讲。我现在用的是Cadence Allegro 17.4版本界面是Hotfix较新的状态绝大部分操作在16.6到17.4之间都通用遇到版本差异我会特别说明。学习这件事适合谁呢一种是刚接触Allegro、准备独立完成PCB Layout的硬件工程师和在校学生另一种是用过Allegro但一直停留在“调用默认过孔”阶段的工程师如果你想弄明白盲埋孔怎么建、电源过孔怎么算、替换过孔怎么不丢连接关系那这篇文章正好对路。写之前先做一个约定本文涉及的所有参数比如板厚、孔径、盘径都是基于常规FR-4板材和普通工艺能力来说的。你实际做项目的时候一定要把参数发给你合作的PCB板厂确认尤其是最小钻孔、最小环宽、盲埋孔叠对能力这些工艺极限值板厂说能做到才叫能做到Datasheet写得再漂亮也没用。2. Padstack Editor从零手搓一个标准过孔的完整过程2.1 先打开正确的编辑器在17.4里打开Padstack Editor的路径有两条开始菜单 → Cadence Release 17.4-2019 → PCB Editor Utilities → Padstack Editor。在PCB Editor界面里选择File → New新建文件时把类型选成Padstack这样也会直接跳转到Padstack Editor 17.4。如果你是从PCB Editor里面通过菜单Setup → Padstacks → Modify来编辑打开的窗口界面和独立版Padstack Editory有细微差别但核心参数是一致的。我习惯用独立版来建库因为建库属于“离线工作”没必要把PCB文件一直挂在后台占内存不说图层显示也容易干扰判断。直接在PCB里修改Padstack适合做临时验证不适合作为建库的正式流程。17.4的Padstack Editor界面相比老版本做了一次比较大的重构左侧不再是一长串Parameters树形列表而是分成了几个Tab区域信息密度更高但熟悉之后操作效率反而比老版本高。这里有个小提醒如果你以前用的是16.x的Padstack Editor第一次打开17.4可能会觉得不适应别急着骂先花半小时把界面点一遍你就会发现它只是把“Default Internal”“Default Surfaces”“Default Soldermask”这些层参数做成了可视化表格逻辑并没有变。2.2 每一个参数的意义和填法下面我用一个最常规的“通孔过孔”为例带你从头填一遍。假设条件板厚1.6mm最小线宽6mil走线层是L1到L4过孔希望做到成品孔径0.3mm约12mil那么Padstack该怎么建首先打开Padstack Editor后选择新建一个通孔Through类型的Padstack。17.4里类型有Through、Blind/Buried、Microvia、Single、Mechanical等这里选Through。接下来看右侧的Parameters区域重点填这几个参数参数项我的推荐值说明UnitsMillimeter国内的板厂和常规器件封装毫米单位更直接。如果你跟老外团队协作可以用MilsDecimal places4精度足够转换成mil的时候也不会出现过大舍入误差Multiple drill一个孔位对应多个钻孔一般用不上别选Drill diameter0.3mm这是成品孔径吗不是。这是“钻孔孔径”板厂做完电镀之后成品孔径会比钻孔孔径小约0.05-0.1mm取决于孔铜厚度。你如果要求成品0.3mm设计时Drill diameter要留余量比如填0.35mmHole typeCircle常规圆形孔方形孔和槽孔这里不展开Tolerance±0.05mm生产允许公差板厂一般有自己的标准你在图纸标注公差比这个严格反而会提高成本Drill symbol可以填个字符编号比如V12_35方便在钻孔图上识别填完钻孔参数后展开左侧或中间区域的Layers列表你会看到这么几类层Begin Layer顶层Default Internal内层End Layer底层SolderMask Top/SolderMask BottomPastemask Top/Pastemask BottomFilm Mask非必须每一层都需要指定Pad尺寸和Shape。普通中间信号层我个人建议用Circular圆形PadDiameter取钻孔孔径 0.3mm左右的起步值。比如钻孔0.35mm时盘径0.65mm是相对均衡的环宽最小有 (0.65-0.35)/2 0.15mm 6mil左右可以满足绝大多数常规板厂的工艺能力。顶层和底层的焊盘如果只是过孔不是用来焊接元器件的插件孔那可以和内层保持一致没必要故意加大。有人习惯把Top/Bottom的盘做大一圈方便AOI测试这是可以的但一定要统一否则后面做阻抗仿真或者等长处理时容易出错。阻焊层SolderMask这里要留个心眼默认情况下Padstack Editor会自动给阻焊开窗比焊盘略大。如果你做的是“过孔盖油”或者“过孔塞油”设计阻焊参数要配合板厂工艺做特殊处理。具体怎么处理后面第5部分再讲这里记住一句话阻焊开窗尺寸不是随便填的它决定了过孔是“裸露”还是“被油墨盖住”。2.3 保存和命名习惯填完所有层参数之后点File → Save As把Padstack保存到你的库路径下。命名规则一定不能随便我吃过亏以前建过一堆叫via1、via2的Padstack三个月之后回头看根本不记得这个过孔是多大孔径、适不适合电源、层叠是否匹配。我现在用的命名格式是这样的VIP_12_35 // V过孔IP内层信号通用12盘径12mil35钻孔35mil(0.35mm) VIA_20_12_S // Ssingle单层过孔用于顶层到L2的盲孔盘径20mil成品孔径12mil VTH_24_16_PWR // PWR电源过孔盘径24mil钻孔16mil虽然17.4支持很长的字符串但建议控制在20个字符以内否则在Constraint Manager和光绘文件里显示不全还会影响BOM和钻孔文件导出。更重要的是命名信息要与实际值一致我看到过同事把参数和命名对应不上最后板子做出来钻孔偏小焊盘无法插入白白返工。保存Padstack时Allegro会同步生成一个.pad文件。这个文件本质上就是一个文本库文件里面记录了当前Padstack的所有参数。你可以用记事本打开看一眼理解它的结构。如果你熟悉Skill编程以后批量修改焊盘时可以直接改这个文本文件再重新导入效率高很多。2.4 为什么说别直接抄DATASHEET上的过孔推荐值很多芯片参考设计里会给出过孔建议比如“使用8mil/18mil过孔”或者“使用12mil/25mil过孔”。这些值基本可用但你要清楚参考设计面对的叠层、板厂能力和你的项目不一定相同。8mil钻孔0.2mm属于微孔和小钻孔的临界范围一般需要激光钻孔价格明显高于机械钻孔。如果你项目成本压力不大电源电流也不大那可以接受但如果你做的是大功率电源板参考设计里的8mil过孔载流能力可能不够你必须自己根据电流计算过孔数量和孔径。所以把参考设计当成起点不要当成圣旨最终参数一定要根据板厂的工艺能力表去核对。3. 盲孔、埋孔和微孔到底怎么建层叠又是怎么配的3.1 先明确哪些孔属于哪种类别用Allegro 17.4做多层板6层及以上时你会在Padstack Editor里看到以下选择Through Via从顶层打通到底层的孔。最便宜最可靠但会占用所有层的布线空间。Blind Via从顶层或底层延伸到某个内层但不贯穿整板。比如L1-L3只打穿前三层。Buried Via完全埋在内层的孔从外部看不到比如L2-L3或者L4-L5之间。Microvia微孔常规指激光钻孔孔径一般在0.1-0.15mm之间4mil-6mil常用于HDI板的高密度互连。在17.4里盲埋孔的Padstack类型虽然要选Blind/Buried但真正决定它用在哪个层对的是你在Setup → Constraint Manager和Cross-section叠层里面设置的规则。Padstack本身不知道自己会被用在哪一层之间它只知道自己有起始层和结束层的信息。这句话我解释一下一个Padstack文件里面有Begin Layer、Internal Layers、End Layer当你把它定义为盲孔时Allegro会根据你在Cross-section里定义的层对自动决定中间哪些内层不需要焊盘。所以你在建盲孔Padstack时涉及到的所有内层焊盘参数都要填但最后实际布板时只有穿过的那几层会生成焊盘。3.2 用17.4叠层编辑器配合盲埋孔进入Setup → Cross-section你可以看到一张叠层表每一行代表一个物理层。17.4里这个界面做得比以前直观左侧直接有材料、厚度、介电常数、铜厚等字段。比如你做一个6层板层顺序是L1 Top / L2 GND / L3 SIG / L4 PWR / L5 GND / L6 Bottom每层之间都有pp半固化片和core芯板。在Cross-section里把每一层的顺序、厚度都填好后盲埋孔的层对关系就必须与叠层匹配。举个例子如果我想做L1-L2的盲孔叠层中L1到L2必须有介质层并且钻孔的深度角度要符合板厂能力。通常激光钻孔的盲孔只能跨1个介质层即L1-L2或L6-L5这种相邻层。如果你硬要设计L1-L3的激光盲孔很多板厂做不了或者需要特殊工艺成本翻倍。非要跨两层建议用机械控深钻成本介于激光孔和通孔之间但精度略差。所以在17.4里面建盲孔Padstack时我会做这样几件事先确定叠层顺序和厚度在Cross-section里建好层结构。对照板厂给的HDI能力表确认允许哪些层对可以打盲埋孔。根据层对分别建立Blind Via Padstack和Buried Via Padstack。在Constraint Manager的Physical规则里给不同Net或者不同区域分配不同的Via规则。3.3 建一个盲孔的实操步骤以L1到L2的盲孔为例在Padstack Editor中类型选择Blind/Buried注意不是Through。Drill diameter填0.15mm激光孔常用值。在Layers列表里只有Begin LayerL1和End LayerL2要填焊盘尺寸其他内层可以设为Null或不填。SolderMask Top可以正常开窗但如果盲孔在BGA bottom面朝向板内侧就不需要开窗。保存时命名比如VB_T2_L2_15_6。有人会问我没有指定End Layer对应L2Allegro怎么知道因为在Placement/布线时你是通过约束管理器绑定层对来告诉Allegro的。比如在Physical Constraint Set里你创建一个PCS把Via rule指定为VB_T2_L2_15_6同时把该PCS分配给某个Net Class或某个区域Allegro就会在这个Net布线时允许使用这个盲孔。实际加过孔时Allegro会判断你鼠标所在位置当前所在层状态在允许切换的层对范围内才会弹出可用的盲孔。3.4 微孔Microvia的特殊之处17.4专门有Microvia类型如果你选了MicroviaPadstack Editor会让你填Microvia的钻孔方式和尺寸。Microvia通常用于HDI板、手机板、模块板孔很小常规10层板堆叠甚至会用到两次叠孔staggered或stacked via。在Allegro里微孔和普通盲孔的重要区别是微孔不需要焊盘环宽太大因为激光钻孔位置精度高但也不能太小板厂工艺存在对位误差。微孔Demo时环宽一般取≥0.05mm2mil量产最好≥0.075mm3mil。微孔可以打在焊盘上via-in-pad但需要做树脂塞孔或铜膏塞孔否则贴片时锡膏会流进孔里导致虚焊。如果你做的是高频高速板还要注意微孔在层叠中的stub效应盲孔比通孔天生的优势就是stub短信号质量好。这一点在SerDes、DDR等高速信号中非常明显。很多工程师纠结DDR4等长难做其实把过孔换来换去对信号质量影响很大尽量保持同一组信号用过孔类型一致比单纯调线长更有效。4. 把过孔用起来规则分配、调用替换与批量操作4.1 在Constraint Manager中绑定过孔规则建好Padstack之后过孔还只是躺在库里“待命”真正让它在布线时能被使用需要绑定到物理规则上。这一步是很多新手完全不熟悉的环节。打开Setup → Constraints → Constraint Manager界面左侧选择Physical → All Layers或Physical → Region你会看到有一个Allowed Vias列。默认情况下Allegro会把你库里所有Padstack都列在允许列表里这其实很危险。所有过孔都能用意味着你在布线时随手一放可能放了一个需要塞孔的特殊过孔或者放了一个大孔径电源孔在敏感信号区域轻则影响性能重则板厂无法制造。所以我的习惯是在Constraint Manager里给每类网络单独创建一个Physical Constraint SetPCS在Allowed Vias里只勾选该网络允许使用的那几个过孔。例如普通信号线只允许VIP_12_35和VIA_16_8。电源网络允许VTH_24_16_PWR和VIP_12_35。DDR组信号只允许特定阻抗孔径组合的过孔。这样做的好处非常明显布线时Allegro会自动过滤可用的过孔列表你按L键加过孔的时候只会看到符合当前网络规则的那几个从源头上避免误用。4.2 布线时快速切换过孔在PCB Editor中布线状态下按键盘L或V取决于你的快捷键设置会弹出Select a Via对话框这里显示的就是当前Net允许的过孔列表。如果你发现某个过孔在这里没出现常见原因有两个当前Net的PCS没有把该过孔加进Allowed Vias。当前Net所在层对与过孔类型不匹配比如你想放一个L1-L3盲孔但当前布线层是L4当然不可用。还有一种操作17.4支持自定义过孔快捷键。比如我习惯把F4设置成常用过孔F5设置成电源过孔。具体在Options面板的Via栏里选择好目标过孔后我会使用Tools → Quick Utilities → Funckey/alias绑定快捷键。这一点能明显提升布线效率尤其是密集BGA区域需要频繁切换过孔和盲孔时省去每次弹窗找孔的时间。4.3 批量替换过孔从普通孔换成电源孔项目做到中后期你可能会发现某个电源网络的过孔载流能力不够需要用更大孔径的过孔整体替换。这时候千万不要手动一个一个删了重打Allegro有批量替换功能。操作路径Edit → Replace → Vias或者使用Tools → Padstack → Replace。选中要替换的过孔类型A再选择目标过孔类型B执行后所有符合条件的过孔都会被替换。要注意的是替换时必须保持钻孔大小兼容如果你把0.35mm钻孔替换成0.8mm钻孔周围的走线间距可能瞬间违规因为新孔盘更大可能撞到旁边的走线或焊盘。替换之前先跑一次Tools → Design Rule Check把所有DRC错误存一个底盘替换之后再跑一次对比差异这样可以快速定位哪里因替换新增了错误。如果只是希望把“某一个Net”上的过孔替换掉建议先只选中该Net的网络或者用Temp Group功能圈选区域再执行替换。全局替换有时候会误伤无关网络。还有一种更精细的做法就是选中特定过孔右键Replace Padstack这是针对单个过孔的局部替换。批量替换和单个替换逻辑一致只是作用范围不同。4.4 过孔阵列与Via Stitching在Allegro 17.4里Place → Via Arrays可以把过孔规则地排成阵列。这个功能在地孔、屏蔽孔、电源过孔、散热过孔中非常有用。比如铺铜区域的地孔要求间距50mil、均匀分布手工一个个摆很痛苦用Via Arrays几秒钟就能完成。操作步骤先绘制一个形状Shape或者在PCB Editor中用Add → Shape画出需要放置过孔的区域。选择Place → Via Arrays → Boundary选择边界形状。设置行列间距、过孔Padstack类型、过孔所属网络。执行后自动生成过孔阵列。但这功能有个坑它生成的过孔阵列是“静态”的。如果你修改了Shape过孔不会自动跟着移动需要删除后重新生成。如果你希望过孔能跟随铜皮自动避让或更新那就得用动态Shape配合Via Stitching功能但Allegro的静态Via Array依然是主流做法因为它简单、可控、适合生产。还有一点经验地过孔的间距一般取λ/20原则3GHz以下信号地孔间距取200mil基本够用5GHz以上建议100mil以内如果是射频板块建议50mil或更密。但过孔过密会降低电源/地平面的完整性因为它会增加平面被分割的效应所以不能盲目追求多要依据信号频段和回流路径需求计算。5. 电源、散热和特殊工艺过孔不是打孔越多越好5.1 电源过孔数量怎么估算很多工程师设计电源过孔时心里没底就在电源网络中狂打几十个孔。其实过孔载流能力有明确的计算逻辑。一个常规0.3mm钻孔、孔铜厚度25μm的过孔载流能力大约为1-2A具体值取决于允许温升。如果你需要过10A电流用5-10个过孔并联是常见做法。我自己有一个粗略公式过孔数量 ≈ 所需电流(A) / 单个过孔载流(A)再留1.2倍的冗余即最终数量 计算值 × 1.2向上取整。比如10A负载单孔1.5A计算6.67个取8个左右。但要注意过孔孔铜厚度与板厂工艺有关常规是20-25μm高端板可以做到35-50μm你可以在叠层说明中要求板厂加厚孔铜这样单个过孔载流能提高50%-100%。打开Allegro 17.4的Tools → Padstack → Modify可以查看某个过孔的具体参数但Allegro本身不直接告诉你载流电流。你可以在Cadence自带的文档中找IPC-2152或IPC-2221标准表格再结合过孔热阻模型去精确计算。普通项目用我上面的经验公式足够。5.2 散热过孔QFN和功率器件底部的密集过孔QFN封装中间有个大焊盘Exposed Pad需要通过过孔把热量传导到内层铜皮和底层。这种散热过孔通常要求孔径不能太大否则锡膏会通过孔流走一般0.2-0.3mm比较稳妥。过孔要尽量靠近芯片中心均匀分布。如果是底部散热焊盘建议把过孔打在焊盘区域内采用via-in-pad工艺背面塞树脂或者油墨否则回流焊时焊料会从孔里跑掉。过孔之间间距不能太密否则基板强度下降翘曲风险增大一般间距在0.5mm-0.8mm左右。在Allegro里你可以建一组散热阵列用手动阵列摆放。QFN底部如果空间狭小我会用Place → Via Arrays做一个矩形阵列然后整体调整到焊盘区域内。阵列摆放完之后再看一下DRC确认过孔盘没有跟内层的其他网络短路。因为散热过孔通常是GND网络如果内层某个区域是电源铜皮距离不足就会造成短路这是多层板散热过孔最常见的DRC错误。5.3 过孔盖油、塞油和开窗的区别生产上过孔的处理方式会影响你的Padstack设置这一点很多教程不讲。简单区分一下开窗Via Exposed过孔焊盘裸露方便测试、散热或大电流焊接。缺点是容易氧化、可能短路。塞油Via Plugged用阻焊油墨把孔填满或盖住避免锡珠、防短路。适用于大多数信号过孔成本低。树脂塞孔Via Filled with Resin孔内填充树脂再电镀盖帽常用于BGA焊盘上的过孔via-in-pad表面平整贴片良率高。铜浆塞孔Copper Filled孔内填铜导热导电性能最好用于大电流或散热场景成本最高。在Padstack Editor里你设置SolderMask Top的开窗尺寸就决定了过孔是否裸露。如果板厂要求塞油通常你在图纸上标TENTED VIA或文字说明不需要在Padstack里做特别复杂的设置但Allegro可以在Padstack Editor里把SolderMask设置成比焊盘小比如0这样油墨就会盖住孔口。具体用哪种建议和你合作的板厂确认我个人的偏好是BGA区域一律树脂塞孔普通信号区域塞油大电流电源区域开窗或铜浆塞孔。5.4 电源平面过孔的反焊盘与热焊盘在多层板电源设计中内层通常会有一个电源平面层Power Plane。当你的过孔穿过这个平面层时有两种连接方式直接连接Direct Connect过孔焊盘直接和铜皮相连导电性能最好但焊接散热快手工焊接困难。热焊盘Thermal Relief过孔周围有四个小铜条连接到平面铜皮隔离热扩散方便焊接但载流能力下降。Allegro在Padstack Editor的Default Internal层里有一个Thermal Relief选项可以设置Heat Spoke宽度和个数。如果你做的是信号过孔建议直接连接不要用热焊盘因为信号过孔不需要考虑散热而热焊盘会增加阻抗不连续。如果是电源过孔需要焊接操作的话可以考虑热焊盘但对于多层板内部连接热焊盘意义不大更多影响的是装配工艺。大电流路径上的电源过孔我一般选直接连接牺牲手工焊接便利性换取更小的电阻和温升。6. 实测中遇到的坑与排查链路6.1 过孔盘径和钻孔尺寸不匹配引发的DRC风暴有一次我在做一块4层电机驱动板从库里面调用了一个历史Padstack结果布线阶段DRC突然报了几百个Package to Package间距错误。排查过程是这样的先看错误坐标发现都集中在过孔位置然后打开DRC Browser看明细显示“Shape to Pad spacing clear”之类。再检查该过孔的Padstack才发现它定义的内层焊盘是正方形边长比普通圆形盘大了近0.2mm导致它和旁边电源铜皮的最小间距小于设定值。当时我没有逐个过孔去改而是用Tools → Padstack → Modify把所有违规过孔的Padstack统一替换为正确的圆形盘过孔一下清零。这件事给我的教训是建库时一定要统一盘形和盘径并且每个Padstack在用于板子前最好先在Padstack Editor里跑一次SPPShape to Pad/Pad to Shape检查。6.2 盲埋孔层对设置与叠层不一致还有一次做8层板盲孔设计为L1-L2但在Constraint Manager里绑定规则时我选择了一个误以为是L1-L2的盲孔实际上它是一个L1-L3的机械盲孔。结果布线时发现MLOManual Layer Override设置一直被忽略每次放置盲孔都弹出“Layer pair not allowed”我当时还挺奇怪。排查链路是Setup → Cross-section确认叠层实际层对 →Constraint Manager → Physical → Via查看该Padstack的层对属性 → 再用Padstack Editor打开该Padstack查看End Layer。最后发现我在Padstack Editor里保存时把End Layer设成了L3跟叠层中的L2不匹配。修正Padstack并重新绑定规则后问题消失。这里提醒一下Allegro 17.4对盲埋孔的层对检查非常严格。如果叠层表里定义了10层但你的Padstack文件End Layer没有对应到具体的子层名称即使名字相似也会报错。所以建盲埋孔时每一层都要跟Cross-section中的Layer名字保持一致否则就会出现“Permitted layers”无法识别的问题。6.3 替换过孔时丢失连接关系的处理一个朋友问我他用Edit → Replace → Vias把一批过孔从通孔替换成盲孔后发现某些网络的连接断了。原因是被替换的过孔原来连接了L1、L3、L5、L6四个网络层通过铜皮相连而新盲孔只支持L1-L2导致L5和L6的铜皮失去了连接。这种问题在批量替换前就应该预见。我的建议是替换前先做一次Tools → Reports → Connectivity Report把替换前的网络连接情况导出替换后再导出一次对比差异。如果差异巨大直接用Undo撤销替换然后重新筛选替换范围。总之批量替换过孔不是无脑操作一定要先理解目标过孔的层连接能力。6.4 光绘文件里过孔不显示有段时间我出Gerber时发现钻孔文件里缺失部分过孔排查了很久。最后发现是因为我要“Optimize Drill”时不小心勾选了Remove Redundant Drill结果Allegro把同一位置重叠的钻孔给合并或删除了。如果你遇到钻孔表里孔数不对先检查该项设置再把所有过孔Padstack去重。另一个常见问题是在光绘文件输出时如果Drill Legend中的孔径列表没有更新你需要右键Drill Legend → Rebuild重新生成钻孔标识表。千万别手动改否则光绘和钻孔表对不上板厂给你做错孔那就是事故。6.5 从Allegro输出给板厂的过孔信息清单最后跟板厂对接时除了发Gerber和钻孔文件我习惯顺便导出一份过孔清单PDF包含过孔类型、钻孔直径、成品孔径、内外层盘径、是否塞油、是否树脂塞孔、数量。这一步看起来多余但能大幅降低沟通成本。你可以在Manufacture → NC → Drill Customization里查看钻孔信息也可以从Padstack Editor导出一个文本报告。这不算Allegro的功能但却是“过孔设置全流程”里最容易被忽略、也最影响交付的一环。一个负责任的硬件工程师交付文件里一定要有明确的过孔描述否则板厂遇到模糊参数就会按他们的默认工艺走跟你的设计意图有偏差。7. 一个真实项目的过孔规划复盘为了让你更直观地明白前面这些知识点怎么组合起来用我复盘一个我最近做的6层Sensor板项目不算复杂但麻雀虽小五脏俱全。项目背景6层板尺寸60mm×60mm主控是BGA封装DDR3跑800MHz板上有3.3V、1.8V、1.2V三路电源还有一组千兆以太网差分对。板厚1.2mm要求控制成本不用HDI。过孔规划时我是这样推演的因为不用HDI所以全部使用通孔过孔不建盲埋孔成本最低生产可靠。BGA扇出区域选择8mil/16mil的微小通孔钻孔0.2mm盘径0.4mm以便在BGA引脚的0.5mm pitch空间内完成引出。主电源路径3.3V从电源入口到BGA需要至少6A用0.45mm钻孔/0.75mm盘径的电源过孔打12个并联载流余量充足。DDR3信号组约束中过孔统一使用8mil/16mil微孔减少阻抗跳变。千兆以太网差分对在连接器区域附近加地孔间距100mil形成完整回流。板边一圈加地过孔阵间距100mil增强屏蔽和结构强度。这个方案最后投板一次通过。总结下来就是过孔规划必须在布局阶段提前做而不是布线到一半才想起来。你花的几分钟做规划可能省下后面几天的返工时间。8. 关于17.4版本的使用感受与几个误解澄清写这篇文章最后我再针对Allegro 17.4的过孔功能说几句个人感受。很多人问17.4和16.6差别大不大。负责任地说在过孔设置这个环节核心逻辑没有变还是Padstack Editor Constraint Manager这套体系。17.4的改进主要体现在可视化上比如Padstack Editor的参数表格更清晰Cross-section编辑器更顺手Constraint Manager的过滤和联动更快。对老手来说16.6到17.4过渡没有学习成本对新手来说17.4反而更容易学因为它把很多以前藏在菜单深处的功能直接摆到了面板上。还有一个常见误解有些人以为设置过孔必须在Constraint Manager里专门建Via Rule然后把Padstack填进去就行。其实不然Allegro的Via Rule可以建立在PCS上也可以建立在Region上。如果你的板子上局部区域需要特殊过孔比如BGA底部用Region规则绑定会更灵活。做法是Setup → Constraints → Constraint Manager → Physical → Region新建一个Region圈选BGA区域然后在Region的PCS中只允许需要使用的小过孔类型。另一个误解“Allegro不能自动给你布过孔”。实际上17.4支持Route → Unsupported Prototype和Auto Interactively Route配合过孔规则可以自动在走线换层时插入过孔。但全自动过孔布局的可控性还很有限常规做法依然是手动添加过孔再配合Copy/阵列快速复制。自动布过孔适合快速评估不适合直接投产。最后想强调一点过孔设置看起来是一个很小的技术动作但它串联了建库、叠层、约束、布线、仿真、制造等多个环节。你在Padstack Editor里随手填的一个盘径后面可能影响阻抗、载流、可制造性甚至整个项目的交期。所以在设计开始前多花一点时间把过孔规划好绝对是性价比最高的投资。我自己这几年做项目的习惯就是先建一套规范的过孔库再开工后面几乎不会在过孔上返工。希望这篇从入门到精通的教程能帮你把这件事真正做扎实。
返回列表