
做板子谁都会画几根线但一碰到过孔设置不少人就开始发怵。Cadence Allegro 17.4 PCB Editor的过孔设置恰恰是很多新手从“看着教程”到“自己动手布一块像样板子”的分水岭。你把走线画得再漂亮过孔定义不对、约束里没放进去、放置时又看不到后续DRC一堆错误照样劝退。这篇文章就把“创建过孔→加载到库→分配约束→布线时调用→常见坑排查”整条链路完整走一遍尽量用大白话讲清楚不绕弯子。我顺便把两个总被人问起的基础问题一起说了Cadence和Allegro到底是什么关系以及17.4里的快捷键、辅助工具兼容性该怎么看待。1. 开始之前Cadence、Allegro与过孔设置的大局观1.1 Cadence和Allegro到底什么关系为什么总有人搞混Cadence和Allegro的区别说白了是一个公司与其产品线的关系。Cadence是EDA软件厂商的名字旗下有原理图工具OrCAD Capture、PCB Layout工具Allegro PCB Editor、封装设计工具Allegro Package Designer、信号完整性仿真工具Sigrity等一大堆产品。大家平时嘴上说“用Cadence画板子”绝大多数场景指的就是Allegro系列里最常用的Allegro PCB Editor。Allegro 17.4是2019年发布的版本号界面和操作逻辑相比旧版16.x做了不少调整网上很多老教程都是16.x时代的直接套到17.4上就会出现菜单找不到、约束管理器打不开之类的问题。为什么要把这个区别讲清楚因为我见过太多新手装好一套“Cadence全家桶”打开软件发现界面跟教程对不上就怀疑自己装错了版本。其实只是没分清OrCAD Capture和Allegro PCB Editor这两个程序的入口。弄明白这一点后面学过孔设置时才不会因为版本差异被绕晕。Allegro 17.4的过孔设置在核心思路上跟16.x一脉相承可菜单位置和默认规则集的表现形式确实有变化教程千万别找错年份。1.2 过孔设置不是一个弹窗而是一条完整链路在Allegro里过孔Via的本质是一个“带铜的孔”用来连接不同层之间的走线。但过孔不是简单打个孔就结束了它牵扯到三个层面物理层面孔的直径、外层焊盘直径、反焊盘间隙、热焊盘尺寸这些参数直接决定信号质量、加工良率和电源平面的连接方式。制造层面钻孔直径如果低于板厂能力或者孔到铜皮间距不够生产出来的板子可能就是断孔、短路甚至直接报废。工具层面Allegro并不会把你创建的所有过孔自动摆在界面上你必须把它放入库路径再添加进约束管理器的物理规则集的过孔列表布线时才能真正调用到。很多人觉得“过孔设置”就是一个弹窗里填几个数字实际它是一个从元件库到约束到布线交互的完整流程。这篇教程的核心思路就是按照“定义→入库→约束→调用→查错”的顺序把过孔的全生命周期过一遍。不管你是从AD转过来的还是学校刚毕业第一次用Allegro只要这条链路走通后续画多层板基本不会再被过孔卡住。2. 过孔分类与参数详解选型之前先看懂这些概念2.1 通孔、盲孔、埋孔、微孔的选择原则在Allegro的Padstack Editor中我们能创建的过孔大致分为通孔Through Hole、盲孔Blind、埋孔Buried以及HDI常用的微孔Micro Via。常规2层或4层板通孔几乎覆盖所有需求成本低、工艺成熟打样周期也短。8层以上的高密度板如果信号换层很频繁通孔会占掉太多布线通道这时候盲孔和埋孔可以显著提高布线密度但加工成本会明显抬升。微孔通常走HDI激光钻孔工艺孔径可以做到0.1mm以下但PCB Editor中需要专门的HDI约束设置设计门槛和费用都不是一个量级。类型典型孔径对应层间关系成本等级适用场景通孔0.2mm–0.6mm顶层到底层低普通多层板信号与电源换层盲孔0.1mm–0.15mm外层到相邻内层中高高密度板减少外层走线拥挤埋孔0.1mm–0.2mm内层到内层中高高密度BGA内部走线微孔≤0.1mm外层到首内层高HDI板手机、模块类产品选择原则很简单能用通孔就不用盲埋孔能用盲孔就不用微孔。这跟性能无关纯粹是成本和周期的考量。很多刚学画板的工程师手上一块普通6层板就非要上盲埋孔最后板厂报价贵了三四倍又没带来实际好处纯属给自己找麻烦。我一般在项目方案阶段就根据BGA引脚间距和层数把过孔类型先定死后面尽量不改。2.2 Regular Pad、Thermal Relief、Anti Pad分别管什么打开Allegro的Padstack Editor你几乎总能看到Regular Pad、Thermal Relief、Anti Pad三个概念。很多刚入门的人看到英文就头疼其实对应中文就是“正常焊盘”“热风焊盘”“反焊盘”。正常焊盘Regular Pad走线和过孔在正常铜箔层上的实际焊盘它决定你可以跟它连多粗的线。如果焊盘尺寸太小粗走线连接时会形成台阶制造时容易出现缺口。热风焊盘Thermal Relief过孔在电源或地平面上的连接方式通常做成十字或花瓣形状。这样做既能保证电气连接又减少焊接时热量散失太快的问题手工焊接时尤其明显。反焊盘Anti Pad过孔周围的禁布区也就是一道“空圈”防止过孔与不该相连的铜箔短路。特别注意在正片Positive层和负片Negative层上这三个概念的作用方式不一样。正片就是“有铜的地方就是图形”最常见负片则正好相反铜是背景只清空图形区域。如果你的内电层设计成负片方式那么过孔与内电层之间主要通过Thermal Relief和Anti Pad来定义连接和隔离Regular Pad甚至可以不画。这一步很多人搞反结果电源层上过孔被整个挖空或者短死DRC还不容易报出明显错误最后只能靠肉眼慢慢检查。2.3 成品孔径、钻孔孔径与层叠的关系这里有个特别容易踩坑的参数钻孔大小。PCB过孔孔壁需要沉铜镀铜厚度一般会让成品孔内径变小约0.025mm左右所以板厂规格里通常会区分“钻孔孔径”Drill Size和“成品孔径”Finished Size。你在Padstack Editor里填写的参数建议按成品孔径需求来理解。实际下单时板厂会根据你的孔径自动选择钻头钻孔要比成品孔径略大否则镀铜以后孔径缩小不达标。很多新手以为填了0.3mm钻孔就万事大吉板厂反馈“孔小了”其实就是没搞懂这个概念。另一方面普通样板厂的机械钻孔能力通常能支持0.2mm但0.2mm钻孔对定位精度和孔铜可靠性要求更高往往要额外加钱。如果项目没有明确的高速高密度需求我的建议是走线过孔至少用0.3mm钻孔、外径0.6mm电源孔再适当加大。这样既照顾加工能力也方便后续自行打样验证。至于层叠过孔参数必须跟层叠厚度配合比如板厚1.6mm、钻孔0.3mm的过孔厚径比大约是5.3这属于比较常规的加工范围如果板厚2.0mm还硬要用0.2mm钻孔厚径比到10很多板厂就会质疑生产良率。3. 保姆级实操把过孔从零做到能布线调用3.1 用Padstack Editor定义一个靠谱的通孔过孔Allegro 17.4中Padstack Editor通常藏在Cadence开始菜单的PCB Editor Utilities里也可以在PCB Editor中用Tools Padstack Edit进入。创建一个能上生产的通孔过孔建议按这个顺序操作选择File New在类型中选择Through Hole再把下方Type选为Via而不是Pin。这里如果选错后面做出来的东西会被当成元件管脚来处理调用时逻辑完全不同。先定单位建议根据项目习惯选择mm或mil后续所有参数保持一致。在Drill页签填入钻孔直径。以0.3mm孔径为例直接填0.3。设置Start Pad和End Pad区域起始层选TOP终止层选BOTTOM中间层软件会自动补齐。切换到各层焊盘定义。可以用Single Layer Mode单层模式保持全层一致也可以用Multiple Layer Mode多层模式为不同内层单独调整焊盘尺寸。具体填写时我习惯用这组默认值起步钻孔0.3mmRegular Pad外径0.6mmAnti Pad外径0.8mmThermal Relief的开口间隙0.3mm、连接spoke宽度0.2mm。这些数值不是拍脑袋来的普通1.6mm板厚、4到6层板的场景下兼容性很好。焊盘间距不能小于设计规则里的Spacing约束否则DRC会一直报错。保存为.pad文件放到项目里的库目录例如D:\work\project_v1\library\padstack。提示Padstack命名尽量自带信息便于后续管理。比如“VIA_06D_03H”表示焊盘外径0.6mm、钻孔0.3mm或者“V60D30H”这种自定义编号。别叫“via1”、“via2”等到板子里过孔多了这种名字会让你查资料查到怀疑人生。3.2 配置padpath让PCB Editor认得过孔文件创建完过孔文件Allegro并不自动扫描所有目录。你需要把库路径加进去在PCB Editor中执行Setup User Preferences打开用户偏好设置对话框。在搜索框输入padpath找到Design Paths面板下的Pad Path把刚才保存过孔的文件夹路径添加进去。顺手检查一下psmpath这次用不上但以后加载元件封装时会遇到。设置完成后最好关闭PCB Editor再重新打开避免路径缓存导致找不到库文件。这一小步是实操中最高频的卡点很多新手明明做好了过孔却在布线时右键列表里看不到最后仔细一查要么是忘了添加padpath要么是路径里带了中文Allegro对中文路径兼容性一直不算好。我建议项目路径、库路径全部使用英文连空格都别留。3.3 在Constraint Manager里给过孔“上户口”过孔文件加载进来并不意味着它就能被所有走线使用。Allegro的规则体系里每一组物理规则都有一个可用过孔列表。默认规则集里通常只带系统预设的VIA想让你自定义过孔在布线时被调用必须把它添加进这个列表。具体操作在Allegro PCB Editor中打开Constraint Manager。选择Physical页签展开Physical Constraint Set找到你要修改的规则集比如DEFAULT。找到Vias那一列点击右侧编辑按钮或者右键选择Edit。在弹出的Edit Via List对话框中左侧是Available Vias右侧是Selected Vias选中目标过孔后点击箭头加入右侧。如果你想给某个特定网络用另一套过孔比如电源网络全部用大孔可以新建一个物理约束集只把电源孔的过孔放进列表再把这个规则集分配给Power网络。这里有个很多教程不讲的技巧当你更换过孔方案时可以选中已有布线段Clines右键选择Replace Via批量替换到新过孔类型。这比一个个删除重画高效太多。做版本迭代或统一改钻孔尺寸时我几乎每次都靠它。3.4 布线时怎么舒服地调用过孔和建阵列设置完约束管理器回到布线界面右侧Option面板的Via下拉菜单里就能看到你添加的过孔。实际操作时你在连线状态下右键选择Add Via软件会自动把当前走线换层并在换层点放置过孔。Allegro的交互布线体验说不上“顺手”但用习惯了你会发现右键Add Via和按快捷键切换走线层是效率最高的组合。对于需要打一排过孔来屏蔽信号或加强散热的场景比如射频信号的包地、电源区域的过孔阵列Allegro提供了阵列放置能力。最简单的方式是先用普通方法放几个过孔再复制排列更专业的做法是使用Route Via Array在对话框里选择过孔、设置行列数和间距一次性生成阵列。需要注意阵列过孔间距不能小于物理规则里的Vias to Vias间距否则DRC会红成一片。如果要处理大量BGA手动打过孔能把人累死。Allegro 17.4自带自动扇出功能在Route菜单里找Fanout By Pick选中器件后软件会根据已定义的过孔和布线规则自动在BGA引脚之间打孔。这个功能非常依赖前面约束管理器里的物理规则和过孔列表。如果扇出后的过孔不是你想要的样子优先回查过孔列表和规则集而不是硬改扇出参数。4. 常见问题、快捷键与第三方工具兼容性实录4.1 过孔不显示、调用不了、DRC报错的排查表我把平时在群里、在公司被问得最多的问题整理成了一张速查表症状可能原因排查思路右键Add Via没有过孔约束管理器过孔列表未添加打开Constraint Manager检查Physical规则集里的Vias列表布线时Option面板无过孔padpath未设置检查Setup User Preferences Design Paths过孔文件加载报错文件损坏或版本不匹配用Padstack Editor重新打开并另存为过孔外观与设计不一致单位错误检查Padstack Editor和PCB Editor的单位设置是否一致DRC报过孔间距错误过孔间隙或反焊盘太小提前按生产规则设计Anti Pad和孔间距生成Gerber时过孔丢失光绘层设置遗漏了Via层检查光绘文件里的Drill和Via层开关这表里的前两条是最常见的原因。我见过有同事把过孔文件拷给板厂结果板厂说“你的PCB文件里没有过孔”追查半天发现就是库路径没生效。提醒大家换电脑或换项目时先确认padpath和psmpath都指向当前项目的库目录别让旧路径残留着。4.2 负片层的Anti Pad一个容易被忽视的DRC陷阱这里讲一个我踩过的坑。当我在负片电源层上使用通孔时如果Anti Pad尺寸小于铜箔到过孔的安全间距DRC并不会直接提示“Anti Pad太小”而是报出一个看起来莫名其妙的Vias to Shape Spacing错误乍一看好像过孔和铺铜短路了。实际原因是过孔的Anti Pad在负片上负责隔离铜箔间距不足等于将隔离清掉了铜箔跟过孔焊盘之间没有足够的安全界限。解决方案很简单把Anti Pad尺寸改大让它等于或略大于你所期望的安全间距而不是只追求焊盘小一点。另一个常见情况是过孔到过孔的间距报错。如果板子孔密度特别高比如BGA下方打桩过孔记得在物理规则里单独设置过孔到过孔的间距。系统默认值有时候只适合普通走线场景遇到密集过孔阵列就非常容易被DRC轰炸。这个参数在Constraint Manager的Physical规则集里找到Vias to Vias Spacing按板厂工艺能力和设计需求填一个合理值。4.3 Allegro 17.4快捷键设置的具体改法Allegro的快捷键主要靠用户环境文件env来控制。17.4的env文件一般在用户目录下比如C:\Users\你的用户名\pcbenv\env或者通过PCB Editor里的Setup User Preferences查看环境路径。打开env后可以定义alias和funckey两类快捷键alias输入别名并带参数例如alias P pick按P后执行pick命令。funckey直接绑定按键动作例如funckey 4 add connect按4直接进入连线状态。我的习惯是先把常用命令整理出来比如添加走线、复制、镜像、删除、done、cancel、zoom fit、测量等然后给每个分配一个顺手的按键。举例funckey 4 add connect funckey 5 add shape funckey d done funckey x delete funckey f copy alias P pick alias S slide注意Allegro启动时会读取env文件修改后必须重启软件才能生效。编辑前建议先备份原始env防止改出问题后无法恢复。很多人喜欢从网上复制别人的快捷键配置我建议只参考不要直接覆盖因为每个人的鼠标手势和习惯差异很大别人的顺手配置到你手上可能会按出很多误操作。4.4 关于“电路精灵”这类辅助工具能否用在17.4有人问“电路精灵可以用在17.4上吗”我先给一个比较统一的答案Allegro 17.4的核心框架相比16.x变化不大但UI和部分API确实动过第三方辅助工具能不能直接跑不能只看版本号还要看工具作者是否针对17.4做了适配。很多工具本质上是加载Skill脚本脚本兼容性跟版本关系密切老脚本在新版本里可能因为函数接口变更而报错。想判断一个插件是否可用最稳妥的办法是先在空板上加载看命令行或弹窗有没有报错再拿测试板跑一遍常用功能最后才在正式项目中使用。如果插件实在用不了也不用慌。Allegro本身支持自己写Skill脚本很多第三方工具的常见功能比如批量改过孔、批量改线宽、添加特定标记用Skill脚本都能实现既轻量又可控。Skill脚本可以通过Tools Utilities Skill Development环境加载开源资源在网上也很多自己修修补补就能省去大量重复劳动。我的原则是核心设计流程尽量用软件原生功能辅助性、重复性操作才考虑脚本或插件这样才能把风险控制在可接受范围。5. 我习惯的过孔方案与几个小建议5.1 普通项目和高速项目过孔参数怎么给普通多层板项目我默认会建这么几组过孔信号过孔钻孔0.3mm焊盘外径0.6mm反焊盘0.8mm。用来走一般信号线兼顾打样成本和布线密度。电源过孔钻孔0.4mm到0.5mm焊盘外径0.8mm到1.0mm反焊盘1.0mm到1.2mm。用来走电源主干或连接电源平面降低直流压降。地孔和散热孔如果板子发热集中会在芯片焊盘下方打一排接地孔孔径0.3mm到0.4mm间距0.8mm左右既改善散热也减少地回路电感。高速信号项目就不只是改尺寸的问题了。过孔本身会带来阻抗不连续和Stub效应因此我在高速板里会做两件事第一尽量控制换层次数换层时在旁边加回流地孔第二对较长信号线上的过孔做背钻Backdrill处理在Padstack Editor里设置钻孔的Start层和End层去掉信号孔多余的Stub段。Allegro 17.4的背钻设置在Padstack的Drill页签里可以定义板厂会按你的要求一次性加工但会增加额外工序费用。如果项目阶段不确定哪些信号需要背钻我会先按规则预留再跟板厂确认。5.2 电源与高速信号过孔别等流片后再后悔最后分享一个我自己的体会过孔方案最好在布局完成之前就确定下来而不是等走线走到一半再回头改。因为过孔大小直接影响布局时的通道预留如果你在布局阶段没给信号过孔留出足够空间后期只能在密密麻麻的走线里硬塞小孔最后不是DRC报错就是加工良率下降。具体操作上我在拿到原理图后会先根据网络类型给过孔分类比如电源网络用大孔、普通信号用小孔、差分队用等参数成对过孔。然后在Constraint Manager里把不同网络和不同物理规则集绑定好。这样进入布线环节时软件基本会自动选择正确的过孔我只需要专注走线顺序和整体布局不用频繁切换过孔类型。做过几块板子后你会发现前期花一点时间把过孔库和规则集做规整对后续效率的提升是立竿见影的。Allegro 17.4的过孔设置流程说白了就是“库、约束、调用”三件事。库是过孔的物理定义约束是规则限制调用是实际操作。三件事串起来你就能流畅地管理从单孔到阵列再到复杂BGA扇出的所有过孔需求。如果在实际项目中遇到奇怪的DRC别急着怀疑软件先回头看看Padstack里每个参数再对照一下物理规则集多半能很快找到原因。