原理图到 PCB 设计中最常见的任务,就是保持原理图与 PCB 一致(匹配)或同步。无论是首次将已捕获的设计转移到新的 PCB,还是在原理图端或 PCB 端对现有设计进行修改,你都需要某种方式让两端保持同步。Altium Designer 提供强大的设计同步功能,简化了保持设计同步的工作,让设计人员能够将注意力集中在设计流程中更具创造性的部分。
同步过程会检测并解决原理图与 PCB 之间的差异。
设计同步直接在原理图编辑器与 PCB 编辑器之间进行;不会使用任何类似网表的中间文档。软件使用比较器引擎对设计的各个方面进行比较,并将输出详细列为差异清单。设计人员决定应更改哪一侧来消除差异,然后生成一组工程变更指令(ECO)。应用这些 ECO 后,设计两端就会重新同步。
在将原理图信息转移到新的 PCB 之前,必须确保原理图符号与 PCB 封装所需的所有相关库均可用。
可以同步哪些内容?
同步过程确保原理图中的元件与连接数据,与 PCB 中的元件与连接数据一致。除元件与连接数据外,同步过程还会确保其他设计约束(例如网络类、元件类以及设计规则)也保持同步。
配置比较器选项
Dialog page: PCB Project 的选项,Comparator 选项卡
具体比较哪些原理图与 PCB 数据,可在 Options for PCB Project 对话框的 Comparator tab 中进行配置。选择 Project » Project Options 以打开该对话框。

比较器引擎遵循 Options for Project 对话框中 Comparator 选项卡里定义的设置。
对话框的主要区域包含一长列“比较类型”(Comparison Types),例如 Different Designators 和 Changed Net Name,并分为 5 个类别。右侧的 Mode 列为每一项提供一个下拉选项,用于选择比较模式,例如 Find Differences 或 Ignore Differences。文本类比较还有第三个选项,可实现不区分大小写的比较。
新项目的默认设置是对每一种比较类型都执行“查找差异”(Find Differences);请根据项目需要设置相应选项。
-
对于原理图到 PCB 的同步,所有与 PCB 相关的细节都可以同步。
-
对于 PCB 到原理图的同步,只有对元件位号(designator)、注释(comment)和封装(footprint)的更改可以同步回原理图。唯一可以同步的网络更改,是由引脚/部件互换(pin/part swap)操作导致的更改——具体如何执行取决于引脚/部件互换选项的配置。更多信息请参阅 Pin and Part Swapping 页面。
在对话框底部有用于设置 Object Matching Criteria 的选项。匹配是一个复杂的多轮处理过程,并不依赖简单的精确字符串匹配。更多信息请参阅 Matching the Nets and Classes 部分。
注意对话框底部的 Ignore Rules Defined in the PCB Only 选项:启用后,可将你在 PCB 中定义的规则从比较过程中排除。
同步网络类与元件类
Dialog page: PCB Project 的选项,Class Generation 选项卡
除了元件与连接数据外,在执行 Design » Update PCB 时,你还可以生成并同步类与设计规则。
同步设计规则
可以在原理图中使用 Parameter Set 对象来定义设计规则。选中 Parameter Set 对象时,Properties 面板或模态对话框中会包含一个 Rules 区域。点击 Add 下拉菜单以添加设计规则。该规则将应用于 Parameter Set 对象所接触的原理图覆盖(blanket)下的网络/总线/线束/对象。
在下图中,一个线宽约束设计规则被应用到 USB_data 网络类(该网络类也作为此 Parameter Set 的一部分在 Classes 区域的 Parameters drop-down 中定义)。

该 Parameter Set 用于为原理图 blanket 对象下的网络定义网络类与设计规则。请注意,所需的度量单位在 Edit PCB Rule 对话框底部进行配置。
Adding a Design Rule in the schematic
-
将一个 Parameter Set 附加到网络/总线/线束/blanket(如有需要,在 Parameter Set 中添加网络类定义)。
-
Add在 Parameter Set 中添加一条规则定义。这将打开 Choose Design Rule Type 对话框,如上所示。
-
选择所需的 Rule Type。
-
点击 OK 按钮以打开 Edit PCB Rule 对话框。
-
按需配置 PCB 规则要求。注意:该 PCB 规则所需的度量单位在对话框底部选择。
在 Options for Project 对话框的 Comparator 选项卡中,确保已启用所需的规则类型比较,以便在 PCB 中添加和更新设计规则。
每条由原理图规则定义创建的 PCB 规则都会自动命名为 Schematic <RuleType>。如有需要,可以编辑该名称,因为它不会用于 ongoing rule synchronization。
在上图和下图中,设计规则都定义在附加到 blanket 的 Parameter Set 对象中。通过在 Parameter Set 对象中包含类定义,还会创建一个 PCB 网络类,并且由于存在类定义,PCB 规则的作用域将限定为 InNetClass('<PCB_NetClassName >')。
在下图中你会注意到,Parameter Set 对象显示为差分对指令(Differential Pair directive)。这是一种特殊类型的 Parameter Set 对象,通过 Place » Directives » Differential Pair 命令放置。

差分对指令用于定义网络类与设计规则,然后将其应用到目标差分对。
差分对的使用
差分对指令用于标识属于某个差分对的网络。软件要求该对中的网络命名为 <Name>_P 和 <Name>_N。随后 PCB 差分对将命名为 <Name>。
可以通过在每个差分对成员上放置一个差分对指令来定义差分对,或者放置一个 blanket 覆盖该对的网络名称,如上图所示。
参照上图,差分对 Parameter Set 对象会创建:
-
8 个差分对,命名为
V_RX0、V_TX0、V_RX1、V_TX1、RX0、TX0、RX1、TX1。
-
一个名为
ROCKET_IO_LINES 的 PCB 网络类。
-
一条
Differential Pairs Routing 设计规则,配置为作用于 PCB 网络类 ROCKET_IO_LINES。
配置 ECO 生成选项
Options for Project 对话框还包含一个 ECO Generation 选项卡。该选项卡定义哪些设计修改可以生成 ECO。通常会全部启用,而使用该对话框 Comparator 选项卡中的选项来配置哪些设计更改需要在原理图与 PCB 之间同步。

ECO Generation 选项卡定义哪些类型的修改可以生成 ECO。
查找差异
设计同步功能能够在两个方向检测并解决差异;即从原理图到 PCB,或从 PCB 回到原理图。
检测并解决差异有两种方式:
-
为每一项更改指定更新方向。
-
将所有更新按同一方向应用。
如果你不需要同时在两个方向应用更新,那么就不必经历选择要比较的文档并配置用于解决差异的更新方向这一流程。在这种情况下,你可以直接跳到 Performing a Direct Update 部分。
软件能够通过同时对两端应用更改来解决这些差异。例如,设想这样一种场景:电子设计人员更改了某个电容的数值,而 PCB 设计人员更改了同一个电容的封装。这两处差异可以在一次更新过程中解决:将注释更改作为“原理图到 PCB”的更新应用,将封装更改作为“PCB 到原理图”的更新应用。
当比较器引擎将原理图项目与 PCB 进行比较时,会生成一份完整的差异清单——在此阶段,并不会预设必须更改哪一侧才能使其重新同步。
差异列表可在 Differences between 对话框中查看。
Options and Controls of the Differences between Dialog
该对话框基本分为三个主要区域—— Differences、 Update 和 Change Order。
差异
该对话框的此区域会列出 Comparator 在所选文档之间找到的所有差异。每条差异会列在其所在文档对应的列中。差异会按比较类型分组,这些类型在 Project Options 对话框 的 Comparator 选项卡 中列出并启用。组级别的条目会反映该类型差异的数量。
双击某个条目可交叉定位到相关源文档中的对象。
使用右键菜单中的 Expand All 和 Contract All 命令可快速展开或收起所有条目。也可以使用每个条目左侧的 +/- 控件来展开或收起单个比较类型分组。
当将项目的设计层次与其 PCB 文档进行比较时,项目侧的列将以顶层原理图页的名称作为标签。
更新
使用对话框的此区域来指定应更新哪个文档以消除差异。默认情况下,所有 Decision 条目 初始都会应用 No Change 的决策。
即使检测到差异,你也不必一定要对其采取操作。软件只会同步你指定的元素。
可通过单击 Decision 列 中与某条差异关联的条目,然后在随后出现的
ECO Decision dialog 中选择所需的更新操作,来为每条差异单独确定更新决策。只需选择更新方向(更新哪一个被比较的文档)或根本不 No Updates。
ECO Decision 对话框 会指示某个方向上的更新是否有效。若有效,对应的箭头将可用。若不支持某项更改,对应更新方向的按钮将变为灰色不可用。
变更顺序
该对话框的此区域会列出(针对你决定要处理的每条差异)将要执行的操作、该操作影响的对象,以及将执行该操作的文档。正是这些信息用于编制后续的 ECO,以创建更新。此区域常见的操作包括:
-
Remove - 当更新方向指向包含导致差异对象的文档时;该对象将被移除。
-
Add - 当更新方向指向不包含导致差异对象的文档时;该对象将被添加。
-
Update - 当两个文档都包含同一对象但在某些方面不同;对象的更改取决于所选方向。
如果 Update Decision 为 No Change,则不会执行任何操作,这会在 Change Order条目 No Action中体现。
右键菜单
-
Create Change Order - 用于创建工程变更单(ECO)。
-
Generate Report - 用于生成 Comparator 找到的差异报告。你所做出的更新决策以及相应操作将包含在生成的 ECO 中。报告将加载到 Report Preview 对话框中。使用该对话框浏览报告,然后最终将其导出为多种受支持格式之一,或直接打印。
-
<< Update All in - 用于将所有差异的更新方向设置为左侧文档(如适用)。
-
Update All in >> - 用于将所有差异的更新方向设置为右侧文档(如适用)。
-
Reverse Direction For All - 用于快速反转所有差异的更新方向(如适用)。如果某条差异不允许更改方向,该条目将被设置为 No Change。
-
Set No Action For All - 用于快速将所有差异的更新决策设置为 No Change。
-
<< Update Same Kind in - 用于将与当前聚焦差异属于同一比较类型的所有差异的更新方向设置为左侧文档(如适用)。
-
Update Same Kind in >> - 用于将与当前聚焦差异属于同一比较类型的所有差异的更新方向设置为右侧文档(如适用)。
-
Reverse Direction For Same Kind - 用于快速反转与当前聚焦差异属于同一比较类型的所有差异的更新方向(如适用)。如果某条差异不允许更改方向,该条目将被设置为 No Change。
-
Set No Action For Same Kind - 用于快速将与当前聚焦差异属于同一比较类型的所有差异的更新方向设置为 No Change。
-
<< Update Selected in - 用于将所有选中差异的更新方向设置为左侧文档(如适用)。
-
Update Selected in >> - 用于将所有选中差异的更新方向设置为右侧文档(如适用)。
-
Reverse Direction For Selected - 用于快速反转所有选中差异的更新方向(如适用)。如果某条差异不允许更改方向,该条目将被设置为 No Change。
-
Set No Action For Selected - 用于快速将所有选中差异的更新决策设置为 No Change。
-
Invert Selection - 用于选择列表中当前未选中的所有差异,或取消选择已选中的差异。
可使用标准的多选技巧(Ctrl+click、Shift+click)在列表中选择多条差异。
只有在某个方向上的更新有效时,才会设置该方向。
附加控件
对话框底部提供以下按钮:
-
Create Engineering Change Order - 单击此按钮生成 ECO。随后将出现 Engineering Change Order 对话框,你可在其中验证并执行更新,以同步文档。
-
Report Differences - 单击此按钮生成 Comparator 找到的差异报告。你所做出的更新决策以及相应操作将包含在生成的 ECO 中。报告将加载到 Report Preview 对话框中。使用该对话框浏览报告,然后最终将其导出为多种受支持格式之一,或直接打印。
-
Explore Differences - 单击此按钮可在生成 ECO 之前进一步检查 Comparator 找到的差异。Differences between 对话框将关闭,你将返回主工作区,并打开 Differences panel。该面板将包含 Comparator 列出的所有差异,并按相同类别归类。使用该面板可交叉定位到其父文档上导致差异的对象。
以这种方式探索差异会导致你在 Differences between 对话框中所做的任何更新决策丢失。你需要再次打开该对话框并按需重新定义更新。或者,你也可以直接在 Differences between 对话框内交叉定位到对象:在对话框的 Differences 区域 中双击该对象的条目。由于 Differences between 对话框会保持打开状态,建议同时打开源文档和目标文档,并放置好对话框以免遮挡视图。
要打开 Difference between 对话框并查看差异列表:
-
要打开如下图所示的 Choose Documents to Compare 对话框,请运行 Project » Show Differences 命令,或在 Projects 面板 中右键单击所需项目(或其某个源文档)的条目,并从上下文菜单中选择 Show Differences 命令。Choose Documents to Compare 对话框用于选择要比较的两个文档/文档集,通常是将原理图项目与 PCB 进行比较。你也可以通过勾选 Advanced Mode 选项,使用该对话框将任意文档与任意文档进行比较。例如,你可能会将网表与 PCB 比较,或将 PCB 与 PCB 比较。
通常情况下,无论是基本模式还是高级模式,该对话框的默认设置都能满足大多数设计比较需求:将源文档与目标 PCB 设计进行比较,以实现同步。该对话框也允许你比较其他文档;当你需要加载项目的不同版本并比较对应源文档之间的差异时,这会很有用。

选择要与原理图项目进行比较的 PCB。
-
在对话框主体中选择 PCB,然后单击 OK 以打开 Difference between 对话框,如下所示。 如果 PCB 文档当前已与源文档同步,将出现一个对话框提示未检测到差异。
Differences between 对话框 将打开。Synchronizer 是双向的。这意味着你可以在同一个 ECO 中指定对两个文档的更新。为了同步被比较的文档,目标是针对每条差异确定:是否采取操作,以及更改的方向——即指定应更新哪个文档以消除差异。因此下一步是为每条差异分配更新方向:
-
对于单条差异,单击 Update 列以显示方向选择器,如下图所示。
- 对于同一类型的多个差异,请在相应标题(例如 Different Footprints)上单击右键,然后选择所需的 Update Same Kind 命令。
-
对于所有差异,请在对话框中的任意位置单击右键,然后选择所需的 Update All 命令。

对于每一项差异,必须设置 Update direction,才能创建用于解决该差异的 ECO。
单击 Explore Differences 按钮以访问 Differences panel,并按下方 Exploring Design Changes with the Differences Panel 小节所述来查看差异。
由于以这种方式访问 Differences panel 会关闭 Differences between dialog,因此之前已做出的任何更新决策都会丢失。因此,最好在做出更新决策之前先查看差异。或者,也可以在 Differences between dialog 内直接对对象进行交叉探测:在对话框的 Differences 区域中双击该对象的条目即可。
单击 Report Differences 以设置并打印/导出一份报告,其中包含 Comparator 找到的差异、指定的更新决策以及将包含在生成的 ECO 中的操作。
分配好 Update direction 后,单击 Create Engineering Change Order 按钮打开 Engineering Change Order dialog,其内容在下方 Resolving Differences - Applying the ECOs 小节中说明。
使用 Differences Panel 查看设计变更

Differences panel 以层级视图显示文档差异。
概述
Differences panel 用于显示软件内置 Differences Comparator 在比较设计文档时发现的逻辑或物理差异(例如,将某个项目的源文档层级(原理图)与 PCB 设计文档进行比较)。该面板允许你在决定是否创建用于同步项目文档的 Engineering Change Order (ECO) 之前,以交互方式查看这些差异。
面板访问
打开 Differences panel 的方法:
-
从主菜单中选择 View » Panels » Differences 。
-
单击设计工作区右下角的 Panels 按钮,然后单击 Differences。
面板可以配置为在编辑器空间中浮动,或停靠在屏幕边缘。如果 Differences panel 当前位于停靠面板组中,请使用面板底部的 Differences 选项卡将其置于最前。
显示差异
Differences panel 的使用方式取决于目标是:
-
通过检测项目层级中的逻辑差异,分析整个项目在内容与结构方面的完整性。
-
通过检测图形(物理)差异,比较同一原理图或 PCB 文档的两个版本。
当使用 Differences Comparator 的
Explore Differences 功能(位于
Differences between dialog)时,
Differences panel 会被填充。该对话框可在
Projects panel 中单击右键并选择
Show Differences 打开。
显示逻辑差异
对项目文档进行逻辑差异比较是在 Choose Documents To Compare dialog 中完成的:在 Projects panel 中对项目(或项目文档)单击右键,然后从相关的上下文菜单中选择 Show Differences。

在项目名称上单击右键并选择 Show Differences 以打开 Choose Documents To Compare dialog。
通常,会将 PCB 文档与父项目的源文档层级进行比较,以检测原理图设计内容与 PCB 设计内容之间的逻辑差异。
单击 OK 后,如果指定文档之间存在任何差异,将打开 Differences between dialog。只有在 Differences between dialog 中单击 Explore Differences 按钮后,Differences panel 中才会显示信息。
Differences panel 只会显示 Differences between dialog 中列出的差异。而这些差异又由 Project Options dialog 的 Comparator tab(Project » Options)中的选择决定。该选项卡列出所有比较类型,例如与 Components、Nets 和 Parameters 相关的差异。将每个比较类别的 Mode 设置为 Find Differences 或 Ignore Differences,将决定 Differences Comparator 是否把结果传递到 Differences between dialog。

在 Project Options dialog 中设置差异的检测与报告方式。
Differences panel 以树状结构显示源文档之间发现的差异:顶层文件夹显示检测到的差异总数;随后会为 Differences between dialog 中出现的每一种具体比较类型创建子文件夹。每个子文件夹列出已发现的具体差异,并进一步细分到导致这些差异的文档对象。
如果相关文档已打开(或已打开但被隐藏),在面板中单击某个对象条目将交叉探测到文档中的该对象。
对象的可视化显示采用缩放与变暗效果:通过将其他对象变暗来突出显示目标对象。变暗对比度可通过 Preferences dialog 的 System - Navigation 页面中 Highlight Methods 区域的 Dimming 滑块进行调整。
显示物理差异
对同一原理图或 PCB 文档的两个版本进行图形(物理)比较,基本流程与上述逻辑比较相同,但还会使用 Choose Documents To Compare dialog 中的 Advanced Mode。
使用 Show Differences 命令(Projects panel 右键菜单)打开 Choose Documents To Compare dialog,然后勾选 Advanced Mode 复选框来执行文档物理比较。对话框中显示所有项目文件后,选择要比较的同一文档的两个变体。

在 Advanced Mode 中从 Choose Documents To Compare dialog 选择用于物理比较的文档。
单击 OK 将继续进行图形比较,并按前述方式打开 Differences between dialog。单击 Explore Differences 以在 Differences panel 中打开交互式差异列表。
面板以树状结构显示文档之间发现的差异。顶层文件夹显示检测到的差异总数。系统会为每种差异类型创建条目,并在其中包含每项差异的具体引用以及涉及的对象(端口、器件等)。
选择某个已检测差异的对象条目,将在编辑器设计空间中高亮并缩放到该对象。
注意事项
-
如果面板中的对象位于当前隐藏的文档上,当你单击相应条目时,该文档会自动打开,并在设计编辑器窗口中成为活动文档。
-
从 Differences panel 交叉探测时应用的过滤是临时的。因此,你仍然可以选择或编辑超出过滤范围的设计对象。
-
在执行新的文档比较或编译父项目时,Differences panel 中的信息将被清除。
-
使用主菜单中的 Project » Show Physical Differences 命令可检测同一原理图或 PCB 文档两个版本之间存在的物理差异,并在设计空间中并排查看两份文档时以图形方式呈现这些差异。该 Show Physical Differences 功能仅提供可视化比较——无法通过生成 ECO 来更新被比较的任一文档。它旨在比较同一文档的两个版本;但如果用于比较不同文档(例如项目的源层级与 PCB),则会出现 Differences panel 并列出检测到的逻辑差异。
执行直接更新
由于设计人员通常清楚希望以哪个方向应用更新,并且这些更新都在同一方向上,因此你可以选择跳过刚才描述的差异检测与方向分配过程。
不从 Project 菜单中选择 Show Differences command,而是从 Design 菜单中选择 Update command,并且可在原理图编辑器或 PCB 编辑器中执行。你从哪个编辑器运行该命令,就表示你希望变更应用的方向——从 this editor 到 that editor。例如,你会在原理图编辑器中选择 Design » Update,将所有变更从原理图推送到 PCB。
也可以在 PCB 编辑器的主菜单中选择 Design » Import Changes from <ProjectName> command,使活动 PCB 设计文档与源原理图文档中所做的任何更改保持同步。
将跳过 Differences between dialog,并直接进入 Engineering Change Order dialog。
如果所有更新都将以同一方向应用,请使用 Design » Update command。
如果 PCB 文档当前已与源文档同步,将弹出一个对话框,提示未检测到差异。相反,在更新原理图时,也可能出现这样的情况:检测到的差异中有一些或全部无法通过自动生成的 ECO 来解决。在这种情况下,系统会提供选项,让你通过
Differences between dialog 查看这些差异。虽然可能无法按原理图方向进行修改,但你可能需要更新 PCB(例如删除某个对象或实体)。在筛查这些差异后,如果你能够解决其中一部分或全部差异,就可以生成 ECO。如果仍存在无法通过该对话框解决的差异,则需要返回设计中先解决这些问题,然后再运行一次比较。
解决差异 - 应用 ECO
每一项差异都通过应用工程变更指令(Engineering Change Order,ECO)来解决。ECO 会在 Engineering Change Order 对话框中列出,每行一个 ECO,并且每个 ECO 都有自己的 Enable 复选框。
使用 Engineering Change Order 对话框时:
-
对话框打开时默认启用所有更改;将你希望暂时搁置的更改禁用即可。该对话框支持多选——使用右键快捷菜单可切换所选 ECO 的启用状态。
-
使用右键 Cross Probe 命令检查该 ECO 影响到的对象。
-
使用 Validate Changes 按钮检查这些更改是否可以执行。ECO 通常会失败是因为某个对象不可用——例如,指定的 PCB 封装在 Available File-based Libraries 中不存在,或指定的焊盘在该封装上不存在。
-
如果某个 ECO 所需的对象在开始时不存在,但在处理当前 ECO 的过程中被添加了,那么该 ECO 也可能失败。在这种情况下,再次运行 Update 命令以完成该 ECO。

每一项设计更改都会以一个 ECO 的形式呈现,请启用所需的那些。
Options and Controls of the Engineering Change Order Dialog
该对话框分为两个主要区域:Modifications 和 Status。
Modifications
该区域列出为实现同步所需的全部修改。修改会按修改类型分组,这些类型在 Project Options - ECO Generation dialog 中列出并启用。组级条目会反映该类型修改的数量。该区域中的每一项具体修改会按以下内容列出:
-
Enable - 此选项决定在执行 ECO 时是否包含该修改。直接单击复选框可在启用/包含(选中)与禁用/排除(未选中)之间切换。你也可以使用空格键切换 Enable 复选框的开/关状态。
-
Action - 要执行的具体操作。操作类型取决于需要执行的 ECO 类型。
-
Affected Object - 该操作影响的对象。
-
Affected Document - 将执行该操作的文档。
可使用标准多选方式(Ctrl+click、Shift+click)在列表中选择多个修改项。
如果在
Project Options 对话框的
ECO Generation tab 中,将某个修改类型的
Mode 设置为
Ignore Differences,则任何导致该修改类型动作的设计更新都不会传递到
Engineering Change Order dialog。
右键菜单
默认情况下,所有修改都启用并会在执行 ECO 时被包含。可按需逐项启用/禁用每个修改条目,或使用右键菜单中的以下命令来批量更改多个修改的启用状态:
-
Validate Changes - 单击以对已启用、将被包含在 ECO 中的修改运行验证检查。验证结果将显示在对话框 Status 区域下的 Check 列中。
-
Execute Changes - 单击以执行 ECO。执行结果将显示在对话框 Status 区域下的 Done 列中。请记住,只有通过验证阶段的更改才会被执行。
-
Create Report - 单击以为 ECO 中包含的修改生成报告。报告将加载到 Report Preview 对话框中。
-
Cross Probe - 单击以 Cross Probe 到相关原理图与 PCB 文档中参与该修改动作的目标对象与参考对象。
-
Expand All - 单击以展开列表中所有修改的视图。
-
Contract All - 单击以收起列表中所有修改的视图。
你也可以使用条目左侧的 +/- 控件来展开或收起单个修改分组。
-
Enable All - 用于启用所有修改。
-
Disable All - 用于禁用所有修改。
-
Enable Selected - 用于启用所有选中的修改。
-
Disable Selected - 用于禁用所有选中的修改。
-
Enable all of same Kind - 用于启用与当前聚焦修改项同一修改类型的所有修改。
-
Disable all of same Kind - 用于禁用与当前聚焦修改项同一修改类型的所有修改。
-
Invert Selection - 用于快速选择列表中当前未选中的所有修改,并取消选择已选中的修改。
Status
该区域为每个已启用的修改显示以下状态信息:
-
Check - 该字段显示对该修改运行验证检查的结果。绿色对勾(
)表示支持该拟议更改,并会在执行 ECO 时实施。红色叉号(
)表示该拟议更改无效,执行 ECO 时不会实施。
-
Done - 该字段显示该修改的执行结果。绿色对勾(
)表示有效修改已成功执行。
-
Message - 如果修改未通过验证阶段,该字段中会出现一条条目(同时也会出现在 Messages 面板中),用于指示失败原因。
你可以在任何阶段关闭对话框,以便调查某些更改失败的原因,并进行必要的设计修改。
Additional Controls
以下控件位于对话框底部,同时也可在右键菜单中使用:
-
Validate Changes - 单击以对已启用、将被包含在 ECO 中的修改运行验证检查。验证结果将显示在对话框 Status 区域中的 Check 列。
在执行之前验证拟议的修改动作非常重要,这将测试你所提出更改的逻辑是否成立。
-
Execute Changes - 单击以执行 ECO 并应用其中包含的有效更改。执行结果将显示在对话框 Status 区域中的 Done 列。请记住,只有通过验证阶段的更改才会被执行。
-
Report Changes - 单击以为 ECO 中包含的修改生成报告。报告将加载到 Report Preview 对话框中。
请注意,报告会列出所有修改条目,而不管它们是否成功通过验证并执行。
-
Only Show Errors - 勾选此选项以仅显示工程变更指令错误。已验证的更改将不会显示。仅显示错误列表可帮助你快速审查并对设计进行必要修改,从而使生成的 ECO 能够完全通过验证。
与比较器相关的消息将显示在 Messages 面板中。
理解原理图与 PCB 之间的链接关系
通过唯一标识符进行元件匹配
每个原理图元件都通过唯一标识符(UID)与其 PCB 元件相链接。UID 在原理图元件放置到图纸上时分配,并在设计传输到 PCB 编辑器时将该值传递给 PCB 元件。当使用 Synchronizer 首次在原理图源文档与空白 PCB 设计文档之间传输元件信息时,所有元件都会通过唯一 ID 自动建立链接——每个原理图元件的 ID 信息会被分配给对应的元件封装。
该方案对于简单设计已足够,但无法支持多通道设计。在多通道设计中,同一个原理图元件会在每个物理通道中重复出现,这意味着重复的 PCB 元件会拥有相同的 UID。为解决这一点,PCB 元件的 UID 通过将父级 Sheet Symbol 的 UID 与原理图元件的 UID 组合来创建。根据多通道设计的创建方式不同,PCB UID 的语法会略有变化。
对于通过放置多个 Sheet Symbol(且它们都引用同一张原理图页)创建的多通道设计,每个 Sheet Symbol 都可以提供唯一 ID,因此 PCB UID 的格式为:
\SheetSymbolUID\SchComponentUID
对于使用 Repeat 关键字创建的多通道设计,仅有 1 个 Sheet Symbol UID 可用,因此 PCB UID 还会包含 ChannelIndex 值,格式为:
\ChannelIndex+SheetSymbolUID\SchComponentUID
当元件未建立链接时
使用 UID 来匹配原理图与 PCB 元件的优势在于:即使位号变得不同步(例如多次执行 PCB 重新标注),也不会有原理图与 PCB 变得无法再同步的风险。
如果原理图或 PCB 中存在某个元件,而在另一个编辑器中没有对应的匹配元件(相同 UID),将会发生以下情况:
-
如果多出的元件只存在于源编辑器中,将生成一条用于在目标编辑器中添加该元件的 ECO。
-
如果多出的元件只存在于目标编辑器中,将生成一条用于移除该多余元件的 ECO。
-
当两个编辑器中都存在未匹配的元件时,软件需要指示如何处理它们,因此会打开 Failed to Match Unique Identifiers 对话框。
The Failed to Match Unique Identifiers dialog
对话框按钮提供以下选项:
-
Automatically Create Component Links - 如果你确定这些未匹配元件其实已经具有相同的位号,请单击此按钮。软件将使用元件位号为这些额外元件分配匹配的 UID。对于能够按位号匹配的元件,任何其他属性差异(例如参数不一致)都会导致生成 ECO。如果存在无法按位号匹配的元件,则会生成添加/移除它们的 ECO(源编辑器中的额外元件将被添加,目标编辑器中的额外元件将被移除)。
-
Manual Component Links - 如果你知道存在可匹配的元件,但不清楚它们位号的状态,请单击此按钮。将打开 Edit Component Links 对话框(如下所述),你可以手动选择每个源与目标元件,并将它们转移到已匹配元件列表中,为其分配匹配的 UID。随后将生成 ECO 以同步位号(以及任何其他不匹配的元件属性)。
建议使用唯一 ID 匹配所有元件,这样无论在原理图还是 PCB 文档中进行位号标注,都可以确信在任何阶段仍能重新同步文档。即使元件未通过唯一 ID 匹配,文档仍可同步,但此时系统只会提示你按位号匹配元件——不会考虑注释(Comment)和封装(Footprint),因此可能会导致部分元件匹配错误。
-
Cancel - 单击此按钮将生成 ECO:把源编辑器中存在的额外元件添加到目标编辑器,并从目标编辑器中移除额外元件。
手动链接元件
原理图元件与其对应 PCB 元件封装之间的链接状态,可随时在 Edit Component Links 对话框中检查与管理(PCB 编辑器,Projects » Component Links 命令)。
之所以从 PCB 文档内执行手动链接,是因为只需要将唯一 ID 信息更新到 PCB 元件封装中——原理图侧已经具备该信息。

Edit Component Links 对话框用于检测并解决 UID 不匹配问题,它从 PCB 编辑器运行。
对话框功能概述:
-
未匹配的元件显示在左侧两个 Un-Matched Components 列中,具有相同 UID 的元件显示在对话框右侧的 Matched Components 区域中。
-
对话框中间的箭头按钮用于手动匹配(或取消匹配)所选元件,或取消当前所有已匹配元件的匹配。
-
对话框底部的 Add Pairs Matched By 按钮及其选项用于扫描当前未匹配元件列表,并尝试按启用的属性(位号 Designator、注释 Comment、封装 Footprint)进行匹配。
-
单击 Perform Update 按钮后,每个新匹配的 PCB 元件将被赋予其对应原理图元件的 UID。 如果你将 Matched 区域中的任何条目移回 Unmatched 区域,将出现确认对话框,提示继续操作会破坏现有元件关联。单击 Yes 将继续更新,并弹出信息对话框,总结在 PCB 文档中被修改的元件链接情况。Matched 区域中的新条目会汇总为 Link Modified,而你之前已链接但现在取消匹配的条目会汇总为 Link Removed。
-
使用此对话框完成手动元件链接后,建议检查同步状态(运行 Design » Update 命令)。
-
在设计过程的任何阶段都可以使用该对话框查看元件之间的链接关系,以确认原理图源文档中的元件确实已正确匹配到 PCB 设计中对应的元件封装。
-
可随时通过将已链接元件移回 Edit Component Links 对话框的未匹配区域来移除唯一 ID。移除元件链接只会从对应的 PCB 封装中移除唯一 ID。原理图元件仍保留唯一 ID,除非在原理图层面生成了新的 ID(使用与重置唯一 ID 相关的命令)。
-
源原理图文档中的每个参数定义也会自动分配一个唯一 ID。这用于那些作为设计规则指令添加的参数。将设计传输到 PCB 文档时,任何已定义的规则参数都会用于在 PCB 中生成相应的设计规则。这些生成的规则将被赋予相同的唯一 ID,从而允许在原理图或 PCB 中修改规则约束,并在执行同步时将更改推送到另一侧。
-
如果你复制/粘贴或剪切/粘贴一个原理图元件,它的 UID 会自动更新——这确保每个元件始终具有唯一标识符。
-
如果你正在重组原理图(且已传输到 PCB 编辑器),并需要将元件移动到另一张图纸,请不要剪切/粘贴它们,而应选中它们并运行 Edit » Refactor » Move Selected Sub-circuit to Different Sheet 命令。
匹配网络与类
网络(net)和类(class)都具有父对象(该网络或类本身)以及子对象(该网络或类的成员)。要匹配它们,需要采用不同于元件链接所用 UID 机制的方法,以支持对以下内容的更改:父对象;子对象;或父对象与其子对象同时更改。例如,仅仅在原理图中更改一个网络名称,不应要求先从 PCB 中移除该网络及其所有子引脚,再添加新命名的网络,最后再把所有子引脚添加到新网络中。
为此,软件包含独立的匹配算法:既可按成员来匹配网络与类,也可按名称来匹配。匹配过程在 Options for Project 对话框的 Comparator 选项卡中的 Object Matching Criteria 区域进行配置。

默认设置为先匹配成员,然后按对象类型名称匹配。
这些对象类型的匹配按如下方式处理:
-
在设计同步期间,默认行为是先按成员尝试匹配,具体遵循 Min Match % 与 Min Match Member 设置。
-
如果成员匹配失败,软件将尝试按名称匹配(如果启用了 Use Name Matching 选项)。
-
如果上述任一匹配过程成功,你将进入 Engineering Change Order 对话框。
-
如果两种匹配技术都失败(或 Use Name Matching 选项设置为
Never),将打开 Match Manually 对话框。
-
在 Match Manually 对话框中单击 No 将跳过用户匹配过程,直接进入 Engineering Change Order 对话框。由于你未尝试匹配任何未匹配对象,软件会认为参考对象与目标对象互不相关,因此会生成 ECO:从板上移除 Unmatched Reference Objects,并将 Unmatched Target Objects 作为新对象添加。
-
如果你在对话框中单击 Yes 以手动匹配,将打开 Match 对话框,如下所示(对话框标题会随未匹配对象类型而变化)。
Match 对话框用于手动匹配你确定应当匹配的对象。如果不确定,请保持右侧为空并单击 Continue。
Match Dialog 的选项与控件
-
Unmatched <Object>
-
Unmatched Reference Objects - 列出未匹配对象。使用展开/折叠控件打开/关闭列表。
-
Unmatched Target Objects - 列出目标对象。使用展开/折叠控件打开/关闭列表。
-
- 单击以匹配所选参考对象与目标对象,并将所选对象从 Unmatched 区域移动到 Matched Pairs 区域。
-
- 单击将所选对象从 Matched Pairs 区域移动到 Unmatched 区域。此操作会使被移动对象变为未匹配。
-
- 单击将所有对象从 Matched Pairs 区域移动到 Unmatched 区域。此操作会使被移动对象变为未匹配。
-
Matched Pairs - 列出现在已匹配的 Reference Object 和 Target Object 。
-
Continue - 单击接受匹配更新并打开 Engineering Change Order 对话框。
-
在此对话框中,在 Unmatched Reference Objects 与 Unmatched Target Objects 中选择你希望匹配的对象,然后将它们转移到对话框的 Matched Pairs 区域。对于这些对象,软件将生成 ECO 来更新名称使其一致,并生成 ECO 来移除/添加成员,使成员也一致。
- 如果你不确定,就不必手动匹配对象。对于任何未匹配的对象,软件会认为参考对象与目标对象互不相关,因此会生成 ECO,将板上的 Unmatched Reference Objects 移除,并将 Unmatched Target Objects 作为新对象添加进去。
-
当你已经匹配了那些你确定确实匹配的对象后,点击 Continue 以打开 Engineering Change Order 对话框。
-
如果你点击 Cancel,更新过程将终止。
匹配设计规则
在原理图中定义的设计规则也必须链接到 PCB 上对应的规则。如果没有链接机制,你将无法在原理图中更新规则并将这些更改传递到 PCB。UID 用于将原理图设计规则链接到 PCB 设计规则。
UID 会在原理图中保存规则定义的 Parameter Set 内自动分配,并在设计同步期间传输到 PCB。
设计规则使用 UID 将原理图中的设计规则定义与 PCB 设计规则进行匹配。
通常你不需要手动管理规则的匹配,除非你在 PCB 编辑器的 PCB Rules and Constraints 对话框中手动编辑过 UID。如果 UID 不匹配,软件会针对任何在 PCB 中没有匹配规则的原理图规则,在 PCB 中添加一条新规则;并移除任何在原理图中没有匹配规则的 PCB 设计规则。
你可以在任一编辑器中自由更新元件,并将这些更改同步到另一个编辑器。对网络、类和规则所做的更改只能从原理图更新到 PCB。