4. 物理约束体系

在 Allegro 的约束管理体系里,电气约束回答的是“信号能不能跑对”,而物理约束回答的是“这根线在板子上长什么样”。物理约束直接决定铜箔的几何形态:线有多宽、过孔多大、铜皮留多少间距、走线放在哪一层、阻抗线用什么线宽。它既是制造能力的边界,也是信号完整性的物理基础。本节围绕线宽、过孔、铜皮、走线层和阻抗控制线宽五类规则,说明如何按网络类与区域把它们落到 Constraint Manager 中。

一、物理约束的五类对象

物理约束不是单一参数,而是一组相互关联的几何规则。理解它们各自约束什么,是配置的前提。

  • 线宽(Line Width):约束走线的最小、最大、默认宽度。最小线宽受 PCB 厂蚀刻能力限制,典型常规工艺为 4 mil(0.1 mm),进阶工艺可到 3 mil;最大线宽用于大电流路径,避免过窄导致温升。
  • 过孔(Via):约束过孔焊盘直径、钻孔直径、反焊盘(Anti-pad)尺寸,以及允许使用的过孔类型(通孔、盲埋孔)。过孔尺寸影响布线密度、寄生电容和载流能力。
  • 铜皮(Shape):约束铜皮与走线、过孔、其他铜皮之间的间距,以及铜皮的连接方式(全连接、热焊盘连接)。它决定电源/地平面的完整性和散热路径。
  • 走线层(Routing Layer):约束某网络允许或禁止出现在哪些层。例如高速差分对限定在内层走线,时钟线避开电源平面边缘。
  • 阻抗控制线宽(Impedance-Controlled Width):当网络被指定为受控阻抗时,线宽不再是自由参数,而由叠层、介质厚度、铜厚和介电常数共同决定,必须与目标阻抗匹配。

这五类规则在 Constraint Manager 中分别位于 Physical 约束集的 Line、Via、Shape、Layer 和 Impedance 分支下,但实际配置时往往需要联动:改线宽会影响阻抗,改过孔会影响反焊盘间距,改走线层会改变参考平面从而改变阻抗。

二、按网络类设置物理约束

Allegro 的物理约束以“网络类(Net Class)”为基本组织单位。推荐做法是先按电气功能分组,再为每组分配物理规则,而不是逐根网络设置。

典型分组示例:

网络类典型成员线宽过孔走线层
POWERVCC_3V3、VCC_1V8、VDD_CORE20 mil0.6/0.3 mm内层优先
DDR_DATADQ0–DQ31、DQS5 mil0.45/0.25 mm内层信号层
USB_HSUSB_DP、USB_DM按 90 Ω 差分计算0.45/0.25 mm内层,紧邻地平面
CLKCLK_25M、CLK_100M5 mil0.45/0.25 mm内层,包地
DEFAULT其余普通信号6 mil0.6/0.3 mm任意

配置路径:Setup → Constraints → Physical → Net Class。在 Net Class 中新建类,把网络拖入对应类,然后在 Line、Via、Layer 列填写规则。注意 Allegro 的规则优先级是“对象级 > 类级 > 默认级”,因此单根网络的特殊要求可以覆盖类规则,但应尽量少用,避免规则碎片化。

三、按区域设置物理约束

同一网络在不同区域可能需要不同物理规则。例如 BGA 出线区空间紧张,线宽需要收窄;而板边连接器区域空间充裕,可以放宽。Allegro 通过“区域(Region)”实现这种空间维度的约束。

操作方式:在 Constraint Manager 中进入 Physical → Region,创建区域约束集,然后在 Allegro 画布上用 Shape 绘制区域边界,并把它关联到对应区域约束集。区域内网络自动继承该区域的线宽、过孔和间距规则。

典型区域划分:

  • BGA 逃逸区:线宽 4 mil,过孔 0.3/0.15 mm,允许更小间距。
  • 电源模块区:线宽 30 mil,铜皮全连接,过孔阵列密集。
  • 连接器扇出区:线宽 6 mil,过孔 0.6/0.3 mm,间距放宽。

区域约束与网络类约束叠加时,Allegro 按“区域优先于类”的规则处理,因此区域规则应作为局部例外使用,而不是全局替代。

四、阻抗控制线宽的计算与配置

阻抗控制线宽不能凭经验拍定,必须基于叠层参数计算。以常见的 50 Ω 单端微带线为例,若叠层为:顶层铜厚 1 oz(1.4 mil),介质厚度 4 mil,介电常数 Er=4.2,则线宽约需 7.2 mil 才能达到 50 Ω。若改为内层带状线,上下介质各 6 mil,同样 Er=4.2,线宽约需 5.5 mil。

Allegro 提供两种配置方式:

  1. 在 Constraint Manager 的 Physical → Impedance 分支中,直接为网络类指定目标阻抗值,Allegro 会根据叠层自动反算线宽。
  2. 在叠层编辑器(Cross Section)中定义阻抗模型,然后在 Physical 规则中引用该模型。

无论哪种方式,都必须保证叠层参数与实际 PCB 厂能力一致。建议在投板前用 PCB 厂的叠层报告复核一次,避免“设计阻抗 50 Ω、实际生产 45 Ω”的偏差。

物理约束体系:网络类与区域的双维度配置 按网络类(Net Class) POWER 线宽 20 mil · 过孔 0.6/0.3 · 内层 DDR_DATA 线宽 5 mil · 过孔 0.45/0.25 · 内层 USB_HS 差分 90 Ω · 过孔 0.45/0.25 · 内层 CLK 线宽 5 mil · 包地 · 内层 DEFAULT 线宽 6 mil · 过孔 0.6/0.3 · 任意 优先级:对象级 > 类级 > 默认级 配置路径:Setup → Constraints → Physical → Net Class 按区域(Region) BGA 逃逸区 线宽 4 mil · 过孔 0.3/0.15 · 小间距 电源模块区 线宽 30 mil · 铜皮全连接 · 过孔阵列 连接器扇出区 线宽 6 mil · 过孔 0.6/0.3 · 间距放宽 阻抗控制区 按叠层反算线宽 · 目标 50 Ω / 90 Ω 区域规则优先于类规则 区域边界用 Shape 绘制并关联约束集 联动关系:线宽 ↔ 阻抗 · 过孔 ↔ 反焊盘间距 · 走线层 ↔ 参考平面 ↔ 阻抗

五、配置后的检查与验证

物理约束配置完成后,不能只看规则表,必须回到 PCB 上验证。常用手段有三种:

  1. DRC 检查:运行 Design Rule Check,Allegro 会按物理约束报告线宽不足、过孔超限、间距违规等问题。重点关注 BGA 区域和阻抗线区域,这两处最容易出现规则冲突。
  2. 约束覆盖检查:在 Constraint Manager 中查看每个网络的“实际生效规则”,确认没有被意外的对象级规则覆盖。Allegro 提供“Constraint Override”报告,可列出所有覆盖项。
  3. 阻抗复核:对阻抗控制网络,用 Cross Section 工具重新计算实际线宽对应的阻抗值,与目标值对比。若偏差超过 ±10%,需要调整线宽或叠层。
建议在项目初期就建立“网络类 + 区域”的物理约束模板,后续项目直接复用。模板中应包含:类名、成员网络、线宽范围、过孔尺寸、允许层、阻抗目标值。这样既能保证一致性,也能减少重复配置的工作量。
物理约束与电气约束必须协同设置。例如,把某网络设为 50 Ω 阻抗控制后,若忘记在 Physical 中同步线宽,Allegro 会按默认线宽布线,导致实际阻抗偏离。配置完成后务必用 DRC 和阻抗复核双重确认。

物理约束体系的本质,是把“制造能力”和“电气需求”翻译成一组可执行的几何规则。线宽、过孔、铜皮、走线层和阻抗控制线宽这五类规则,通过网络类和区域两个维度落到设计数据中,最终由 DRC 和阻抗复核来闭环验证。掌握这套配置逻辑,才能在复杂多层板中既保证可制造性,又守住信号完整性。