Defining Design Requirements Using the Constraint Manager

Altium Training

Altium Essentials: Schematic Updating

This content is part of the official Altium Professional Training Program. For full courses, materials and certification, visit Altium Training.

Do I have the Constraint Manager?

  • 仅当在创建该项目时,于 Create Project dialog 中启用了 Constraint Management 选项,Constraint Manager 才会在 PCB 设计项目中可用。请注意:

    • 如果为 PCB 项目启用了 Constraint Manager,则 PCB Rule and Constraints Editor dialog (Design » Rules) 在 PCB 编辑器中not可用。

    • 如果为 PCB 项目not未启用 Constraint Manager,则只能使用之前用于定义设计约束的方法(使用 design directives 以及 PCB Rule and Constraints Editor dialog)来完成。

    当在 Advanced Settings dialog 中启用 System.ConstraintManager 选项时,Create Project dialog 中的 Constraint Management 选项默认启用。

  • 要快速检查当前 PCB 项目使用的是哪种设计约束定义方式,请在打开项目的原理图/PCB 文档时,查看原理图或 PCB 编辑器主菜单中是否提供 Design » Constraint Manager 命令。如果有该命令,则此项目使用 Constraint Manager。否则,此项目使用 PCB Rule and Constraints Editor dialog(在 PCB 编辑器中为 Design » Rules)。

  • 如果某个 PCB 项目使用的是旧的规则管理系统,你可以迁移到 Constraint Manager——了解更多

  • 如果为 PCB 项目启用了 Constraint Manager,那么当由无权访问该功能的用户打开时,Constraint Manager 将以 View Only 模式显示。在这种情况下,用户可以查看但不能修改已定义的约束。Constraint Manager 顶部的消息会在 Constraint Manager 处于 View Only 模式时提示你()。

Constraint Manager 是一种基于文档、类似电子表格的用户界面,可用于查看、创建和管理 PCB 设计中使用的设计约束。

 
 
 
 
 

使用 Constraint Manager 的一些优势(尤其适用于具有大量网络、类等的复杂设计)包括:

  • 在项目级别可用,使得从原理图捕获与 PCB 设计两个领域访问设计约束管理的方式更一致。

  • 从基于查询的规则作用域转向应用对象类型匹配,从而简化约束规则的创建。

  • 使用约束集(constraint sets)来加快约束定义过程。

  • 规则优先级会基于设计对象的自然层级自动确定。

  • 使用基于文档的呈现界面而非对话框,这意味着原理图与 PCB 编辑器及其相关功能仍保持活动并可访问。

访问 Constraint Manager

可通过在原理图或 PCB 编辑器的主菜单中选择 Design » Constraint Manager 命令来访问 Constraint Manager。

Constraint Manager 命令不在 Design 菜单中?请检查你是否可用 Constraint Manager——了解更多

从原理图编辑器访问 Constraint Manager
从原理图编辑器访问 Constraint Manager

从 PCB 编辑器访问 Constraint Manager
从 PCB 编辑器访问 Constraint Manager

Constraint Manager 的文档选项卡与其访问方式相关,如下图所示。

约束类型

使用 Constraint Manager 左上角的按钮,你可以在不同视图之间切换,以定义不同类型的约束。

 
 
 
 
 

Clearances – 一个矩阵,用于定义网络类和/或差分对类之间的电气间距(Electrical Clearance)。

Physical – 网络、差分对、xNets 及其类的列表,你可以在其中为设计定义物理约束:导体线宽、差分对间距等。当从 PCB 访问 Constraint Manager 时,PCB 文档中当前定义的 rooms 也会在此列出,你可以为这些 room 定义物理约束。

Electrical – 网络、xNets 以及网络类与 xNet 类的列表,你可以在其中为设计定义电气约束:拓扑、阻抗等。差分对与 xSignals 也会在其专用选项卡中列出。

 

当从 PCB 编辑器访问 Constraint Manager 时,还会额外提供 All Rules 视图。这是一个面向规则的设计约束视图,列出 PCB 设计中的所有规则,你可以基于查询创建自定义规则——了解更多

使用 Constraint Manager 的注意事项:

  • 使用 Properties 面板中的 Units 选项(或主菜单中 Tools » Measurement Units 子菜单里的对应选项;快捷键:Ctrl+Q)在 Constraint Manager 网格区域显示数值时所用的计量单位(mmmils)之间切换。

  • 使用 Properties 面板中的 Show Default Values 选项(或 View 主菜单中的对应选项,或网格区域右键菜单的 View Options 子菜单中的对应选项)来切换 Constraint Manager 中默认值的可见性(例如从网络类或差分对继承的值)。显示时,这些默认值会在 Constraint Manager 网格区域以灰色显示;自定义值会在 Constraint Manager 网格区域以白色显示。

  • PhysicalElectrical 视图中,使用 Properties 面板中的 Show Only Object Custom Values 选项(或 View 主菜单中的对应选项,或网格区域右键菜单的 View Options 子菜单中的对应选项)来切换具有默认值的对象条目的可见性(启用该选项时,等效于过滤掉默认值条目)。

  • 支持在单元格之间复制/粘贴数值——可使用上下文菜单中 Copy/Paste Values 子菜单的命令,或使用 Ctrl+CCtrl+V 快捷键。

  • 使用 Constraint Manager 右上角的 Search 字段,通过输入搜索字符串来过滤对象列表。点击 Search 栏右侧的 图标可清除当前搜索字符串。

  • 当选中某个约束/规则的单元格时,使用 Constraint Manager 底部的 Comment 字段为该约束/规则添加注释,例如说明其用途的有意义描述()。当 Constraint Manager 下半部分允许为不同规则定义约束时,你可以通过 Rule 下拉列表()切换当前规则,从而为每条规则分别定义注释。

  • 在设计中反映更改之前,必须先在 Constraint Manager 中执行保存操作。请使用 Constraint Manager 主菜单中的 File » Save(当从原理图访问 Constraint Manager 时)或 File » Save to PCB(当从 PCB 访问 Constraint Manager 时)命令,或使用 Ctrl+S 快捷方式来完成此操作。

  • 当从原理图端首次保存 Constraint Manager 时,会将原理图约束文档(Constraints.xml)添加到项目中,并可通过 Projects 面板访问(位于 Settings/Constraints 子文件夹 – )。此外,从已连接的 Workspace 更新项目后,文档中的约束数据会重新加载/刷新。

  • 如果原理图设计或 PCB 叠层(受影响的层和/或阻抗配置文件)有任何更改,请单击 Constraint Manager 顶部的 按钮(从相应编辑器访问)以在 Constraint Manager 中反映这些更改。单击此按钮还允许你将原理图中的指令导入到 Constraint Manager – 了解更多。如果 Constraint Manager 中存在尚未保存的更改,将出现对话框警告这些更改将丢失,并要求确认。

    如果在 Layer Stack Manager 中对阻抗配置文件进行了更改,那么在 Constraint Manager 中单击 只会更新相应规则中的 Preferred Width 值,而不会更新其 Min WidthMax Width(如适用)值。在 Physical 视图的顶部网格中,宽度值变为红色会高亮显示不正确的约束定义。你应根据需要查看并更新/调整这些值。在这些更改反映到设计中并可用于布线之前,也必须在 Constraint Manager 中执行保存操作。

  • 当从原理图或 PCB 访问 Constraint Manager 时,在 Clearances Physical 视图的 Properties 面板的 Clearances Settings 区域中提供以下全局选项:

    • Ignore Pad to Pad clearances within a footprint – 使用此选项可将该设置应用到所有已定义的间距(clearance)规则。此选项允许你指定是否忽略同一器件封装内焊盘之间的间距。

    • Apply zero Keepout clearance – 启用此选项后,会应用一条默认间距规则:在 keepout 与设计中的所有其他图元之间使用“0”的间隙。请注意,该规则在 Constraint Manager 的任何视图中都不可见,因此无法修改。如果 禁用,则将遵循常规的间距矩阵数值。

  • 你可以通过使用设计空间左上角的 ,或使用主菜单中的 Edit » Undo/Redo 来快速撤销或重做在 Constraint Manager 中所做的更改,并且在包括规则、作用域和约束集在内的大多数区域都可用。与软件的其他区域一样,只有在已执行某个操作(用于撤销)或已执行撤销操作(用于重做)时,这些图标/命令才可用。

使用 Clearance Matrix

默认情况下,Constraint Manager 的 Clearances 视图中的间距矩阵包含一个 All Net ClassesAll Net Classes 条目,你可以用它来定义设计中任意网络之间的默认间距值。使用矩阵左上角的 Add 控件(或在间距矩阵中右键单击任意单元格并从上下文菜单中使用 Add 命令)以显示一个弹出列表,其中列出了当前已定义的网络类和差分对类。选择一个或多个所需的类(可使用 Shift+ClickCtrl+Click 方法选择多个类条目),然后单击 Add 按钮。矩阵中将为每个所选类添加一行和一列。

单击两类的行与列交叉处的单元格以选中它,并在 Constraint Manager 下部显示详细的间距设置,你可以在其中为不同对象以及不同层定义特定的间距值。

 
 
 
 
 

使用下部的 Clearance 字段输入所需值,该值将应用于此类对的所有对象配对以及所有层。或者,在上部矩阵中双击某个单元格,直接输入所需值。

在表格中为特定对象对输入所需的间距值。请注意,间距矩阵中的单元格会显示表格中定义的最小值与最大值范围。

 
 
 
 
 

  • 在详细间距设置中支持对所选行/列进行多重编辑。单击某行或某列的表头以选中它,输入所需值,然后按 Enter 或单击以将该值应用到该行/列的所有单元格。

  • 请注意,如果你更改了“走线到图元(track-to-primitive)”的值,相同的间距也会应用到“文本到图元(text-to-primitive)”。

关于使用 Clearances 视图的注意事项:

 
 
 
 
 
  • 在间距矩阵的单元格中或在 Clearance 字段中输入一个值后,当选中间距矩阵中的某个单元格时,该值会自动应用到 Constraint Manager 下半部分网格区域中的所有字段。只有在需要基于对象类型来定义间距时,才需要在网格区域中进行编辑。

  • 在 Constraint Manager 下半部分的详细间距设置中,你还可以为所选类启用 Creepage 约束,并定义爬电距离值()。该约束用于测试目标信号在板面上跨越非金属化孔、开槽/挖空区域以及绕过板边缘的爬电距离。 

  • 要将特定对象对(例如 TrackTrack 对)的间距值重置为默认值(即重置为为 All Net ClassesAll Net Classes 条目定义的值),请在底部表格中选择其单元格,然后按 Delete 键;或右键单击该单元格,并从上下文菜单中选择 Reset to Default 命令。

  • 要将间距矩阵中某个特定条目的所有对象对(例如某个网络类与另一个网络类的条目)的间距值重置为默认值,请右键单击间距矩阵中对应的单元格,并从上下文菜单中选择 Remove Rule 命令。

  • 要从间距矩阵中移除某个类,请在间距矩阵中该类所在行的任意单元格上右键单击,并从上下文菜单中选择 Remove Scope 命令。

当在 Constraint Manager 中设置了类到类的间距后,你可以使用 Applicable Binary Rules 对话框在 PCB 文档设计空间中查看对象相关的网络类。可在 PCB 编辑器中通过在设计空间内右键单击、从上下文菜单选择 Applicable Binary Rules,然后在设计中单击两个对象来打开该对话框。对话框中的 Clearance Constraint 条目将显示该对象相关的网络类,这些网络类在 Constraint Manager 中已定义了间距规则()。

按层配置间距

使用表格下方的选项卡,你还可以按层定义间距值。使用 Add 控件为特定层添加一个选项卡。

 
 
 
 
 

  • 请注意,当从原理图编辑器访问 Constraint Manager 时,只能将 Top 和 Bottom 层添加为特定层。 当从 PCB 编辑器访问 Constraint Manager 时,可以添加 PCB 设计中当前存在的任何信号层。

  • 要快速为内层和外层定义数值,你也可以在顶部间距矩阵的某个单元格中输入两个用斜杠分隔的值(例如 5/6)。第一个值将应用于内层,第二个值将应用于外层。

  • 应用于更具体层/层组的约束具有更高优先级;也就是说,应用于特定层上一对对象(例如 Top LayerBottom Layer)的值,其优先级高于应用于相同对象对的对应组(Inner LayersOuter Layers)的值;而应用于 Inner LayersOuter Layers 组中一对对象的值,其优先级又高于应用于相同对象对的 All Layers 组的值。

筛选类

为了在 Clearances 视图中处理大量类时更高效,你可以使用筛选/分组功能。该功能允许构建类的筛选器(或分组),以便在间距矩阵的聚焦子集之间切换并进行工作。

使用 Clearances 视图右上角的 按钮打开弹出窗口,你可以在其中创建、编辑、移除以及启用/禁用筛选器。

要创建新筛选器,单击  按钮,然后在弹出的窗口中单击 按钮。

为新筛选器定义一个唯一名称,并启用所需的类组。使用 Search 字段根据输入的搜索字符串筛选列表,并使用 Reset 控件快速禁用列表中所有已启用的条目。选好所需类后,单击

创建筛选器后,可使用弹出窗口中的可用控件按需启用、禁用、编辑或移除它。使用 Clear All 控件可快速禁用所有已启用的筛选器。请注意,当至少启用一个筛选器时,右上角的按钮将显示为

 

使用物理与电气约束

在 Constraint Manager 的 PhysicalElectrical 视图中,单击网格区域中的某个单元格,即可在 Constraint Manager 下半部分显示相应规则的设置,你可以在其中定义其约束值。

Javascript ID: CM_PhysicalElectrical_AD24_3

关于使用 PhysicalElectrical 视图的说明:

  • Constraint Manager 会自动定义这些视图中规则的优先级:优先级从 All (最低)到对象类到对象(最高)依次递增。

  • 要移除某条规则定义的自定义约束值(即将该规则的值重置为默认值),请右键单击网格中对应的单元格,并从上下文菜单中选择 Remove rule 命令。

  • 要按对象的所有规则移除自定义约束值,请在网格中该对象所在行的任意单元格上右键单击,然后从快捷菜单中选择 Remove rules from scope 命令。

  • 默认情况下,除预定义的节点(例如 All Nets)外,所有节点在 Physical Electrical  视图中都是折叠的。你可以使用右键菜单命令 Expand AllCollapse All 来控制网格节点。

  • 当在 Physical 视图的顶部网格中为单个 net 或 xNet(Min WidthPreferred Width)、差分对(Min WidthPreferred WidthPreferred Diff Pair Gap)或 net/xNet/差分对类输入一个值时,该值会传播到下方约束区域中对应的线宽(Min Width/Preferred Width/Max Width)或间距(Min Gap/Preferred Gap/Max Gap)字段。请注意,只有当该对象未定义相应的特定规则时,输入的值才会传播到其他字段。

  • Physical 视图中为最小、最大和首选布线线宽以及差分对间距定义数值时,视图底部的 Values by Layer 表会用红色文本高亮显示无效条目。例如,当你指定的最小约束值大于最大约束值时就会发生这种情况。错误的约束定义还会通过顶部网格中的线宽/间距值变为红色来进一步高亮提示。

按层配置约束值

当从原理图访问 Constraint Manager 时,你可以为所选层叠中的各层配置线宽(Width)和差分对布线(Differential Pairs Routing)约束。

使用 Constraint Manager 顶部的下拉列表,为设计工程的特定 PCB 文档选择一个条目。如果所选 PCB 包含多个层叠,那么在选择了相应规则后,你可以通过 Constraint Manager 下部的选项卡选择需要配置约束的目标层叠。此外,你还可以使用选定的阻抗配置文件(Impedance Profile)(如果它作为所选 PCB 的层叠的一部分已定义)。

定义差分对

差分对可在 Constraint Manager 的 Physical 视图中创建,或在 Electrical 视图的 Diff Pairs 选项卡中创建。要让 Constraint Manager 从 nets 创建差分对,被配对的 nets 必须具有一致的命名规则(即具有共同的根名称,并带有一致的正/负后缀,例如 TX0_PTX0_N)。

Physical 视图的网格区域内任意位置,或在 Electrical 视图的 Diff Pairs 选项卡中任意位置右键单击,然后从快捷菜单中选择 Differential Pairs » Create Differential Pairs From Nets 命令,以打开 Create Differential Pairs From Nets 对话框来定义差分对创建选项。对话框顶部的过滤器可让你根据这些 nets 所属的 net 类,以及用于区分预期配对中正负 nets 的具体差异因子,快速定位目标 nets,例如 _P_N。你还可以定义要添加到所创建差分对对象的前缀,并确定它们将被加入到哪个差分对类中。

对于每个差分对对象,对话框会列出其组成的正、负 nets。默认情况下,所有候选差分对对象都被选中以创建;你可以清除相应的 Create 复选框来排除某个对象。

当所有选项按需设置完成后,单击 按钮——差分对对象将被创建,并显示在 Constraint Manager 的 Physical 视图中,其组成 nets 会列在对应条目下方。

差分对也可以从 xNets 创建。在 Create Differential Pairs From Nets 对话框顶部使用下拉列表选择 All xNets 或某个特定的 xNet 类。当对话框中的其他选项按需配置完成后,单击 按钮即可相应创建差分对。

请注意,xNet 差分对这一概念仅存在于 Constraint Manager 内部。保存到 PCB 时,它会被“解包”为常规差分对(针对 xNets 中包含的所有 net 对,并在它们之间复制所有规则)。再次访问 Constraint Manager 时,如果可能,这些组成的(常规)差分对会被重新组合为 xNet 差分对。另请注意,在从原理图指令导入以及文档同步操作期间,xNet 差分对也会被解包并重新组合。对于后者,会使用 Constraint Manager Data ECO 对象来承载 xNet 差分对定义,从而促进将差分对重新组合为 xNet 差分对。

要移除一个差分对,请右键单击其条目并从快捷菜单中选择 Differential Pairs » Remove Differential Pair 命令。你也可以使用 Ctrl+ClickShift+ClickClick, Hold&Drag 的方式选择多个差分对条目,然后右键单击所选内容,并从快捷菜单中选择 Differential Pairs » Remove Differential Pair 命令。

Electrical 视图的 Diff Pairs 选项卡也可用于显式管理差分对。该选项卡会以层级列表显示设计中的差分对。选择某个差分对或差分对类的单元格,即可在 Constraint Manager 下部显示其约束。

定义 xNets

从源器件到目标器件、并经过一个或多个串联器件的路径,可以定义为一个 xNet。

可在 Project Options 对话框的 Options 选项卡的 xNets Creation 区域中,定义可用作源/目标器件(Sources/Destinations)以及串联器件(Discretes)的器件位号前缀列表(以逗号分隔)。

Project Options 对话框的 Options 选项卡中的 xNets Creation 区域
Project Options 对话框的 Options 选项卡中的 xNets Creation 区域

在 Constraint Manager 中可定义为 xNet 的示例路径(根据上方所示的 xNet 创建设置)
在 Constraint Manager 中可定义为 xNet 的示例路径(根据上方所示的 xNet 创建设置)

在 Constraint Manager 的 PhysicalElectrical 视图中(无论是从原理图还是从 PCB 访问),右键单击要包含到新 xNet 中的某个 net,并从快捷菜单中选择 xNets » Create xNets From Selected Nets 命令。将创建一个新的 xNet,并显示在 Constraint Manager 的 PhysicalElectrical 视图中,其组成 nets 会列在对应条目下方。

xNet 的生成也支持引脚数超过两个的串联器件。支持以下串联器件:

  • Dual-inline component with an even number of pins ()——可从连接到器件第一个与最后一个引脚的 nets 生成 xNets,然后从第二个与倒数第二个引脚的 nets 生成,依此类推。(

  • Single-inline component with an even number of pins)——可从连接到器件第一个与第二个引脚的 nets 生成 xNets,然后从第三个与第四个引脚的 nets 生成,依此类推。()注意:器件必须包含一个名为 PinPairsConfiguration 且值为 SIP 的参数;否则,xNets 将按双列直插器件的方式生成。

  • Component with an odd number of pins)——会从连接到器件所有引脚的 nets 生成一个 xNet。(

要移除一个 xNet,请右键单击其条目并从快捷菜单中选择 xNets » Remove xNet 命令。你也可以使用 Ctrl+ClickShift+ClickClick, Hold&Drag 的方式选择多个 xNet 条目,然后右键单击所选内容,并从快捷菜单中选择 xNets » Remove xNet 命令。

定义 xSignals

在 Constraint Manager 中,你还可以定义 xSignals——PCB 上两个节点之间的用户自定义信号路径。在 Constraint Manager 的 Electrical 视图中,为某个 net 或 xNet 选择其 Topology 列中的单元格,在 Constraint Manager 下部的下拉列表中选择 Custom,然后使用提供的控件来定义自定义拓扑并选择相应的 xSignals。

下面给出了一个为 xNet 定义 xSignals 的示例,并在后续进行说明与演示。

需要为其创建 xSignals 的 xNet 示例。
需要为其创建 xSignals 的 xNet 示例。

可使用 Constraint Manager 下部的拓扑图(topology graph)来定义自定义拓扑。在图形区域使用右键菜单添加/移除节点,并将节点类型在 SourceDestination 之间切换,且通过 Click, Hold&Drag 节点来定义拓扑。

建议的 xSignals 列表(按 <SourceNetName> (<SourcePinDesignator> → <DestinationPinDesignator>) 方案命名)会显示在网格区域右侧。该列表分为两组:从源到目标的 xSignals(S-T)以及从一个目标到另一个目标的 xSignals(T-T)。使用组或单个 xSignals 的复选框来选择/取消选择要创建的 xSignals。被选中的 xSignals 将显示在 Electrical 视图的 xSignals 选项卡上。

使用拓扑图创建 xSignals 的示例

或者,也可以使用表格来定义自定义拓扑。使用 Pin 列添加所需的引脚和串联器件,使用 Role 列选择它们的角色(SourceDestinationDiscrete),并使用 Order 列定义所需的顺序。

当在 Advanced Settings dialog 中启用 ConstraintManager.TopologyGraphAvailable 选项时,拓扑图功能可用。当该选项被禁用时,将使用表格用户界面。

使用表格用户界面创建 xSignals 的示例

  • 对于已创建的 xSignal 的名称(可在 Constraint Manager 的 xSignals 选项卡中或在 PCB 文档中看到),使用以下命名方案:

    <SourceNetName>_<SourcePinDesignator>_<DestinationPinDesignator>

  • 为了将已定义的自定义拓扑快速传播到 xNets/nets 并创建多个结构相似的 xSignals,你可以为具有自定义拓扑的某个 xNet/net 创建一个 Constraint Set,然后将该 Constraint Set 应用到其他 xNets/nets。编辑包含自定义拓扑的 Constraint Set 时,对拓扑所做的更改将传播到应用了该 Constraint Set 的其他对象。

  • 可以从 Electrical 视图的 xSignals 选项卡中移除某个 xSignal。为此,右键单击该 xSignal,并从上下文菜单中选择 xSignals » Remove xSignal 命令。

  • 当从 Custom 拓扑切换为所选 net/xNet 的某个预定义拓扑时,关联的 xSignals 会被自动移除。

  • 当为 2 引脚网络或简单 xNet(即:一个源、一个目的端,并且每对网络之间只有一个分立器件)选择 Custom 拓扑时,其引脚会自动作为自定义拓扑的节点添加,并且会自动选中建议的 xSignal。也支持 xNet 穿越具有两个以上引脚的分立元件的情况(例如:单个器件中的电阻阵列)。

对于已创建的 xSignal 类(详情请参阅下方 Defining Classes 小节),可以定义 Tolerance 约束,并可将该类中的某个 xSignal 选为 Matching Length。当从 PCB 端访问 Constraint Manager 时,还会提供 Actual ValueMargin 列。

在 PCB 文档中,可以在 PCB panel 的 xSignals 模式下浏览已定义的 xSignals。同时也会创建相应的 From-Tos,并可在 PCB panel 的 From-To Editor 模式下浏览。

Javascript ID: CM_xSignals_PCB_AD23_11

在 PCB 文档中,可以在 PCB 面板的 xSignals 模式下浏览生成的 xSignals。

同时也会生成 From-Tos,并可在 PCB 面板的 From-To Editor 模式下浏览。

Defining Classes

Constraint Manager 允许你定义 nets、差分对、xNets 和 xSignals 的类。

  • 要将 Constraint Manager 的 PhysicalElectrical 视图中的对象添加到现有类中,请使用 Ctrl+ClickShift+ClickClick, Hold&Drag 方式选择多个对象条目,然后右键单击所选内容,并从上下文菜单的 Classes » Add Selected to Class 子菜单中选择所需的类。

    当类的数量超过 30 个时,将显示 Classes » Add Selected to Class » Existing Class 命令,而不是类列表。使用该命令可打开一个对话框,在其中选择要将所选对象添加到的现有类。

  • 要为 Constraint Manager 的 PhysicalElectrical 视图中列出的对象添加新类,请先选择这些对象,然后右键单击所选内容,并从上下文菜单中选择 Classes » Add Selected to Class » New Class 命令以打开 Add Class 对话框。定义类 Name (必须唯一且不能为空)以及类成员集合。进入对话框前已选中的对象会已在 Member 列表中。如有需要,可使用箭头按钮在 Non-MembersMember 列表之间移动对象条目,以进一步配置类成员集合。

  • 或者,你也可以在网格区域右键单击,并在 ClearancesElectrical 视图中选择 Classes » Add Class 命令,或从(用于添加 net 类)的命令或 Classes » Add Class 子菜单中的命令进入 Add Class 对话框。以这种方式进入对话框时,Member 列表初始将为空。

  • 要将对象从其当前所属的类中移除,请选择这些对象,然后右键单击所选内容,并从上下文菜单中选择 Classes » Remove Selected from Class 命令。

  • 要编辑某个类,请右键单击其条目并从上下文菜单中选择 Classes » Edit Class 命令以进入 Edit Class 对话框,在其中可编辑类的名称和成员。

  • 要移除现有类,请右键单击其条目并从上下文菜单中选择 Classes » Remove Class 命令。你也可以使用 Ctrl+ClickShift+ClickClick, Hold&Drag 方式选择多个类条目,右键单击所选内容,并从上下文菜单中选择 Classes » Remove Class 命令,以移除多个类。

或者,你可以使用 Object Class Explorer 对话框来添加、编辑和移除类。在网格区域右键单击并从上下文菜单中选择 Classes » Class Explorer 命令以打开该对话框。

对话框左侧的文件夹树窗格列出了支持的对象类类型以及每种类型下现有的对象类。

  • 单击根 Object Classes 文件夹,可在对话框的主编辑区域中查看汇总列表,其中列出跨所有对象类类型已定义的所有具体类。
  • 单击某个子对象类类型文件夹,可查看该类型下已定义的所有具体类的汇总列表。
  • 单击某个具体类的条目(或在汇总列表中双击其条目),即可进入用于管理该类对象成员关系的控件。

要从 Object Class Explorer 对话框中新建用户自定义类,请在要创建的类类别内右键单击,并从上下文菜单中选择 Add Class 。要重命名或删除用户自定义类,请右键单击其名称,并分别选择 Rename Class  或 Delete Class

默认系统类(All NetsAll Differential PairsAll xNetsAll xSignals)无法编辑、重命名或删除。在 Object Class Explorer 对话框中,这些类通过其名称被 <> 包围来加以区分。

Constraint Sets

为加快为对象定义约束的过程,Constraint Manager 提供将一组约束保存为 Constraint Set 的能力,然后可将该 Constraint Set 应用到对象。

要将当前为某个对象定义的约束集合保存为 Constraint Set,请右键单击该对象的单元格,并从上下文菜单中选择 Save as Constraint Set 命令。在弹出的 New Constraint Set 中输入所需的 Constraint Set 名称(必须唯一且不能为空),然后单击 Create

新创建的 Constraint Set 将应用到创建该 Constraint Set 的对象。要将 Constraint Set 应用到另一个对象,请右键单击其单元格,并从上下文菜单的 Select Constraint Set 子菜单中选择所需的 Constraint Set。应用了 Constraint Set 的单元格会在左上角以符号标识(例如 );并且在 PhysicalElectrical 视图中,所应用的 Constraint Set 名称会反映在 Constraint Set 列中。

要编辑现有 Constraint Set 的值,请选择一个已应用该 Constraint Set 的对象并单击 按钮。按需更改约束值,然后在弹出的窗口中单击 Save 按钮以保存更改。更改将应用到当前选择了该 Constraint Set 的所有对象。

当前已定义的 Constraint Sets 列在 Properties 面板的 Constraint Sets 区域中。单击某个 Constraint Set 条目可显示其约束值。在 Properties 面板中选中的 Constraint Set 可通过单击 Constraint Sets 区域底部的 按钮移除。已选择了被移除 Constraint Set 的对象,将保留在移除前由该 Constraint Set 应用的约束值。

当从原理图访问 Constraint Manager 并为不同的层叠配置约束时(详见 Configuring Constraint Values per Layer),约束集会记住它们是在哪个层叠中创建的。对于当前选定的层叠,无法分配或修改为其他层叠创建的约束集。在这种情况下,This Constraint Set was created for a different layer stack 消息将显示在 Properties 面板中()。

从原理图导入指令

当在 Advanced Settings dialog 中启用 ConstraintManager.ImportFromDirectives 选项时,此功能可用。

你可以将放置并定义在原理图源文档上的 parameter setdifferential pair 设计指令中的网络类与差分对类、差分对以及约束导入到 Constraint Manager 中。为此,当从原理图侧访问 Constraint Manager 时,单击  按钮。Refresh Constraint Manager 对话框将显示从原理图导入到 Constraint Manager 的摘要;在该对话框中单击  按钮即可完成导入。

Constraint Manager 中的约束与原理图上指令中定义的等效约束之间,会有同步状态指示。

  • 当原理图中的某个对象放置了 parameter set 或 differential pair 指令,并且该指令中的约束值与 Constraint Manager 中为同一对象定义的值不同,则当从原理图访问 Constraint Manager 时,这些值会在 Constraint Manager 的 PhysicalElectrical 视图中对应单元格左侧以橙色条标记(例如 )。

  • 当约束值在 Constraint Manager 与指令之间保持同步时,指示会变为绿色条(例如 )。

从指令导入的网络类、差分对以及差分对类也有同步状态指示。系统会检测变更(新增/移除的元素),并在对应对象名称左侧用橙色条指示需要同步的不一致情况(例如 )。同步状态则用绿色条指示(例如 )。

  • 通过 Constraint Manager 已为网络/网络类/差分对/差分对类定义的任何现有约束将具有更高优先级,并会在处理导入时保留。因此,如果在使用 Import from Directives 命令后,你在 Constraint Manager 中编辑了某个已与指令同步的约束值,那么之后再次使用 Import from Directives 命令时,该值将不会再被同步。

  • 通过将指令数据导入到 Constraint Manager 来同步数据,并在 Constraint Manager 中保存更改后:

    • 导入的指令会在设计空间中以蓝色显示,并使用略有不同的符号()。

    • 导入到 Constraint Manager 的类与规则条目,可通过 Properties 面板顶部 Parameters 区域中的 Constraint Manager 按钮进行过滤隐藏。

    • 对于附着在单根导线上的 parameter set 指令,可在原理图页上该指令附近显示来自 Constraint Manager 的相关数据(网络/差分对类名称与规则设置)。对于包含已定义网络类并附着在 blanket 上的 parameter set 指令,在与 Constraint Manager 同步/导入后,也可以在设计空间中切换显示网络类指令信息。对于附着在 blanket 上的 differential pair 指令,在与 Constraint Manager 同步/导入后,也可以在设计空间中切换显示差分对类及其关联规则信息。当选中该指令时,使用 Properties 面板中对应数据条目左侧的可见性控制()。

    • Properties 面板中,用于新增或移除网络类、差分对类或 components class 的控件,在相应指令下将变为灰色不可用。

    • Properties 面板中,用于新增或编辑/移除现有规则的控件在相应指令下仍可用。此外,你还可以编辑网络类的名称。要将对已导入指令中的规则和/或网络类名称所做的更改应用到 Constraint Manager 中的数据,当从原理图侧访问 Constraint Manager 时,请单击  按钮。

  • 对于添加到 parameter set 指令中、但未在 PhysicalElectrical 视图中呈现的规则,当从 PCB 端访问 Constraint Manager 时,这些规则会自动创建为 All Rules view 中显示的高级规则。高级规则会在完成指令导入以及从原理图到 PCB 的 subsequent ECO from the schematic to the PCB 后创建。

Javascript ID: CM_ImportDirectives_AD25_2

在原理图上放置了 parameter set 与 differential pair 指令。这些指令定义了以下内容:

  • 网络 A00 的 Width 约束。

  • 一个网络类(Control)以及网络 A09 的 Width 约束。

  • 由网络 DQS0R_PDQS0R_N 组成的差分对。

在 Constraint Manager 的 Physical 视图中,与网络 A00 和 A09 的宽度约束相关的单元格带有橙色条,表示这些值与指令不同步。

单击 按钮。将打开 Refresh Constraint Manager 对话框,你可以在其中查看将要导入到 Constraint Manager 的数据。查看后,单击 按钮以导入来自指令的全部数据。

宽度约束、网络类以及差分对现已导入到 Constraint Manager。与 A00 和 A09 的 Width 约束相关的单元格,以及网络类 Control 与差分对 DQS0R 的单元格现在带有绿色条,表示其值/成员与指令保持同步。

指令在原理图设计空间中的外观将发生变化。虽然仍可在指令属性中添加、编辑和移除规则,但用于添加、编辑和移除类的控件现在会变为灰色不可用。

修改从只读文档导入的指令

如果在 Preferences dialog 的 Data Management - Device Sheets 页面启用了(勾选) Make Device Sheets In Projects Read-Only 选项,则从只读文档(例如 device sheets 和 managed sheets)导入的指令无法修改。

当该选项被禁用(取消勾选)时,指令可以修改。在启用该选项的情况下导入指令后,该规则会在 Constraint Manager 中以蓝色高亮显示。

导入与导出约束和约束集

你可以在不同设计之间导入和导出约束与约束集。要访问 此功能,请在 Constraint Manager 的 ClearancesPhysical, 或 Electrical 视图中右键单击,然后选择 Import 或 Export

选择 Import 后,将打开标准的 File Explorer 对话框,你可以在其中选择要导入到设计中的目标约束/约束集(*.CstrDot )。随后会打开 Constraints to Import 对话框,你可以在其中选择要导入到当前设计的约束/约束集。所选约束/约束集将应用到目标设计中的相应对象。

  • 如果所选要导入的某个网络在目标设计中不存在,则会在 Constraint Manager 中为其添加一个条目。由于设计中没有该网络,该条目会用  图标标记。你可以从该条目复制约束值并粘贴到现有对象中。可通过在设计中添加同名网络,然后在 Constraint Manager 中刷新数据来解决该问题。或者,也可以在 Constraint Manager 中右键单击该条目并选择 Delete unmatched objectshow image 来移除不匹配对象。
  • 如果所选要导入的差分对或 xNet 在目标设计中不存在,则不会将其添加到设计中。
  • 如果所选要导入的网络/差分对/xNet 类在目标设计中不存在,则会自动将其添加到设计中。

Exporting Constraints and Constraint Sets

在 Clearances 视图中选择一个或多个单元格,或在 Physical 或 Electrical 视图中选择一行或多行,然后选择 Export,将打开 Constraints to Export 对话框,其中包含在网格中所列命令执行前已选中对象的所有约束和约束集。使用复选框选择要导出的约束/约束集(默认情况下,对话框中会选中与当前视图相关的约束)。单击 OK 后,将打开标准 File Explorer 对话框,您可以在其中命名并保存这些约束/约束集。文件将以 *.CstrDot 扩展名导出,随后可导入到另一个设计中。

在 PCB 端处理所有规则

当从 PCB 编辑器访问 Constraint Manager 时,将提供 All Rules 视图,其中列出了 PCB 设计中的所有规则。在这里,您可以创建匹配范围包含更复杂查询表达式的高级规则。

  • 高级规则(在 All Rules 视图中列于 Advanced Rules 列表下)优先于 Constraint Manager 其他视图中定义的规则(并且在 All Rules 视图中列于 Basic Rules 列表下)。可通过在 Priority 列()中输入所需优先级来重新定义高级规则的优先级(1 为最高优先级)。列在 Basic Rules 列表下的规则优先级无法重新定义。

  • 当从 Electrical 类别中选择 Clearance 规则类型时,清除矩阵中为其配置了间距(clearance)约束的每一对类,都会在 All Rules 视图中以各自的基础规则呈现。请注意,如果在清除矩阵中为不同层配置了约束值(详见 above),对应的类对在 All Rules 视图中仍将仅由一条基础规则表示,并且应用于更具体层/层组的值将具有更高优先级。

  • 使用 Comment 列为规则添加注释,例如对该规则用途的有意义描述。

创建新的高级规则

要在 Constraint Manager 的 All Rules 视图中创建新的高级规则,请从右键上下文菜单中选择 Add Advanced Rule (或在网格区域未选中任何规则时,使用 Constraint Manager 底部的  按钮),然后在列表网格列或下方图形化表示中输入基于查询的匹配范围以及约束参数。

 
 
 
 
 
Javascript ID: CM_AllRules_AddAdvancedRule_AD25_5

在 Constraint Manager 中配置新的高级规则,类似于在 PCB Rules and Constraints Editor dialog 中构建规则。请参阅 PCB Design Rule Types 页面,了解该对话框以及 Constraint Manager 的 All Rules 视图中可用的规则类型。

如果范围查询表达式因语法等原因被判定为无效,将显示警告对话框。 

要保留无效范围,请在对话框中单击 Yes 。这将导致无效规则如下面所示以红色高亮显示。单击 No  可还原为先前(有效)的范围。

管理范围库(Scopes Library)

为简化重复创建高级规则的过程,Constraints Manager 允许您将基于查询的对象匹配范围存储到 Scopes Library 中。该库通过 Scopes Library 对话框进行管理,可在 Properties panel 的 Scopes Library 区域中单击 Edit Library 按钮打开。库显示在 Properties 面板中,您可以将自定义范围以 XML 文件形式导入/导出,然后用于填充另一套 Altium Designer 安装中的 Scopes Library。

要将范围导出到库或从库中导入范围,请使用 Constraint Manager 下部 Object Match / Second Object Match 字段旁  按钮菜单中的命令。将基于库的范围应用到规则后,范围名称会显示在网格区域的 Object Match / Second Object Match 列中,并显示在 Object Match / Second Object Match 字段上方。您可以使用该字段的  菜单将范围还原为基于查询的格式(Detach Scope)。

启用/禁用规则

您可以在 All Rules 视图中启用/禁用列出的基础规则和高级规则。Enabled 列反映规则状态: True (已启用)或 False (已禁用)。双击该列中的单元格并切换特定规则的状态。对应已禁用基础规则的单元格会标记为 (Disabled),并在 PhysicalElectrical 视图中显示为灰色。

也可以通过在 Rule Class 树中对相应条目使用右键上下文菜单命令,切换某一类型、某一类别或全部高级规则的启用状态。

 
 
 
 
 
Javascript ID: CM_EnableDisableAdvancedRules_AD25_5

Rule Class 树中右键单击某个规则类型条目,以启用/禁用该类型的高级规则。

Rule Class 树中右键单击某个规则类别条目,以启用/禁用该类别中的高级规则。

右键单击 Rule Class 标题,以启用/禁用所有高级规则。

导入与导出规则

All Rules 视图中,您可以导入和导出规则(高级和/或基础)。

要导出,请使用 Ctrl+ClickShift+ClickClick, Hold&Drag 在列表中选择多条规则,然后右键并选择 Export Selected Rules (x) 命令(x 表示所选规则数量)。您也可以通过在 Rule Class 树中对相应条目使用右键上下文菜单命令,导出某一类型、某一类别或全部高级规则。选择某个 Export 命令后,将打开 Constraints to Export 对话框,您可以在其中选择要导出到 *.CstrDot 文件中的规则,该文件之后可导入到另一个项目中。单击 Export x Items 按钮后(x 表示在对话框中选中的项目数量),将打开标准 File Explorer 对话框,您可以在其中定义文件名称和保存位置。规则将导出为 *.CstrDot 文件,之后可导入到另一个设计中。

 
 
 
 
 
Javascript ID: CM_ImportExport_AllRules

右键单击一个或多个选中的规则以导出它们。

Rule Class 树中右键单击某个规则类型条目,以导出该类型的规则。

Rule Class 树中右键单击某个规则类别条目,以导出该类别中的规则。

右键单击 Rule Class 标题以导出所有规则。

要导入,请在列表区域或 Rule Class 视图的 All Rules 树中右键单击,然后选择 Import Rules 命令。 将打开标准的 File Explorer 窗口,在其中选择所需的 *.CstrDot 文件;然后单击 Open。随后会打开 Constraints to Import 对话框,你可以在其中选择要导入到当前设计中的规则。导入后,相关的自定义作用域会自动应用。

 
 
 
 
 

删除高级规则

要删除当前选中的高级规则,请右键单击它并选择 Remove Advanced Rule。要一次删除多个高级规则,请使用 Ctrl+ClickShift+ClickClick, Hold&Drag 选择多个规则,然后右键单击并选择 Remove Advance Rules (x)。其中“x”表示将被移除的规则数量。 你也可以使用对应条目的右键上下文菜单中提供的命令,移除特定类型、特定类别的所有高级规则,或移除所有高级规则;这些命令位于 Rule Class 树中相应条目的右键菜单中。

 
 
 
 
 
Javascript ID: CM_RemoveAdvancedRules_AD25_5

右键单击多个选中的规则以移除它们。

Rule Class 树中右键单击某个规则类型条目,以移除该类型的高级规则。

Rule Class 树中右键单击某个规则类别条目,以移除该类别中的高级规则。

右键单击 Rule Class 标题以移除所有高级规则。

在每种情况下,规则都会立即删除,不会有任何确认提示。

交叉探测

Constraint Manager 包含交叉探测功能,可通过在相应文档中对关联对象进行可视化高亮来显示它们。 要交叉探测到任意对象,请右键单击其条目,然后从上下文菜单中选择 Cross Probe 选项,或从某个高级规则的 Cross Probe  菜单中选择 Cross Probe

Javascript ID: CM_CrossProbe_AD24_1

Properties 面板中设置 Cross Probe View Settings 以配置交叉探测设置。

使用原理图/PCB 编辑器的 Clear Filter 选项(在设计空间中右键单击并选择 Clear Filter,快捷键:Shift+C)来重置交叉探测高亮。

请参阅 Cross-Probing & Selecting 页面,了解有关 Altium Designer 中交叉探测的更多信息。

交叉选择

交叉选择功能便于实现动态的双向对象选择。 启用交叉选择模式后(通过 Constraint Manager、原理图编辑器或 PCB 编辑器的 Tools 主菜单中的 Cross Select Mode 命令),在 Constraint Manager 中选中的对象也会在原理图和 PCB 文档中被选中,反之亦然。

请参阅 Cross-Probing & Selecting 页面,了解有关 Altium Designer 中交叉选择的更多信息。

在原理图与 PCB 之间传递约束

在 Constraint Manager 中应用的更改会通过工程变更指令(ECO)流程在原理图与 PCB 设计之间传递。 选择相应命令以更新另一侧的约束。

  • 要将更改从原理图传递到 PCB – 从原理图编辑器的主菜单中选择 Design » Update PCB Document <PCBDocumentName> 命令。

  • 要将更改(在 Constraint Manager 的 ClearancesPhysical 和/或 Electrical 视图中所做)从 PCB 传递到原理图 – 从 PCB 编辑器的主菜单中选择 Design » Update Schematics in <PCBProjectName> 命令。

使用随后出现的 Engineering Change Order 对话框来查看、验证并执行这些更改。

当从原理图向 PCB 推送更改并访问 ECO 对话框时,Constraint Manager 会自动刷新对规则/类所做的更改。请注意,如果 Constraint Manager 已经打开,则只有在未进行任何未保存更改的情况下才会发生此同步。

当将更改从原理图传递到 PCB 时,请注意:仅会传递在 Constraint Manager 中定义的规则、网络类、差分对以及差分对类。以下内容不会被检测并传递:

  • 使用 Parameter Set 和 Differential Pair 指令,或使用 Properties 面板(用于原理图文档选项)定义的规则。

  • 自动生成的网络类(根据 Project Options 对话框的 Class Generation 选项卡上的设置)。

  • 使用 Parameter Set 和 Differential Pair 指令定义的网络类和差分对类。

  • 使用 Differential Pair 指令定义的差分对。

请注意:在 Constraint Manager 中定义的网络类将被传递,而不受 Project Options 对话框 Class Generation 选项卡设置的影响

当从原理图访问 Constraint Manager 时,你可以通过在 Constraint Manager 的 PhysicalElectrical 视图的右键菜单中使用 Import from Directives 命令,从放置在原理图中的指令导入规则、网络类、差分对以及差分对类 – 了解更多

  • 在同步原理图与 PCB 时,如果 Constraint Manager 中所做的更改尚未保存,你会在 Engineering Change Order 对话框中收到提示。警告会包含未保存更改所在的一侧——原理图、PCB 或两者()。

  • 如果原理图中存在此前未导入到 Constraint Manager 的设计指令,Engineering Change Order 对话框将显示警告()。

  • 对于某些类的作用域(成员列表)已更改,但源原理图与 Constraint Manager 之间未同步的情况,在尝试从原理图更新 PCB 时,Engineering Change Order 对话框将显示警告()。

请参阅 保持原理图与 PCB 同步 页面以了解更多信息。

从设计规则迁移到约束管理器

当在 Advanced Settings dialog 中启用 ConstraintManager.ProjectMigrationWizard 选项时,此功能可用。

如果某个 PCB 项目使用旧的规则管理系统(即 PCB Rules and Constraints Editor dialog),你可以执行一次性、单向迁移到约束管理器。

在 PCB 和原理图编辑器的主菜单中使用 Design » Migrate Project to Constraint Manager Flow 命令。将打开 Migration Required dialog,提示将进行迁移,并且在点击 按钮后将无法撤销。

PCB 设计规则和原理图指令都会被转移到约束管理器中相应适用的约束内。迁移成功完成后,将打开约束管理器(其上下文取决于你执行迁移时处于活动状态的编辑器)。

  • 如果在 PCB Rules and Constraints Editor dialog 中不存在具有默认作用域的设计规则(例如,没有作用域为 All 的 Width 规则),则会在迁移过程中作为约束管理器的一部分创建该规则。

  • 当 Clearance 规则的第一和第二作用域表达式(Where the First Object Matches 和 Where the Second Object Matches)设置为 All 时,在将项目迁移到约束管理器时会按如下方式考虑网络作用域/连通性检查选项:

    • Different Nets Only – 该规则会被添加到 All Nets – All Nets 在 Clearances 视图中的间距矩阵单元格。

    • Different Differential Pair – 该规则会被添加到 All Nets – All Differential Pairs 在 Clearances 视图中的间距矩阵单元格。

    • Same Net Only – 该规则会被添加到 Same Net Clearance 视图中针对 All Nets 的 Physical 单元格。

    • Same Differential Pair – 该规则会被添加到 Same Net Clearance 视图中针对 All Differential Pairs 的 Physical 单元格。

  • 如果在迁移之前,曾有规则被添加到参数集指令中,但这些规则未在约束管理器的 PhysicalElectrical 视图中呈现,那么当从 PCB 访问约束管理器时,这些规则将自动创建为高级规则,并显示在 All Rules view 上。高级规则会在从旧规则管理系统迁移以及 随后从原理图到 PCB 的 ECO 时创建。

AI-LocalizedAI 翻译
如您发现任何问题,请选中相关文本/图片,并按 Ctrl + Enter 键向我们提交反馈。
功能可用性

您可使用的功能取决于您所选择的 Altium 解决方案 —— Altium DevelopAltium Agile(Agile Teams 或 Agile Enterprise 版本),或仍在有效订阅期内的 Altium Designer。

如果您在软件中未找到文中提及的功能,请联系 Altium 销售团队了解更多信息。

旧版文档

Altium Designer 文档不再提供版本区分。如果您需要访问 Altium Designer 旧版本的文档,请前往其他安装程序页面的旧版文档部分。

Content