☰
Cadence Allegro过孔设置与放置的五个实战技巧
2026/10/7 22:39:59 网站建设 项目流程

很多人画板子的时候,对Cadence Allegro里的过孔设置与放置都不太上心,觉得不就是打个孔、换个层嘛。结果画到一半问题全冒出来:想放via的时候下拉列表是空的、好不容易放上去一个过孔结果和铜皮连得奇奇怪怪、做高速板的时候缝合过孔只能用手一个个锤。这五个技巧,就是我在Allegro里处理过孔设置与放置时最常用、最管用的经验,今天一次性讲完。文中所有菜单路径基于16.6到17.4版本,差异不会太大,照着操作基本都能复现。

1. 过孔Padstack设计:一个孔的所有参数从哪里来

1.1 通孔焊盘各层到底怎么填

Allegro里任何一个过孔,背后都有一个Padstack文件来描述它。你可以把Padstack理解成过孔的“身份证”,孔径多大、焊盘多大、哪些层有盘、哪些层要挖空,全部在这个文件里定义。很多工程师不用Padstack Editor,直接在别人板子上Copy一个过孔来用,这本身没错,但如果不知道为什么这个孔挖了那么大的反焊盘,后面调阻抗、调散热的时候就会很被动。

打开Padstack Editor有两种方式:如果你只是改一个已经放在板子上的过孔,在PCB Editor里执行Tools > Padstack > Modify Design Padstack,然后点一下版图里的过孔;如果想新建独立的Padstack文件,可以直接从系统菜单里打开Padstack Editor,或者Tools > Padstack > Edit,两者都可以。

新建通孔时,主要填三个地方:

  • Drill:钻孔直径。这个参数直接决定过孔的成本和可加工性,常规量产板最小机械钻是8mil(0.2mm),低于这个值很多板厂要加钱。
  • Design Layers:各层焊盘。通孔通常要关心TOP、Default Internal(所有内层)、BOTTOM,每一层都有Regular Pad、Thermal Pad、Anti Pad三个关键参数。
  • Soldermask:阻焊开窗。如果过孔需要盖油,这里就不能随便给开口;如果过孔需要露铜散热,开口尺寸要比焊盘略大。

很多小白最容易犯的错,是只填了Regular Pad,Thermal Pad和Anti Pad全留空。这样在某些情况下虽然也能用,但内层电源/地平面和过孔的关系会变得不可控,一会儿全连接一会儿不连接,DRC报错报得你怀疑人生。通常我建议,只要是多层板,三个Pad全部配齐,不要偷懒。

1.2 反焊盘和热焊盘的设计逻辑

先解释一下这三个东西到底分别是干嘛的。Regular Pad是过孔和走线、铜皮发生电气连接时的实际焊盘尺寸;Thermal Pad是连接大片铜皮时的花焊盘尺寸,用来形成十字花连接;Anti Pad是在平面层上给焊盘周围挖出来的隔离区,防止焊盘直接短接到内层的铜皮。

拿生活里的例子类比:过孔像一根穿过多层楼的金属管道。Regular Pad是每层楼管口焊的法兰,Thermal Pad相当于法兰上加了隔热垫,Anti Pad则是法兰周围挖掉的一圈防火带,防止管道热量把楼板烤糊,也防止管道和楼板里的钢筋意外搭上。

实际设计时,这几个参数的经验值可以参考下面这张表,单位是mil:

过孔类型钻孔直径Regular PadAnti PadThermal Pad(外/内径)典型用途
10/1810182424/14BGA扇出、高速信号
12/2212222828/16常规信号、电源走线
20/3620364444/24电源过孔、大电流通道

反焊盘不是越大越好。内层的电源平面要靠铜皮走电流,你反焊盘挖得太大,等于把平面掏成筛子,电源回流路径被切断,噪声自然就大。常规做法是反焊盘比Regular Pad大6~8mil,板子叠层厚、层间距大的时候,再适当放宽到10~12mil。

改完Padstack文件以后,还有一个特别容易忽略的步骤:回到PCB Editor里执行Tools > Padstack > Refresh,把版图里所有引用这个Padstack的过孔刷新一遍。我见过太多人改了Padstack文件,结果板子上过孔还是老样子,折腾半天发现是没刷新,这种低级错误很耽误时间。

2. 约束规则中的过孔白名单:让工具替你把关

2.1 在Physical约束中绑定过孔

Allegro里放过孔不是无限放的。你在布线的时候按Shift+左键,系统能从哪些过孔里选,完全由当前网络挂载的Physical Constraint决定。如果这个约束规则里一个过孔都没加,你会发现Shift+左键按了没反应,这就是新手最常遇到的“放不了过孔”的根源。

设置入口在Setup > Constraints > Constraint Manager。打开以后切到Physical页面,左侧选Physical Constraint Set,里面默认会有一个All Layers相关的规则,通常叫DEFAULT。选中它,双击Vias那一列,会弹出一个Available Vias的窗口,把你需要的Padstack从左边加到右边,保存退出。

这一步做完,再进入布线命令,Options面板里的Via下拉列表就只剩你授权的那几个过孔了。好处非常明显:整个团队做同一个项目时,过孔种类被规则锁死,不会有人在角落里放一个奇奇怪怪的异形孔,后续DFM检查、光绘输出都能省掉很多麻烦。

2.2 网络覆写与规则的优先级关系

一个板子上不可能所有网络用同一种过孔。DDR走线想用10/18的小孔,电源网络恨不得用20/36的大孔,普通信号用12/22刚刚好,这时候就把所有网络塞到DEFAULT里显然不现实。

正确做法是在Physical Constraint Set里新建几条规则,比如PWR_VIAS、DIFF_VIAS,然后通过Net Class把这些规则挂到对应的网络类别上。操作上并不复杂:

  • 在Physical页面右键新建规则,给规则重命名
  • 双击Vias列,把该规则允许的过孔加进去
  • 切到Net Class页面,把电源网络分配到PWR类,并指定物理规则为PWR_VIAS

这里有个很隐蔽的坑,就是Allegro的规则优先级:Net Level(某个具体网络单独设置的规则)优先于Net Class规则,Net Class规则优先于DEFAULT规则。如果你给某个网络单独设置了Physical规则,那个规则里忘了加过孔,那么不管你在Net Class里怎么配,这条网络还是放不了过孔。排查问题的时候,先确认这个网络上是不是挂了一个独立的物理规则,别一上来就盯着Class看。

2.3 放置过孔时的实时DRC与Keepout避让

绑定过孔之后,还建议把约束管理器里的Physical Modes全部打开。这里有非常多的检查项,比如Via Near Keepout、Via To Via、Via To Pin,全部勾上以后,实时DRC会在你移动过孔时立刻反馈是否合法。

如果你的光标附近有禁止区、器件包围框,或者过孔间距不够,DRC会变红,Allegro会拒绝放置,这种情况千万不要硬放。把Options面板里的Snap to调整为合适的格点模式,或者稍微挪一下位置,DRC变绿再落孔。

不少工程师做板子喜欢把实时DRC关掉,觉得太吵,等布完线再统一跑。我不建议这样。过孔的放置尤其依赖实时DRC,因为你肉眼很难判断一个孔离旁边的钻孔是不是只有2mil,等布完线再回来修,位置可能已经挤不进去了。

3. 放置过孔的几种高效手法:从Shift+左键到批量复制

3.1 手工放置和快速换层的标准操作

Allegro里最基础的过孔放置,就是在布线过程中换层。这个操作流程是:进入Connect命令,先在Options面板里选好过孔类型,然后在当前走线的端点位置点一下,过孔会跟着光标出现,此时按下Shift+左键,过孔落下,布线层自动切换到对面,继续走线。

如果你已经有两段线布好了,中间想加一个过孔把它们连起来,不需要把线删了重走。选中其中一段,在断点处使用Shift+左键,Allegro会自动补一个过孔进去,两边线头自动连接。这个技巧在修线、补回流孔的时候特别常用。

还有一个很细节但很有用的点:放完过孔以后,右键菜单里有Change Width,可以在换层的同时直接把线宽改了。比如从电源层走线切换到信号层,需要从20mil变到5mil,就不用先放孔、再改线宽、再走线,放孔的瞬间就能完成。

3.2 Copy和阵列复制:同类过孔一次搞定

当你需要打一排完全相同的过孔——比如给8对差分线补回流地孔,或者给电源模块的输入输出打一排滤波过孔——手动一个一个放就很浪费生命了。Allegro的Copy命令可以帮你在几秒钟内生成整齐的过孔阵列。

操作路径是Edit > Copy,选中源过孔后,在Options面板里把Copy类型改成Rectangular,然后输入X方向和Y方向要复制的数量以及间距,点击目标位置,一排过孔就自动生成了。这个功能支持矩形阵列,也支持Polar极坐标阵列,后者适合绕圆形板框打一圈屏蔽地孔。

复制出来的过孔会自动继承源过孔的网络属性,所以不需要二次分配网络。不过复制完成后建议用Tools > Padstack > Replace这类功能统一检查一下,防止有漏选或者错位。

3.3 全局替换过孔:项目后期的一键换型

有时候板子画到一半,工厂反馈某个过孔规格做不了,或者为了降成本要把全板的盲埋孔改成通孔,这时候不可能手动一个一个换。Allegro提供了一个全局替换功能:Tools > Padstack > Replace。

在弹出的对话框里,Find面板先勾选Vias,然后指定源Padstack和目标Padstack,点击Replace,所有符合条件的过孔就会被替换成新Padstack。用这个功能之前,记得确认目标过孔在当前网络的Physical约束白名单里,否则Allegro会因为规则限制拒绝替换,或者替换后DRC红成一片。

全局替换的另一个好处是,它可以保持过孔的网络属性、坐标位置不变,只是换个头衔。这让它在DFM阶段非常实用。

4. 过孔阵列与缝合:高频板上的屏蔽墙和回流通道

4.1 什么是Via Stitching,什么时候需要它

在射频板、高速数字板里,过孔的作用远不止换层。一圈密集的地过孔可以形成金属栅栏,把板内的电磁辐射锁在局部区域;高速信号换层点旁边打几个回流过孔,能为返回电流提供低阻抗路径,减小环路面积。

这就是缝合过孔(Via Stitching)的用途。很多工程师把缝合过孔理解成“随便打一圈地孔”,实际上间距是有讲究的。射频设计里有条经验规则:过孔间距要远小于工作波长,工程上常用λ/20作为上限。比如2.4GHz频段的波长大约是125mm,λ/20差不多6.25mm,也就是246mil,所以间距控制在100~200mil完全没问题。到了毫米波频段,间距要求会严苛很多,得靠仿真来确定。

高速数字板不一定要按波长算,更常用的规则是看回流路径:信号换层点的两侧100~150mil范围内,至少各有一个GND缝合过孔;DDR这类并行总线区域,要保持地孔密度,确保每条信号线附近都有就近的回流路径。

4.2 在Allegro中快速创建过孔阵列

Allegro可以自动在一片铜皮区域内铺满过孔。操作方式是选中有网络的动态铜皮Shape,右键选择Create Via Array。在弹出的对话框中,可以设置阵列的排列方式(X/Y等间距或极坐标)、行列数、间距、以及过孔距离铜皮边界的偏移量。

如果你用的是较新版本的Allegro,Route菜单下还会有专门的Via Stitching工具,可以自动在几块同网络的铜皮之间生成一排缝合过孔,把两片铜皮牢牢缝在一起。找不到这个入口的话也不用慌,用Copy的Rectangular阵列功能手动实现,效果差不多。

参数上我给几个常用值:过孔到铜皮边缘的偏移量建议10~20mil,避免DRC报错;缝合过孔之间间距取100~200mil(数字板),板边屏蔽孔可以密到50~100mil;过孔类型直接用常规信号孔就行,缝合过孔不承担大电流,没必要用大孔。

4.3 阵列生成之后的清理与避让

Create Via Array一键生成的过孔,看着很爽,但也容易出问题。Allegro对异形铜皮的裁剪能力有限,有时候过孔会生成到器件下面、Keepout区域里,甚至跑到板框外面。

我的习惯是:在生成阵列之前,先把禁止区(Setup > Areas > Keepout)画好,让DRC实时盯着;生成阵列之后再跑一次Tools > Design Rule Check,专门查Via to Keepout这类错误,发现红点就手动删除。

另一个容易被忽略的问题是过孔密度过高。有些工程师觉得缝合孔越多越好,结果整片铜皮被过孔打成了蜂窝煤,平面的载流能力和完整性反而被破坏。保持合理的间距比盲目堆密度更重要。

5. 过孔与铜皮的连接方式:散热与大电流场景下的取舍

5.1 热焊盘、花焊盘、全连接到底由谁控制

过孔放进板子里以后,它和周围铜皮怎么连接,很多工程师根本说不清。实际上这个行为由两个层面共同控制。

第一层是Padstack文件里的Thermal Pad和Anti Pad。如果Thermal Pad有值,动态铜皮连接到这个过孔时,会自动生成十字花连接;如果Anti Pad很大,那么铜皮在过孔周围会被挖空,形成隔离岛。

第二层是Shape连接方式。入口在Setup > Design Parameter Editor > Shape,可以选择Solid全连接或者Thermal Relief花焊盘连接,也可以针对不同网络单独设置。

具体取舍逻辑是这样的:

  • 电源、地过孔:推荐全连接,减小直流电阻。花焊盘虽然好看,但会把过流能力砍掉两到三成。
  • 普通信号过孔:默认用花焊盘,方便焊接和返修,焊锡更容易流进去,也能避免大面积铜皮把热量快速带走造成虚焊。
  • 大电流路径上的过孔:必须全连接,同时保证过孔数量足够。

5.2 大电流过孔阵列与散热设计

功率器件比如DC-DC的MOS管、LED驱动芯片,经常需要过孔把顶层热量导到背面的大面积铜皮上。这时候的过孔是热通道,不是信号通道。

具体做法是:在焊盘上或焊盘旁边放8~12个过孔,孔径10~12mil,间距30~50mil,过孔的顶层和底层都要有Regular Pad,中间层可以用Anti Pad隔离。如果中间层有地平面,这些过孔还能把热量进一步传导到内层,散热效果更好。

另外要提醒一点:制板时过孔孔壁的镀铜厚度决定了导热能力,常规1oz铜厚和2oz铜厚的热阻差了不少。做大电流散热孔之前,先和板厂确认孔壁铜厚能不能加厚,不要等板子回来才发现热得压不住。

盖油和塞孔也是过孔后期处理的重头戏。过孔盖油的本质是让阻焊油把过孔盖住,防止焊锡从孔里漏到另一面。在Allegro里,Padstack中Soldermask_Top和Soldermask_Bottom不设置开口或开口设为零,就能实现盖油。塞孔则是用油墨把孔填平,工艺更复杂,BGA焊盘内的过孔通常要求树脂塞孔加电镀盖帽,否则焊接时焊锡会顺着孔流走,虚焊率直线上升。

5.3 铜皮优先级对过孔连接的影响

Allegro里还有个很隐蔽的影响因素——铜皮优先级。当两片不同网络的动态铜皮重叠时,后画的Shape通常优先级更高,这会直接干扰过孔到底连到哪片铜皮上。

如果你发现某个地过孔明明放在GND铜皮上,DRC却报它连到了电源铜皮,先别急着怀疑Padstack,多半是旁边有一片重叠的电源Shape优先级更高,把GND铜皮盖住了。解决办法是选中铜皮右键,调整Shape优先级,或者用Z-Copy在重叠区域挖空,让两个网络不要叠在一起。

6. 放置过孔后的检查链条与常见报错

6.1 “放不了过孔”的完整排查路径

我整理了一个排查链条,遇到过孔相关的问题,按照这个顺序走一遍基本都能定位:

现象最可能原因解决办法
布线时Shift+左键放不了过孔Physical约束规则中没有该PadstackConstraint Manager > Physical > Vias中加入目标过孔
Options面板Via下拉列表为空网络的物理规则没有指派可用过孔检查Net Class和Net Level规则是否匹配
过孔放在铜皮上却不连接铜皮是静态Shape且未Assign Net,或Anti Pad过大改动态Shape并Assign Net,或检查Padstack参数
过孔替换后网络丢失Replace时Find面板勾选了多余对象只在Find面板勾Vias,不要选Pin/Clines
Via Array生成的过孔报DRC过孔落在Keepout或板框边界先画Keepout,再生成阵列,最后跑DRC清理

第一步永远是查约束规则。Allegro里80%的过孔放置问题,根子都在Physical Constraint的Vias列表没配好。

6.2 DRC检查和光绘前的最后确认

过孔放完以后,至少要做两件事收尾。第一,进入Setup > Constraints > Modes,把所有Via相关检查(Via Keepout、Via To Via、Via To Pin等)打开,跑一遍全板DRC,红点逐个清掉。第二,出光绘之前,在Manufacturing > Artwork里确认钻孔符号表已经更新,否则Gerber文件里可能缺钻孔符号,板厂那边会给你打回来。

如果你用过孔盖油的Padstack,在输出光绘的时候还要注意阻焊层数据。很多时候你明明在Padstack里设置了盖油,Gerber里却还是开窗,就是因为光绘输出时阻焊层包含了过孔焊盘开口。这种问题找板厂确认工艺的时候一定要说清楚:你的设计意图是盖油还是开窗,不要只说“帮我盖一下”。

6.3 关于动图演示的文字版说明

标题里写了附GIF演示,但平台这边动图不太好嵌,我在上面每一节里已经把鼠标操作路径、菜单位置、快捷键都拆开写清楚了。对着文字一样能操作,就是需要耐心一点。想真人视频教学的,可以按文中提到的菜单名去搜,17.4和16.6的操作逻辑一致,无非是界面位置稍微挪了挪。实在卡住了,用“Options面板变灰”“DRC报红”“放不了过孔”这类现象去搜,比死记菜单名有效得多。

我在实际项目中养成的习惯是:画板之前先花10分钟把Padstack和约束规则全部定义好,后面布线基本上不会被过孔问题打断。过孔这东西看着不起眼,但它同时影响信号质量、电源完整性、可制造性和散热,属于典型的“小零件大讲究”。希望这5个技巧对你有帮助,如果你碰到过孔相关但这里没提到的坑,也欢迎一起讨论。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询