检查设计差异

Old Content - visit altium.com/documentation

同步功能的核心是比较器,没有比较器就无法检测出各设计文件之间存在的差异。比较器能够对比几乎所有类型文件之间的元件信息和互连信 息。以下给出了部分文件类型对比:

  • 项目设计层次与PCB之间的对比
  • 原理图与原理图的对比
  • PCB与PCB的对比
  • 网络表与PCB的对比
  • 网络表与网络表的对比

运行比较命令后,即可调出比较器。相关命令有Show Differences或Show Physical Differences等,可从Project菜单中访问。当直接从原理图项目更新到PCB时(反之亦然),只要访问Design菜单中的 Update/Import命令即可进行对比(见“原理图PCB直接同步”章节)。

进行对比时,支持的网络表格式为Protel、Tango。

设置比较器

作为使用者,您可全面控制比较器检测出的各类差异。在项目选项对话框(Project » Project Options)的Comparator标签页中可以访问比较器的各种控件,所有设置均作为项目的一部分予以保存。
对比类型分为以下四类:

  • Differences associated with Components(元 件相关差异):元件的对比(例如检测原理图和PCB文件中共有的、但标号不同的元件)
  • Differences associated with Nets(网 络相关差异):对网络(连通性)的对比(例如检测原理图或PCB中存在的额外网络)
  • Differences associated with Parameters(参 数相关差异):对参数的对比(例如检测原理图和PCB文件中共有的、具有同一参数但参数值不同的对象)
  • Differences associated with Physical(物 理相关差异):对同一原理图的两个版本或PCB文件所作的物理对比(例如在某个版本的对比文件中对多余的PCB对象进行检测)。

利用可用控件按要求配置比较器。对于每一种比较类型,均可选择将检测到的任何差异添加到比较器创建的最终差异列表中(Find Differences),或者忽略检测到的差异从而不在列表中显示(Ignore Differences)。例如,当设计不具有多通道性质时,可将对比类型设置为“忽略”。这种情况下,可将与通道相关的对比类型(变更的通道类名称、有 额外元件的通道类、额外通道类)设置为忽略。
还可通过控件确定在对比文件之间匹配对象时的比较标准。这适用于网络、网络类、元件类,允许用户精确控制这些对象类型的对比过程。

运行比较器

为完全控制同步过程,需要查看比较器检测到的差异以及生成的差异列表,尤其是当希望控制哪些地方需要更新以及更新方向时,就更要采用这 种做法以确保达到同步。要查看差异列表,应利用Project菜单中的Show Differences命令调出比较器。

选择文件

运行Show Differences(显示差异)命令即可访问Choose Documents To Compare(选择对比文件)对话框,该对话框用于选择对比文件。默认情况下,该对话框以简单模式打开,便于快速选择PCB目标文件,然后与项目的源文 件层级进行对比。
启用Advanced选项后,即可选择不同的文件组合按要求进行对比。例如,需要利用第三方原理图编辑器生成的网络表创建PCB。在Altium Designer中将网络表与目标(空白)PCB文件进行对比即可轻松完成此项工作。
比较项目源文件层级和目标PCB时,将在比较前重新编译源文件。

通过唯一ID链接元件

在原理图上放置某一元件时,会自动分配一个唯一ID。执行比较前,Altium Designer会扫描原理图源文件和目标PCB文件中的链接元件。链接元件是指之前相互同步而且共享唯一ID的元件。如果文件之间的元件不同步,则会弹 出一个对话框进行提醒,这时可通过标号自动匹配元件,也可手动匹配。手动匹配时,只能利用Edit Component Links对话框 (Project » Component Links) 从PCB文件中进行配对(图1)。

当利用同步器在原理图源文件和空白PCB设计文件之间首次传递元件信息时,各元件将通过唯一ID自动链接,即将每个原理图元件的ID信 息分配给相应的元件封装。

图1: 通过手动链接元件分配唯一ID

只能从PCB文件中手动链接各元件的原因是,只有PCB元件封装才需要利用已经出现在原理图中的唯一ID信息予以更新。在设计过程中的 任何阶段,均可利用对话框查看各元件之间的链接,确保原理图源文件中的元件与PCB设计中相应的元件封装正确配对。
无 论何时,只要将已经链接好的元件移回Edit Component Links对话框的未配对区域,即可取消唯一ID。取消元件链接时,只从相应PCB封装中取消唯一ID。原理图元件仍然保留唯一ID,除非有新的ID生成 (在原理图或元件上执行唯一ID重设相关的命令即可生成新的ID)。
用唯一ID将各元件配对是个好主意,这样便可以对原理图或PCB文件执行元件标注,并确保任何时候文件都可以同步。即便元件没有通过唯一ID配对,仍然可 以使文件重新同步。这种情况下,只能通过标号匹配各元件。此时不考虑注释和封装,因此部分元件的配对可能会出错。
与 此类似,在原理图源文件上,会自动给每个参数定义分配一个唯一ID。这主要用于被设置为设计规则的参数。将设计转换为PCB文件时,定义的任何规则参数都 将在PCB中生成相关设计规则。生成的各规则将被赋予相同的唯一ID,这样即可在原理图或PCB中更改规则的约束条件,并通过同步操作进行更改。

更新方向的确定

源项目文件与目标PCB之间的各元件均链接好后,接下来执行对比操作。比较器将遵循项目选项中定义的设置,如果检测到差异并且该对比类 型没有设为忽 略,那么检测到的差异将会列于Differences对话框(图2)中,而且还会在Messages面板中以条目的形式加以标记。各差异按对比类型予以分 类。

图2: 利用Differences对话框查看各差异以及设置更新操作

同步器可双向操作。这意味着在同一工程变更指令中可以同时更新两个文档。为使设计同步,现在的目标就是确定是否对每项差异执行更新以及 变更方向的确定,即指定需要更新的文件以便消除差异。

即使检测到了差异,您也可不必对其执行操作。生成Differences对话框时,会为每个条目分配No Change(无变更)的默认更新选项。Altium Designer只会将指定的条目执行同步。如果想要一次执行所有、的变更,只需要在对话框的任何位置右击,然后从一系列命令中选择合适的命令,命令执行 范围包括针对所有的差异,所有选中的差异,或某种特定对比类型的差异。另外,也可以点击Update列后单独设置。

对于决定执行的每项差异,对话框的Change Order区域会列出需要执行的操作、受操作影响的对象以及操作所作用的文件。用于编译之后的工程变更指令的正是此信息。该工程变更指令将用于执行更新。 该区域中列出的一般操作有:

  • Remove - 在包含引起差异的对象的文档上实施更新;该对象将被移除。
  • Add - 在不包含引起差异的对象的文档上实施更新;将新增该对象。
  • Update - 两份文档包含相同的对象,但这一对象存在差异;对象的变更取决于选定的方向。
    图3所示为做出更新决策后的Differences对话框示例。

图3: 更新决策示例(为了解决检测到的差异)

点击Report Differences(报告差异)按钮即可打印或输出差异报告,包括比较器发现的差异、您做出的更新决策以及生成的工程变更指令。

差异探索

如果希望在生成工程变更指令前进一步探索比较器发现的差异,请点击Explore Differences(探索差异)按钮。Differences对话框将关闭,然后转向主工作区,此时可以看见Differences面板。

图4: 利用Differences面板探索差异l

该面板以树状结构显示文件之间发现的差异。顶层文件夹显示的是检测到的差异的总数。然后为Differences对话框中出现的每个具 体对比类型创 建子文件夹。每个子文件夹中会列出发现的具体差异,还会进一步细分为对比文件中引起各差异的对象。利用此面板,可交互探查到源文件上引起差异的对象。

采用这种方式探索差异会导致您在Differences对话框中做出的任何更新决策丢失,所以需要重新打开该对话框,按要求再次定义更 新。另外,也 可从Differences对话框内直接检查某一对象。然后在该对话框的Differences区域双击该对象条目。由于该Differences对话框 依然为打开状态,所以最好打开源文件和目标文件,并将该对话框放置在可见位置。

You are reporting an issue with the following selected text and/or image within the active document: