使用约束编辑器管理设计规则
Constraints Editor 是一种基于文档的用户界面,为查看、创建和管理 PCB 布局所用设计约束规则提供了另一种方法。该编辑器按优先级从低到高划分为六个可选规则部分——Nets、Diff Pairs、xSignals、Polygons、Components, 和 Advanced。在这种安排中,前五个部分(Nets 到 Components)表示规则的设计对象视图,而 Advanced 视图部分适用于更复杂的规则(通常使用查询),这些规则无法用较简单的面向设计对象的规则来表达。

Constraints Editor——一种管理设计规则的替代方法。
Constraints Editor 可通过点击 PCB Rules and Constraints Editor 对话框中的 Switch to Document View 按钮来访问。

从 PCB Rules and Constraints Editor 对话框切换到 Constraints Editor 视图。
使用该编辑器的一些优点包括:
-
采用基于文档的展示界面而不是对话框,可使 PCB 编辑器及其相关功能保持活动并可访问。
-
将基于查询的规则作用域转变为基于应用对象类型匹配,从而简化约束规则创建。
-
规则优先级自动确定,依据设计对象的自然层级。
-
提供交互式规则校验检查,用于检测常见的语法、分配和作用域错误。
约束规则类型
在 Constraints Editor 中,现有规则中那些在匹配作用域中包含更复杂查询表达式的规则被视为 Advanced Rules(或自定义规则),而较简单的规则会被重新表示为对象类型的 Basic Rules,即基于被检查设计对象类型的规则。
大多数采用 Advanced(基于查询)格式的规则,都可以通过将规则拖放到 Basic Rules 列表中,或从 Advanced 规则的右键菜单中选择

基于查询的 Advanced 规则可转换为更简单的 Basic 规则。
规则优先级
通常,规则的优先级由系统自动处理。这一点可从界面中规则视图按钮的排列看出:它们按规则优先级从左到右排列,其中 Nets 的优先级最低。
- Advanced(或自定义创建的)规则优先于 Basic 对象规则序列,并且可在 Advanced 视图中通过上下拖动条目手动重新排序。
- 相反,Basic 规则由系统根据文档界面中对象部分(Nets 到 Components)所指示的设计对象类型自动设定优先级。
- 在每个(Basic)对象规则部分中,优先级从 All(最低)到 Object Class 再到 Object(最高)排序;由此可推断,作用域为 All 且已转换为 Basic 规则的规则将具有最低优先级。
- 若要为 Basic 规则设置显式优先级,请右键单击该规则,选择 Move Basic Rule to Advanced 选项(或使用主菜单中的 Tools » Convert » Migrate Basic Rules to Advanced 命令)。启动该命令后,将出现 Migration of Basic Rules to Advanced 对话框,在要求你确认迁移之前,会提供可迁移的 basic 规则数量信息。然后在 Advanced 视图中手动设置其优先级位置。这适用于除 All 作用域之外的规则;例如,在 Nets 视图中,指定了 Net Class 或 Net 作用域的规则可以转换(移动)为 Advanced 规则。
新建自定义约束规则
在编辑器默认的 Advanced 模式下(通过
按钮指示并选择),创建新规则的方式与在 PCB Rules and Constraints Editor 对话框中构建规则类似。从右键上下文菜单中选择 Add Custom Rule(或使用
按钮,或主菜单中的 Edit » Add Constraint 命令),如有需要可添加基于查询的匹配作用域(
),然后在列表网格或下方图形表示中输入约束参数。

创建你自己的自定义约束规则
为简化重复创建 advanced/custom 类型规则的过程,Constraints Editor 允许你在 Scopes Library 对话框中存储基于查询的对象匹配作用域(可通过点击 Object Match 列中的
后选择 Export to Library,或点击 Properties panel 的 Advanced constraints options 模式下 Scopes Library 区域中的 Edit Library 按钮来访问)。该库显示在 Properties 面板中,你可以在其中导入、管理和导出自定义作用域,以便在其他自定义约束规则中重复使用。规则的 Object Match 列条目中的图标表示该规则使用了基于库的作用域。

使用作用域库可简化自定义规则的创建。
Options and Controls of the Scopes Library Dialog
- Scope - 列出所有已定义的作用域。
- Expression - 显示与关联作用域对应的表达式。
-
- 打开 Query Helper dialog,帮助编写搜索表达式。
-
- 打开 Query Builder dialog,帮助创建查询。
- Update - 用于更新 Constraints Editor 中的规则。仅当已进行更改时,此选项才可用和可访问。
- Import - 用于将所选作用域导入到 Constraints Editor。仅当在对话框中选择了一个 Constraints Editor 中尚不存在的作用域时,此选项才可用和可访问。
设计对象约束模式
若要采用更简单的面向设计对象的方法来创建约束规则,请选择规则网格顶部合适的对象模式按钮,以从默认的 Advanced 模式切换出去。从概念上讲,这些模式提供了更集成的规则界面,重点在于约束(限制)设计对象的应用方式,而不是创建可被突破的设计规则。设计对象按钮的位置顺序与对象复杂度(以及规则优先级)的提升相关,从基础的 Nets(及其类)到统一的 Components,直至 Advanced 模式。
在 Advanced 模式(
)下,规则按类型分组,例如下图所示的基本 Via 和 Width 约束规则。可以通过再添加一条规则和/或包含查询语言元素来创建更具体的规则。

在 Constraints Editor 的 Advanced 模式中,规则按类型分组。
相反,面向对象的视图(Nets 到 Components)按设计对象(例如 Nets)或类(例如 Net Class)来组织规则,因此可直接概览规则如何应用于设计。若要查看适用于某种对象类型的规则概览,请在左侧列中选择某个对象或类以查看所有相关规则,或者选择 All 以查看与该对象类型相关的所有规则。下面的示例展示了与 Nets(
)相关联的规则概览。

在 Constraints Editor 的面向对象视图中,规则按设计对象分组。
当采用面向设计对象的方法时,例如如下所示选择了 Nets 对象类型时,基本的 Via 和 Width 规则会整合为一个复合条目。该网格布局还支持按(Net)对象和类添加更多约束。

面向对象的视图会显示所选对象类型的约束。
在此示例中,若要添加更多、更具体的约束,只需选择 Net 或 Net Class,并在与所需约束规则类型对应的网格单元中输入合适的值即可。如下面所示,已允许 Power 网络(由其类定义)使用更大的 Via 尺寸,并为 5V 电源轨网络分配了更大的最大走线宽度。实际上,在一个简单的网格视图中就包含了四条规则,即:5V 网络的宽度约束、所有其他网络的宽度约束、Power 网络的 Via 尺寸约束,以及所有其他网络类的 Via 尺寸约束。

为不同对象及其分组(例如网络和网络类)添加更具体的约束。
使用
按钮可添加当前所选约束规则的变体,例如下方所示的示例中,额外的 5V 网络规则为 Bottom 层设置了首选宽度。

可以添加所选约束的变体。
请注意,网格条目中可用的规则类型由可用列决定,而这些列又由 Properties 面板 Rule Visibility 列表中启用的项来指定。例如,在 Rule Visibility 列表中启用 Clearance 条目后,会将 Clearance 列添加到 Nets 对象类型中,如下所示。随后,只需输入网络或类作用域以及合适的距离参数,即可添加适用的间距规则。

选择要在面向对象视图中显示的规则。
规则校验
可在 Properties 面板的 Rules/Constraints Checks 区域中点击
按钮,检查所有活动规则的有效性。此操作会检测规则中可能存在的错误,例如重复规则、作用域相同但值不同的规则、类成员(如网络)重叠的规则,以及作用域无法解析的规则。每种违规类型条目都可以展开以显示其违规规则,选择后将打开对应的规则条目。

检查当前在 Constraints Editor 中定义的规则是否有效。
要运行规则校验,也可以使用主菜单中的 Tools » Run Rules Validation Check 命令
规则违规
已启用的设计约束规则会通过多种机制应用到当前板级设计中,例如实时 Online Design Rule Checking、批处理 Design Rule Checker,或从 PCB Rules And Violations panel 中选择性运行。当这些约束规则被违反时——即超过了指定并限定作用域的限制——会通过电路板图形、面板条目、报告以及 Constraints Editor 中的警报图标来指示。此外,作为额外优势,由于 Constraints Editor 采用设计文档(而非对话框)格式,在其打开时也可以对违规进行检查、分析和修正。

Constraints Editor 提供违反规则的反馈。
Properties 面板
当 Constraints Editor 当前处于活动状态时,Properties 面板会显示 Document Options 模式(或在编辑器的 Advanced 模式下显示 Advanced constraints options 模式)。
以下可折叠部分包含有关可用选项和控件的信息:
Actions
- Switch to Dialog View – 启动该命令后,视图模式将从 Document View 更改为 Dialog View,并打开 PCB Rules and Constraints Editor 对话框。
General
- Show Default Values (仅在 Document Options 模式下)——启用后,编辑器网格区域中的所有条目都会以浅色文本显示适用的默认值。
- Units – 用于按需选择测量单位。也可以使用 Tools » Measurement Units 菜单选择测量单位。
Cross Probe View Settings
- Select – 启用后,过滤后的对象将在设计空间中被选中。
- Zoom – 启用后(默认),过滤后的对象将在设计空间中被缩放并居中显示(如果可能)。使用 Zoom Level 按钮可调整用于放大过滤对象的缩放系数。
-
Normal/Mask/Dim 下拉菜单——提供在设计空间中直观区分已过滤对象和未过滤对象的选项。
- Normal – 已过滤对象在设计空间中可见,未过滤对象的外观保持不变。
- Mask – 已过滤对象在设计空间中高亮显示,其他所有对象变为单色。
- Dim – 已过滤对象在设计空间中高亮显示,其他所有对象保留原有颜色但会变暗。
Rule Visibility
Properties 面板的此区域仅在其 Document Options 模式下可用。
- Grid – 用于配置编辑器网格区域中可用的规则类型。
Scopes Library
Properties 面板的此区域仅在其 Advanced constraints options 模式下可用。
- Scope – 列出所有已定义的作用域。
- Query – 显示与关联作用域对应的查询。
- Import – 用于将所选作用域导入到 Constraints Editor。仅当在对话框中选择了一个 Constraints Editor 中尚不存在的作用域时,此选项才可用和可访问。
- Export – 用于将所选作用域导出到 Constraints Editor。
- Edit Library – 用于打开 Scopes Library 对话框,你可以在其中存储基于查询的对象匹配作用域。自定义作用域可被导入、管理和导出,以便在其他自定义约束规则中重复使用。
Rules/Constraints Checks
-
Check – 用于开始设计规则检查(DRC)。约束规则的违规(即超过指定和限定作用域的限制)将在 DRC 完成后,自动显示在对应违规规则最后一列中的
标记处。违规总数显示在编辑器右上角、
旁边。
你也可以使用主菜单中的 Tools » Run DRC Rules Check 来运行 DRC。
检查规则应用情况
Constraints Editor 包含一项交叉探查功能,可通过在对应 PCB 布局中高亮显示网络及其连接,来显示约束规则的对象作用域。要在编辑器网格列表中对任意规则执行交叉探查,请右键单击其条目,然后从上下文菜单中选择 Cross Probe 选项,或从高级规则的
菜单中选择 Cross Probe。
在 Properties 面板中设置 Cross Probe View Settings(Zoom 和 Select 选项),并使用 PCB 编辑器的 Clear Filter 选项重置交叉探查高亮。

从 Constraints Editor 对规则作用域下的对象进行交叉探查。
