3. Constraint Manager基础操作
在 Allegro 中,Constraint Manager(约束管理器)是规则驱动设计的核心入口。它把原本分散在物理间距、线宽、过孔、差分、时序等处的约束集中到一个可检索、可复用、可追溯的数据库中。对双面板而言,规则数量不多,但“规则集—分配—覆盖—继承”这条链路必须走通,否则后续布线、DRC 检查与制造输出都会失去统一依据。
一、打开 Constraint Manager 与认识规则对象
在 PCB Editor 中,可通过菜单 Setup → Constraints → Constraint Manager 打开,也可在工具栏点击对应图标。打开后左侧是对象浏览器,通常按 Physical(物理规则)、Spacing(间距规则)、Electrical(电气规则)等类别展开;右侧是工作表,行是网络、网络类、差分对、总线等对象,列是具体约束参数。
需要先分清三个层次:规则集(Rule Set)是参数的命名集合,例如 RS_DEFAULT_8mil;规则分配(Assignment)是把规则集挂到某个对象上,例如把 RS_PWR_20mil 分配给 VCC_3V3 网络;覆盖与继承(Override / Inheritance)是当对象同时受到多层规则作用时,决定谁生效的机制。理解这三层,才能避免“改了规则但 DRC 不认”的常见问题。
二、创建规则集:从默认模板到专用集合
创建规则集有两种常用方式。第一种是复制现有规则集:在 Physical 工作表中选中 DEFAULT 行,右键 Create → Rule Set,输入名称如 RS_PWR_20mil,然后在 Line Width 列把 Min 设为 12 mil、Max 设为 40 mil、Default 设为 20 mil。第二种是直接新建空规则集,再逐项填写。对双面板,建议至少建立三个规则集:默认信号 RS_DEFAULT_8mil、电源 RS_PWR_20mil、差分 RS_DIFF_6_6mil。
创建时要注意:规则集名称应能反映用途和关键参数,避免使用 Rule1、NewSet 这类无意义命名;同一规则集可被多个网络复用,修改规则集会同步影响所有引用它的对象,这正是“一处修改、多处生效”的价值,也是误改的风险点。
三、规则分配:把规则集挂到对象上
分配操作在 Spacing 或 Physical 工作表中完成。以电源网络为例:在 Net 列找到 VCC_3V3,在 Referenced Physical CSet 单元格下拉选择 RS_PWR_20mil。此时该网络即继承此规则集的所有物理参数。若某网络需要单独调整,可直接在单元格中修改数值,Allegro 会将其标记为对象级覆盖,而不是修改规则集本身。
对差分对,需先在 Electrical → Differential Pair 中创建差分对对象,再分配 RS_DIFF_6_6mil,并设置 Gap 与 Line Width。对双面板,常见做法是:GND 与 VCC 分配电源规则集,普通信号分配默认规则集,USB 差分对分配差分规则集。分配完成后,可在工作表中用颜色区分“已分配规则集”和“对象级覆盖”,便于快速检查。
四、覆盖与继承:谁说了算
覆盖与继承是 Constraint Manager 最容易混淆的部分。规则查找顺序是:先看对象级是否直接定义了参数,若有则使用该值;否则向上查找所属类或网络类的规则集;若仍无,则使用 DEFAULT 规则集。也就是说,对象级覆盖优先级最高,类级次之,默认规则集最低。
举例说明:默认规则集线宽为 8 mil,电源类规则集为 20 mil,而 VCC_3V3 网络被单独改为 25 mil。最终该网络线宽为 25 mil,因为对象级覆盖了类级;但它的间距若未单独设置,仍继承电源类规则集的 12 mil。这种“部分覆盖、部分继承”是正常现象,检查时应逐列确认,而不是只看一行。
五、双面板规则初始化任务示例
假设一块简单双面板,包含 GND、VCC_3V3、USB_D+/D- 和若干普通信号。初始化可按以下顺序执行:
- 打开 Constraint Manager,确认
Physical与Spacing工作表可见。 - 创建
RS_DEFAULT_8mil:线宽 Min 6 / Default 8 / Max 20 mil,间距 Default 8 mil。 - 创建
RS_PWR_20mil:线宽 Min 12 / Default 20 / Max 40 mil,间距 Default 12 mil。 - 创建
RS_DIFF_6_6mil:线宽 6 mil,差分 Gap 6 mil,间距 8 mil。 - 分配:GND、VCC_3V3 →
RS_PWR_20mil;USB_D+/D- →RS_DIFF_6_6mil;其余信号 →RS_DEFAULT_8mil。 - 检查:在
Spacing工作表中确认没有空白单元格;对未分配网络手动指定默认规则集。 - 验证:运行 DRC,观察是否有因规则缺失导致的报错;若有,回到对应对象补充分配。
完成上述步骤后,可导出规则报告或截图存档,作为后续布线与制造检查的基线。双面板规则初始化并不复杂,但“规则集命名清晰、分配无遗漏、覆盖有记录”这三点决定了后续修改是否可控。