4. 差分对规则设置实战

在 Allegro 中,差分对的电气约束并不是直接写在走线对象上的,而是通过 Constraint Manager(约束管理器) 以“规则集 + 网络分配”的方式集中管理。理解这条主线,是避免“改了线宽却没生效”“规则建了但网络没套上”这类问题的前提。本节以一块 8 层板上的 LVDS 差分对为例,完整走一遍从规则创建到网络套用、再到实际走线验证的过程。

一、先理清约束的层级关系

Allegro 的差分约束分两层:Physical(物理) 层负责线宽、间距、过孔等几何参数;Electrical(电气) 层负责阻抗、时序、相位等电气参数。差分对本身是一个“对象”,它由 Differential Pair 定义产生,然后被 Physical 规则集和 Electrical 规则集分别引用。因此配置顺序应当是:先定义差分对 → 再建物理规则 → 再建电气规则 → 最后把规则分配给差分对。

差分对约束配置主线:定义 → 建规则 → 分配 → 验证 ① 定义差分对 Differential Pair LVDS_TX0_P / _N ② 建物理规则 线宽 / 间距 / 过孔 Physical CSet ③ 建电气规则 阻抗 / 长度 / 相位 Electrical CSet ④ 分配 Assign 到差分对 Physical 规则关键字段 Line Width(单线宽) 5 mil Gap(对内间距) 6 mil Neck Width(颈缩) 4 mil Primary Via 8/16 mil Max Parallel(并行长度) 500 mil Min Line Spacing(对外) 15 mil Diff Pair 允许层 TOP / L3 / BOT Tolerance(线宽容差) ±10% Electrical 规则关键字段 Target Impedance(差分阻抗) 100 Ω ±10% Max Length(最大长度) 2500 mil Min Length(最小长度) 800 mil Intra-Pair Skew(对内相位容差) ±5 mil Inter-Pair Skew(对间相位容差) ±50 mil Propagation Delay(传播延迟) ≤ 180 ps/inch Relative Propagation Delay Delta: 0 ± 5 mil Phase Tolerance(相位容差) ±5 mil

二、定义差分对:从网络名到差分对象

打开 Constraint Manager,在 Physical → Net → All Layers 或 Electrical → Net → Differential Pair 中,都可以通过 Objects → Create → Differential Pair 创建差分对。更常用的做法是让 Allegro 自动识别:在 Analyze → Differential Pair 中设置命名规则,例如以 _P 和 _N 结尾的网络自动配对。对于本例,LVDS 发送端网络命名为 LVDS_TX0_P 与 LVDS_TX0_N,接收端为 LVDS_RX0_P 与 LVDS_RX0_N,共 4 对。自动识别后,在 Constraint Manager 的 Differential Pair 列表中应能看到这 4 个对象,且状态为 Unassigned。

如果自动识别失败,通常是命名后缀不统一(如混用 +/- 与 _P/_N),或网络被误设为 No Rat。先统一命名,再重新执行识别。

三、创建 Physical 规则集

在 Physical → Differential Pair → All Layers 下,右键 Create → Physical CSet,命名为 DIFF_100OHM。关键字段填写如下:

  • Line Width:5 mil。这是单根线的宽度,不是差分对总宽。
  • Gap:6 mil。这是对内两根线的边到边间距,直接决定差分阻抗。
  • Neck Width:4 mil。当走线必须穿过密集焊盘区域时允许的颈缩宽度,需配合 Neck Gap 一起设置。
  • Primary Via:8/16 mil(钻孔/焊盘)。差分过孔建议成对放置,间距与走线 Gap 保持一致。
  • Max Parallel:500 mil。限制差分对与其他信号并行长度,降低串扰。
  • Min Line Spacing:15 mil。差分对对外部网络的最小间距。

填写完成后,点击 Apply。此时规则集已存在,但还没有分配给任何差分对,因此走线不会发生变化。

四、创建 Electrical 规则集

切换到 Electrical → Differential Pair → Routing → Differential Pair,创建 Electrical CSet,命名为 LVDS_ELEC。这里要区分几个容易混淆的字段:

字段含义本例取值
Target Impedance差分阻抗目标值100 Ω ±10%
Max Length差分对允许的最大走线长度2500 mil
Min Length最小走线长度,防止过短导致反射800 mil
Intra-Pair SkewP/N 两根线之间的长度差±5 mil
Inter-Pair Skew不同差分对之间的长度差±50 mil
Phase Tolerance相位容差,通常与 Intra-Pair Skew 联动±5 mil

其中 Intra-Pair Skew 是最关键的相位约束。它约束的是同一差分对内部 P 与 N 的长度差,而不是绝对长度。Allegro 在走线时会实时计算这个差值,并在 Differential Pair 模式下用颜色提示:绿色表示在容差内,黄色表示接近上限,红色表示超差。

五、把规则分配给差分对

回到 Physical → Differential Pair → All Layers,选中 4 个差分对,在 Referenced Physical CSet 列选择 DIFF_100OHM;再切换到 Electrical → Differential Pair → Routing → Differential Pair,在 Referenced Electrical CSet 列选择 LVDS_ELEC。分配完成后,列表中原本的 Unassigned 会变成规则集名称,同时 Status 列会显示当前是否满足约束。

规则集修改后必须点击 Apply 或 OK,否则只停留在编辑状态。若发现走线没有按新规则更新,先检查是否已分配,再检查是否被更局部的规则覆盖。

六、走线验证与结果判读

进入 PCB Editor,选择 Route → Differential Pair,在 Options 面板中确认当前使用的规则集为 DIFF_100OHM。开始走线后,观察以下几个反馈:

  1. 线宽与间距:实际走线应显示为 5 mil 线宽、6 mil 间距。若显示为默认值,说明规则未生效。
  2. 相位容差:在 Display → Show Measure 中测量 P/N 长度差,应不超过 5 mil。若超差,可用 Delay Tune 在 N 线上做蛇形补偿。
  3. 最大长度:在 Constraint Manager 的 Electrical → Differential Pair → Routing → Differential Pair 中查看 Actual 列,应不超过 2500 mil。
  4. 阻抗:通过 Cross Section 查看叠层参数,确认 5/6 mil 在目标叠层下对应约 100 Ω。若偏差较大,需回到叠层或线宽间距重新计算。

完成上述配置后,一个可复用的差分对规则模板就建立起来了。后续新增差分对时,只需在命名上保持 _P/_N 后缀一致,重新识别后直接引用同一套 CSet,即可保证全板差分约束的一致性。