三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Altium Designer规则失效?PCB线宽过孔不匹配的排查与解决

Altium Designer规则失效?PCB线宽过孔不匹配的排查与解决

1. 问题现象:当规则“失灵”时,你的PCB设计正在悄悄失控

作为一名画了十几年板子的硬件工程师,我敢说,几乎每个用过Altium Designer(后文简称AD)的朋友,都遇到过这个让人血压飙升的场景:你明明在规则管理器(PCB Rules and Constraints Editor)里,白纸黑字地设置了线宽10mil、过孔内径20mil/外径40mil。你信心满满地开始布线,结果一放下走线,发现线宽是8mil;一打过孔,发现尺寸是16mil/32mil。软件仿佛有了自己的“想法”,完全无视你精心制定的规则。

这绝不是个例,而是一个在AD用户中流传甚广的“经典玄学问题”。新手往往会怀疑自己是不是哪里点错了,老手则知道这背后一定有几个特定的“开关”没拧对。问题看似简单——规则与实际操作不符,但其根源却可能分散在软件设置的多个角落。更危险的是,这种不符往往是静默发生的,除非你非常仔细地检查每一根线、每一个孔,否则很可能直到投板生产前才发现,轻则导致阻抗不连续、电流能力不足,重则直接造成板厂无法加工或产品可靠性隐患。

今天,我们就来彻底拆解这个“规则失灵”问题。我将结合无数次踩坑和帮同事排查的经验,为你梳理出一条完整的、可复现的排查链路。你会发现,解决这个问题,关键不在于记住某个固定操作,而在于理解AD处理设计规则的优先级逻辑生效机制。我们将从最表层的操作检查,一直深入到容易被忽略的默认设置和项目级配置,确保你的设计意图能被AD百分百忠实执行。

2. 第一现场排查:你的操作真的在规则“管辖范围”内吗?

当发现参数不符时,我们首先要做的不是去翻复杂的设置,而是进行一场“现场勘查”。AD的规则引擎非常强大,但它的生效是有严格前提条件的。很多不符情况,其实是因为我们的操作本身就在规则“射程”之外。

2.1 确认当前激活的规则与规则优先级

这是最首要的一步。在PCB编辑界面,按下快捷键D->R打开规则管理器。在这里,你需要关注两个关键点:

  1. 规则是否被启用:每条规则最左侧都有一个复选框。请确保你设定的线宽(Width)规则和过孔(Routing Via Style)规则前面的勾是打上的。我曾经就遇到过因为误点击而禁用了关键规则,导致布线时一直使用默认值的情况。

  2. 规则的优先级(Priority):这是AD规则系统的核心逻辑之一。当同一个对象(比如一根走线)被多条规则匹配时,AD会按照优先级从高到低依次应用,高优先级的规则会覆盖低优先级规则的设置

    注意:一个常见的坑是,你设置了一个针对“All”的全局线宽规则,但又为某个特定的网络类(如电源类)设置了更宽的线宽。如果你在布电源线时,线宽不符合电源类规则,反而符合全局规则,那很可能是电源类规则的优先级不够高,被全局规则覆盖了。你需要选中电源类规则,点击右下角的Increase Priority按钮来提高它的优先级。

2.2 检查规则的作用域(Where The Object Matches)

规则的作用域决定了它“管”哪些东西。如果你的走线或过孔没有被正确的规则“管到”,那它自然会使用默认值或其他规则。

  • 对于线宽规则:选中你的Width规则,查看右边“Where The First Object Matches”区域。这里定义了规则的适用范围。常见设置有:

    • All:适用于所有走线。
    • InNet('GND'):仅适用于名为GND的网络。
    • InNetClass('Power'):适用于“Power”这个网络类中的所有网络。
    • OnLayer('Top Layer'):仅适用于顶层走线。

    请务必确认你正在布线的网络,是否真的落在了你预想的那条规则的作用域内。例如,你为“12V”网络设置了20mil的线宽,但作用域误写为InNet('5V'),那么布12V的线时自然不会生效。

  • 对于过孔规则:同样检查作用域。过孔规则通常作用于“All”或者特定网络/网络类。一个高级技巧是,你可以为高密度区域(如BGA下方)设置更小尺寸的过孔规则,而为电源通道设置更大尺寸的过孔规则,通过作用域和优先级来精确控制。

2.3 验证“交互式布线”时的实时设置

在布线过程中,按Tab键可以调出当前交互式布线的属性窗口。这里显示的值,才是AD此刻准备应用于你下一段走线或下一个过孔的参数。

  • 布线时:按Tab,查看“Trace Width”是否是你规则中设定的值。如果不是,说明当前激活的规则并非你预期的那一条。
  • 放置过孔时:在需要打过孔的地方单击后,同样按Tab,查看“Via Diameter”(过孔外径)和“Via Hole Size”(过孔内径)的值。

这个窗口是规则是否生效的“试金石”。如果这里显示的值不对,那么问题一定出在规则设置、优先级或作用域上。如果这里显示的值正确,但放置后的对象参数不对,那问题可能就更深入一些,我们接着往下看。

3. 深入配置:揪出那些“全局默认值”和“隐藏设置”

如果上述现场排查无误,规则优先级和作用域都正确,交互式布线属性也显示正确,但放置后的对象参数依然不对。那么,我们需要将目光投向一些更深层的、影响全局的默认设置。

3.1 检查PCB编辑器的“默认”参数(Preferences)

AD有一个独立的“默认”参数系统,它像是一套保底规则。当没有任何设计规则匹配某个对象时,或者在某些特定操作模式下,就会使用这些默认值。

  1. 点击软件左上角File->Preferences(或直接快捷键PP,注意有些版本是DXP->Preferences)。
  2. 在左侧树状菜单中找到PCB Editor->Defaults
  3. 在右侧,你会看到一系列对象类型,如Track(走线)、Via(过孔)等。
  4. 选中Track,点击Edit Values...。在弹出的窗口中,检查“Width”的值。这个值,就是你在没有规则约束,或者使用“放置走线”工具(而非“交互式布线”工具)时,所使用的默认线宽。
  5. 同样,选中Via,点击Edit Values...,检查“Diameter”(外径)和“Hole Size”(内径)。

一个关键的心得:我强烈建议将这些默认值设置为你设计中最常用、或最安全的数值。例如,将默认线宽设为你的最小允许线宽(如6mil),将默认过孔设为最小允许尺寸(如12mil/24mil)。这样,即使规则偶尔“掉线”,也不会产生灾难性的错误(比如电源线布成了信号线宽度)。

3.2 审视“板选项”中的线宽/过孔模式(Board Options)

这个设置位于Design->Board Options,或者快捷键D->O。这里有一个极其重要但常被忽略的选项:“Routing Via Style”和“Trace Width”模式

在“Routing Via Style”旁边,通常有一个下拉菜单,选项可能是“From Rule”或“Manual”。“From Rule”表示过孔尺寸由规则决定,这是我们所期望的。如果这里被不小心改成了“Manual”,并且手动输入了一组尺寸,那么在你放置过孔时,AD会优先使用这里手动设置的尺寸,而忽略规则管理器的设置!线宽模式(如果存在)同理。

请务必确保这些模式都设置为“From Rule”

3.3 项目级与系统级默认的博弈

AD的参数继承关系有时令人困惑。除了上述的PCB编辑器默认值,还存在“项目级”默认的概念(虽然不明显)。一个更稳妥的做法是:

创建并使用“PCB板设计模板”(.PcbDocTemplate)或“项目模板”(.PrjPcbStructure)。在一个干净的PCB文件中,一次性将Preferences->PCB Editor->Defaults中的参数,以及Board Options中的设置,还有你常用的层叠结构、规则等全部配置好,然后另存为模板。新建PCB时直接使用此模板,可以从根源上避免默认参数混乱的问题。这是我管理团队设计环境统一性时必做的步骤。

4. 高级场景与疑难杂症排查

解决了基础和全局设置,大部分问题应该已经消失。但如果你的问题依然存在,可能涉及一些更特殊的场景或软件本身的“特性”。

4.1 从原理图更新或导入网络时发生的参数重置

这是一个高频踩坑点。当你从原理图更新PCB(Design->Update PCB Document)时,或者在PCB中导入网络变化时,AD有时会“多此一举”地试图应用原理图元件封装中自带的管脚焊盘尺寸,来影响PCB中对应网络的走线和过孔参数。

排查与解决

  1. 检查原理图库中元件的管脚焊盘属性。尽管这通常不影响PCB规则,但在极少数同步错误时可能成为干扰源。
  2. 更有效的方法是:在PCB更新对话框中(执行更新前弹出的那个窗口),仔细查看“Modify”一栏。确保没有关于“Track Width”或“Via Style”的修改项被勾选。通常,我们只关心元件和网络的增减,不希望通过原理图来改变PCB的物理规则。如果这里有相关项,取消勾选。

4.2 使用“布线策略”与“过孔样式”面板时的陷阱

AD提供了Routing Width / Via Size面板(可通过View->Panels调出),允许你在布线时快速切换预设的几组线宽和过孔尺寸。这个功能很方便,但也是个“规则破坏者”。

  • 机制:这个面板里的设置,其优先级高于大多数设计规则。当你从这个面板中选择了某个线宽(如8mil)时,接下来你放置的所有走线都会强制使用8mil,直到你再次更改面板选择或关闭面板。
  • 如何判断:如果你正在使用这个面板,那么交互式布线时按Tab键看到的属性,会明确显示它正受控于“From User Choice”(来自用户选择),而不是“From Rule”(来自规则)。
  • 建议:对于规则严谨的设计,我个人的习惯是不使用这个快速切换面板,或者仅在规则调试阶段临时使用。所有尺寸控制都应通过规则管理器来完成,以保证设计的一致性和可维护性。

4.3 规则冲突与“未定义”参数的处理

有时,规则本身可能包含未定义的参数。例如,你设置了一条线宽规则,但只定义了“Min Width”(最小线宽)和“Max Width”(最大线宽),却没有定义“Preferred Width”(首选线宽)。那么,AD在布线时可能会使用一个默认值(比如Preferences->Defaults里的值),或者表现得不可预测。

最佳实践:在设置任何线宽或过孔规则时,确保三个值都明确填写:

  • 线宽:Min Width(最小), Max Width(最大),Preferred Width(首选)
  • 过孔:Hole Size(内径)和 Diameter(外径)的 Min(最小), Max(最大),Preferred(首选)

“首选”值,就是交互式布线时默认使用的那个值。把它设为你最常用的数值。

5. 建立防错工作流:让规则不符问题无处遁形

排查问题固然重要,但建立一套预防问题的工作流更为关键。以下是我在多年团队协作中总结出的几条铁律,能极大降低此类错误的发生概率。

5.1 规则设置标准化清单

在开始任何一个新项目或使用新模板时,按照以下顺序检查和设置规则:

  1. 设置默认值(Preferences->PCB Editor->Defaults):将Track和Via的默认值设为设计允许的最小值(安全底线)。
  2. 检查板选项(Design->Board Options):确认所有模式均为“From Rule”。
  3. 规划规则优先级:在规则管理器里,从特殊到一般设置规则。例如:
    • 最高优先级:特定敏感网络(如时钟)的线宽规则。
    • 次高优先级:电源网络类的线宽/过孔规则。
    • 较低优先级:差分对规则。
    • 最低优先级:All(全体)的默认线宽/过孔规则。 利用Increase Priority/Decrease Priority按钮理清层次。
  4. 完整定义参数:每条规则都必须填写 Min、Max、Preferred 三个值,且 Preferred 在 Min 和 Max 之间。
  5. 作用域二次确认:对每条非“All”的规则,双击其作用域查询语句,使用查询构建器(Query Helper)可视化检查,确保其准确匹配目标对象。

5.2 利用DRC进行实时监控与批量验证

不要等到设计完成才运行DRC(设计规则检查)。将其作为实时设计辅助工具。

  1. 在线DRC:确保Tools->Preferences->PCB Editor->General中的“Online DRC”是开启的。这样,违反规则的走线或过孔放置时会实时高亮显示(默认为绿色,可在View->Layers & Colors中配置高亮颜色)。
  2. 批量DRC报告:在关键设计节点(如布局完成、布线完成、投板前),运行一次完整的DRC (Tools->Design Rule Check)。重点关注“Routing”和“Manufacturing”类别下的“Width”和“Hole Size”相关报错。任何报错都必须逐一审查、修正。

5.3 投板前的最终参数核对“仪式”

在生成Gerber文件发送给板厂之前,进行最后一次人工核对:

  1. 使用“PCB List”面板:调出PCB List面板 (View->Panels->PCB List),将其视图模式设置为“Nets”或“All Objects”。然后,你可以筛选出所有“Tracks”或“Vias”,并添加“Width”或“Diameter/HoleSize”列进行排序。一眼就能扫出所有不符合常规值的对象,效率远高于肉眼在板上寻找。
  2. 生成规则检查报告:在DRC对话框中,勾选“Create Report File”,运行后生成一个详细的HTML报告。用文本编辑器打开,搜索“Width”和“Via”,可以快速查看所有规则的实际应用情况汇总。

线宽与过孔参数不服从规则,这个看似简单的问题,实际上是检验一位PCB设计者是否真正理解AD设计数据流和优先级逻辑的试金石。它要求我们不仅会“设置”规则,更要懂得规则是如何被“应用”的。从交互式布线的实时属性,到规则管理器的优先级作用域,再到深藏于偏好设置中的全局默认,最后到各种便捷工具可能带来的覆盖效应,每一个环节都可能成为规则的“断点”。

← 返回列表