一旦在多板原理图上将各个模块彼此连接起来,就可以验证板对板的连通性。这将检测网络到引脚分配错误以及引脚到引脚互连布线错误。这些错误可以被解决,并将更正下推到受影响的 PCB 项目中,或回传到源系统原理图中。
Altium Designer 可以根据设计内容 与项目检查设置,对你的多板设计进行逻辑、电气和制图错误检查。对已验证的多板设计可以执行多种检查。这些检查用于发现与图纸上模块之间连接相关的违规情况,以及与配对器件相关的问题,并且这些检查作为项目选项的一部分进行配置。
配置验证选项并运行验证
从主菜单中选择 Project » Project Options 命令以打开 Project Options 对话框,并选择其 Error Reporting tab。通过单击每一项违规并在下拉列表中选择所需值,可将每项违规的 Report Mode 更改为四个值之一。

在 Project Options 对话框的 Error Reporting 选项卡上配置所需的违规检查。
要验证 你的多板设计,请从主菜单或设计空间右键菜单中选择 Design » Run ERC 命令。

使用 Run ERC 命令验证你的多板设计。
解读消息并定位违规
如果在设计中检测到验证错误和警告,将在 Messages 面板中显示通知。
请注意,只有在至少存在一个 Error 或 Fatal Error 条件时,Messages 面板才会自动打开。若要检查 Warning,你需要手动打开该面板:单击设计空间右下角的
按钮并选择 Messages。 项目验证完成后,该面板将列出检测到的所有警告和错误。

Messages 面板显示在多板设计项目中检测到的警告和错误。
Messages 面板是呈现违规信息的“指挥中心”。需要注意的事项包括:
-
Messages 面板有两个区域——上方的表格区域汇总违规;下方区域给出当前所选违规的详细信息。
-
双击一条消息可交叉探测到该违规位置。双击某条详细信息可显示对应的特定对象。
-
你可以单击 Messages 面板中的任意列标题(例如 Class、Document、Message)以帮助对错误和警告进行排序。
-
在 Messages 面板中右键,然后使用 Group By 子菜单选项按特定条件对错误和警告进行分组。
-
在 Messages 面板中右键,然后使用相应的 Clear 命令删除 消息 ,或使用 Export To Report 命令将消息导出为报告。
清除消息并不一定意味着问题已解决。再次执行验证后,仍未解决的消息会再次列出。清除消息是一种在解决设计错误时的视觉辅助,允许你在认为已解决时手动移除消息。必须再次启动验证,才能获得仍然存在的违规情况的最新视图。
多板设计违规类型
以下各节包含关于多板设计中每一种可用违规检查的详细信息。
与连接相关的违规
Different Net Names
当多板原理图上某个连接所关联的网络名称 与子设计项目中对应连接器引脚所关联的网络名称不一致时,就会发生此违规。
通知
将在 Messages 面板中按以下格式显示通知:
Net Name "<ConnectionNetName>" for connection "<ConnectionDesignator>" does not match with Net "<ConnectorPinNetName>" of "Pin <ConnectorDesignator-PinNumber>" in child project "Module <ModuleDesignator>(<ChildProjectName>)"
其中:
-
ConnectionNetName – 与从所示引脚引出的连接相关联的网络名称(在多板原理图上)。
-
ConnectionDesignator – 该连接的标号(Designator)。
-
ConnectorPinNetName – 子设计项目中连接器所示引脚关联的网络名称。
-
ConnectorDesignator-PinNumber – 子设计中由模块条目所代表的连接器元件标号,以及该连接器的引脚。
-
ModuleDesignator – 多板原理图上用于引用子设计项目的模块标号。
-
ChildProjectName – 由该模块引用的子项目名称(含扩展名)。
解决建议
此违规通常出现在:一个子项目中连接器引脚的网络名称与另一个子项目中配对连接器引脚的网络名称不同的情况下,即两块板通过多板原理图文档中相关父模块之间的连接而相连。
使用 Connection Manager 对话框查看当前使用的网络名称。Net Name 条目显示多板原理图文档上该连接所使用的名称。选中该连接后,也可以在对话框的 Conflict Resolution 区域中直观查看。当两个子项目中连接器引脚关联的网络不同,连接的 Net Name 将默认设为 <FromPinNetName>/<ToPinNetName>。这些网络名称会分别反映在 From 和 To 引脚的 Module Net 字段中。可通过两种方式解决:
-
在两个模块的 Conflict Resolution 区域中使用
按钮,快速将各自的模块网络设置为与该连接的网络名称一致。然后应用更改,并使用 Design » Update Child Projects 命令将这些更改回传到子项目。通过 ECO,相应项目中各连接器引脚关联的网络将被相应更新。
-
在其中一个子项目中,将相关连接器引脚所关联的网络命名 更改为与另一个项目中该连接器引脚所用名称一致。然后编译子项目,并使用 Design » Import From Child Projects 命令将更改带回多板原理图。通过 ECO,连接的网络名称将相应更新。
请参阅 Working with Connections 页面,了解更多关于使用 Connection Manager 对话框的信息。
No Net
当多板原理图中某个模块条目所表示的连接器引脚 在该模块引用的子设计项目中未连接到任何网络时,就会发生此违规。
通知
将在 Messages 面板中按以下格式显示通知:
"Pin <ConnectorDesignator-PinNumber>" is not connected in child project "Module <ModuleDesignator>(<ChildProjectName>)"
其中:
-
ConnectorDesignator-PinNumber – 子设计中由模块条目所代表的连接器元件标号,以及该连接器的违规引脚。
-
ModuleDesignator – 多板原理图上用于引用子设计项目的模块标号。
-
ChildProjectName – 由该模块引用的子项目名称(含扩展名),并且该项目包含所示未连接到网络的连接器引脚。
解决建议
此违规可能在多种情况下出现。解决此类违规时请考虑以下事项:
-
如果该被引用连接器的引脚在设计中不打算使用,请将其连接到适当的电源线(例如 GND)。
-
确保连接到该连接器引脚的任何布线都形成电气接触, 即导线或总线连接到了该引脚的电气热点。
-
如果该连接器引脚预期应有一段短导线和一个网络标号,请确保网络标号存在 并且已正确附着到导线上。
Unresolved Conflict
当系统中两块已连接的板之间的连通性存在冲突时,就会发生此违规。
通知
将在 Messages 面板中按以下格式显示通知:
Unresolved conflict exists: Net "<OldModuleNetName>" has been renamed to "<NewModuleNetName>" for "Pin <ConnectorDesignator-PinNumber>" in child project "Module <ModuleDesignator>(<ChildProjectName>)"
其中:
-
OldModuleNetName – 子设计项目中连接器所示引脚当前关联的网络名称,该名称目前保存在多板原理图编辑器现有的连通性数据映射中。
-
NewModuleNetName – 在导入对子项目所做的更改之后,子设计项目中连接器所示引脚现在关联的网络名称。
-
ConnectorDesignator-PinNumber – 子设计中由模块条目所代表的连接器元件标号,以及该连接器的引脚。
-
ModuleDesignator – 多板原理图上用于引用子设计项目的模块标号。
-
ChildProjectName – 由该模块引用的子项目名称(含扩展名)。
解决建议
此违规通常出现在:某个子项目中与连接器相关的内容发生了更改,而当该更改被导入回多板原理图文档时,会破坏两块已连接板之间已定义的现有连通性。例如,在某个子项目中连接器的两个引脚所分配的网络可能被对调,导致沿这些引脚追踪到另一块目标板的连接器时出现不匹配。
使用 Connection Manager 对话框查看未解决的冲突。Connection Manager 对话框列表会高亮显示任何被视为存在冲突的连接;或者在实际情况下,高亮显示任何与多板原理图编辑器现有连通性数据映射不一致的已导入连接更新。
请参阅 Working with Connections 页面,了解有关使用 Connection Manager 对话框以及可用冲突解决选项的更多信息。
与配对部件相关的违规
Entry Is Empty
当某个模块条目当前未引用其父模块所引用的子设计项目中的连接器组件时,会发生此违规。
通知
在 Messages 面板中会按以下格式显示通知:
Entry "<EntryDesignator>" is empty in "Module <ModuleDesignator>(<ChildProjectName>)"
其中:
-
EntryDesignator – 发生问题的模块条目的标号(Designator)。
-
ModuleDesignator – 多板原理图上用于引用子设计项目的模块标号。
-
ChildProjectName – 该模块所引用的子项目名称(含扩展名)。
解决建议
此违规可能在以下情况下出现:
通常,你应确保子项目中的连接器已放置并已赋予 System:Connector 参数。然后使用某个 Import from Child Project 命令,让条目在引用该子项目的空/壳父模块中自动创建。这是使多板设计中的模块条目与子项目中底层连接器保持同步的最快且最安全的方法。
No Mated Part
当某个模块条目当前未与设计中的另一个模块连接时,会发生此违规。
通知
在 Messages 面板中会按以下格式显示通知:
Part "<ConnectorDesignator>" (Entry <EntryDesignator>) doesn't have Mated Part in "Module <ModuleDesignator>(<ChildProjectName>)"
其中:
-
ConnectorDesignator – 被引用子项目中连接器组件的标号。
-
EntryDesignator – 发生问题的模块条目标号(它反映并与被引用子项目中的底层连接器保持同步)。
-
ModuleDesignator – 多板原理图上用于引用子设计项目的模块标号。
-
ChildProjectName – 该模块所引用的子项目名称(含扩展名)。
解决建议
确保将发生问题的模块条目连接到目标模块中的所需条目——即在一块子板上的连接器与另一块子板上的连接器之间建立连接。选择连接类型,并相应地在两个模块的条目之间布线连接。
请参阅 Working with Connections 页面了解更多信息。