第 37 章 设计比较
本章节讨论如何比较两个版本的设计。将解释如何生成差异报告以及可用于更新旧设计以匹配新设计的文件。
设计比较 ಠ_ಠ
您可以比较两个版本的设计,并创建将原始设计更新为新设计所需的文件。在比较原理图与 PCB 布局之前,请通过生成 SailWind Logic 或其他原理图工具中的网表来创建 PADS 格式 ASCII 网表文件( .asc )。
当您将更新后的原理图与原始 PCB 布局进行比较,然后将 PCB 布局更新以匹配原理图时,此过程称为正向布局或正向标注。同样,当您将更新后的 PCB 布局与原始原理图进行比较,然后将原理图更新以匹配 PCB 布局时,此过程称为反向布局或反向标注。
如果 SailWind Layout 和原理图工具在同一台计算机上,您可以使用更方便的自动化工具来比较和更新设计版本。如果 SailWind Layout 和原理图工具不在同一台计算机上,您可以使用 SailWind Layout 来比较两个版本的设计。更多信息请参阅:
- 对于 SailWind Logic,请参阅"使用 SailWind Logic"。
设计比较可以处理未使用的管脚网络。未使用的管脚网络包含所有未分配网络的元件管脚,并将它们分组到一个大网络中。
设计比较不会执行以下任何操作:
-
将已从逻辑网络中移除的管脚添加到未使用的管脚网络。
-
使用重用定义;物理设计重用中的实际元素将在比较期间使用。
在比较过程中,假设新设计包含最新的属性辞典。如果新设计中某个属性未进行 ECO 注册,则只有在清除比较/ECO 工具对话框比较选项卡上"仅比较 ECO 注册元件"复选框时,该属性才会被反向标注。如果新设计中某个属性已进行 ECO 注册,则该属性会被反向标注,旧设计中的值会被更新,但旧设计中该属性的 ECO 注册不会被更新。
比较两个版本的设计
要比较两个版本的设计,可以生成新的.eco文件、差异报告、用于反向标注到原理图的 ASCII 文件,或全部生成。
作为替代方案,您可以使用 SailWind Layout 中的 ECOGEN 命令来完成此操作。
您可以比较以下任何形式的设计版本:
-
当前在 SailWind Layout 中打开的 PCB 设计
-
表示原理图或 PCB 布局的 PADS 格式 ASCII 网表文件(
.asc) -
PCB 布局文件( .pcb )
如果您尝试在 SailWind Layout 和 SailWind Logic 之间正向或反向标注设计更改,应在进行更改时将其记录在.eco文件中。这样可以获得最佳的反向标注结果。更多信息,请参阅"记录 ECO 更改"或"从 SailWind Layout 反向标注到 SailWind Logic"。
有关这些方法差异的更多详细信息,请参阅"记录与生成的 ECO 文件"。
如果 SailWind Layout 和原理图工具在同一台计算机上,您可以使用 SailWind Logic 中的 SailWind Layout Link 来创建 ECO 文件并正向或反向标注原理图。更多信息,请参阅"使用 SailWind Logic"。
🏃♂️步骤
-
点击👆工具 > 比较/ECO。
-
在比较/ECO 对话框的文档选项卡上,按以下方式选择👉要比较的设计:
-
如果旧设计在内存中,并且您想将其与较新的
.asc或 .pcb 文件进行比较,请使用以下设置:补充图
-
如果新设计在内存中,并且您想将其与较旧的
.asc或 .pcb 文件进行比较,请使用以下设置:补充图
-
如果两个设计都不在内存中,并且您想将较旧的
.asc或 .pcb 文件与较新的.asc或 .pcb 文件进行比较,请使用以下设置:补充图
-
-
在输出选项区域,选择👉要生成的文件。
-
在比较和更新选项卡上设置适当的选项。
-
点击👆运行比较设计并创建您指定的文件。(当您在输出选项区域选择👉选项时,运行按钮变为可用。)
-
点击👆进程状态对话框中的显示报告按钮查看生成的文件。
-
点击👆关闭按钮。
👀结果
比较过程中出现的任何消息或错误都将写入Layout.err,该文件存储在\SailWind Projects文件夹中。
如果原始设计在内存中并且您在更新选项卡上选择👉了更新原始设计,则在比较完成后更新将自动导入到设计中。要确认更新后的设计与新设计匹配,请再次运行比较,并仅选择👉生成差异报告复选框。如果仍然存在差异,请使用 ECO 工具栏命令更正设计。
如果您没有选择👉更新原始设计来自动更新原始设计,请点击👆主页>导出导入.eco文件并更新设计。
验证完成后,点击👆工具 > 验证设计检查设计完整性。
如果 ECO 文件中的命令在更新后的原始设计中添加了任何位于原点的元件,请记住放置这些元件并布线任何新未布线的管脚对。
使用 ECOGEN 比较设计
对设计进行更改后,您可以使用 ECOGEN 命令将新版本的设计与原始设计进行比较,并创建将原始设计更新为新设计所需的文件。
作为替代方案,您可以使用 SailWind Layout 中的"比较/ECO 工具对话框"来完成此操作。
最佳实践是在进行更改时将其记录在.eco文件中。这样可以获得最佳的反向标注结果。更多信息,请参阅"记录 ECO 更改"。有关这些方法差异的更多信息,请参阅"记录与生成的 ECO 文件"。
如果要比较原理图与 PCB 布局,请在比较设计之前从原理图工具导出 PADS 格式 ASCII 网表文件( .asc )。
🙊限制
-
ECOGEN 始终比较元件和封装规则以及扇出和焊盘入口规则,即使您没有指定-l 开关。
-
ECOGEN 不会为层生成更改信息。对于条件规则等依赖于层的规则,请确保要比较的设计具有相同的层数。
-
ECOGEN 忽略虚拟过孔。
-
ECOGEN 忽略重用定义,并使用物理设计重用中的实际元素进行比较。
😎前提
如果要比较原理图与 PCB 布局,请在比较设计之前从原理图工具导出 PADS 格式 ASCII 网表文件( .asc )。
🏃♂️步骤
-
打开 Windows 命令提示符。
点击👆开始> Windows 附件 > Windows 系统 > 命令提示符。
-
切换到包含ecogen.exe文件的文件夹,例如 C:<install_folder><version> \Programs。
-
通过以下两种方式之一运行 ECOGEN:
- 使用以下格式输入📝 ecogen 命令:
例如:
在此示例中,ECOGEN:
-
比较原始设计(更改前)logic.asc与新设计pcb.asc
-
创建 ECO 文件design.eco,可用于更新原始设计layout.asc
-
比较网络的清除规则
-
指定 NOT_CONNECTED 作为 SPECCTRA 布线产生的未使用管脚网络。
在命令行中:
-
必须按给定顺序输入📝 newDesign、originalDesign 和 ecoFile 参数。
-
如果参数包含空格,请用双引号" "将参数括起来。
-
输入📝 ECOGEN@<command_file>,其中
是包含所有参数的文件路径名。
示例
下表包含参数用法。方括号[]括起可选参数。
表 122. 参数用法
差异报告 ಠ_ಠ
差异报告(Layout.rep)报告两个设计文件比较的结果。(您使用工具 > 比较/ECO或 Windows 命令提示符中的 ecogen 命令执行比较。)例如,您可以将新设计(有更改的设计)与原始设计(更改前的设计)进行比较。差异报告列出了新设计与原始设计相比发现的更改。
元件差异
在单独的子部分中列出元件类型信息和元件放置信息。
元件类型信息子部分列出了旧设计和新设计的参考指示符和元件类型。仅存在于旧设计中的元件在新设计列中列为
元件放置信息子部分列出了每个元件的 x/y 坐标、胶合状态和镜像(翻转)状态的差异。仅对同时存在于旧设计和新设计中的元件报告元件放置信息。
网络差异
列出不存在的网络名称。列出匹配但名称不同的网络,包括在旧设计中已在新设计中合并的网络。网络分割操作显示为管脚差异。网络按字母顺序列在旧设计列下,除非多个网络合并时,它们会连续列出。旧设计中不存在的网络列在本节末尾。
交换门差异
列出旧设计中与新设计中的门交换的任何门。报告列出设计中父元件的参考指示符,后跟门中的管脚。
交换管脚差异
列出旧设计中与新设计中的管脚交换的任何交换管脚。此列表提供设计中元件的参考指示符,后跟交换的管脚。
旧设计中不匹配的网络管脚
列出旧设计中缺失或连接到新设计中其他网络的任何连接管脚。这些是在 ECO 过程中从网络中删除的管脚。此列表提供旧设计中的网络名称,后跟网络中不匹配的管脚。如果新设计中不存在网络,则列出网络中的所有管脚。
新设计中不匹配的网络管脚
列出新设计中缺失或连接到旧设计中其他网络的任何连接管脚。这些是在 ECO 过程中添加到网络中的管脚。此列表提供新设计中的网络名称,后跟网络中不匹配的管脚。如果旧设计中不存在网络,则列出网络中的所有管脚。
属性差异
在每个对象下列出以下标题:属性名称、旧值和新值。仅对同时存在于旧设计和新设计中的对象包含属性差异。如果任一设计中缺少属性,则值列为<no attr>。如果属性存在但没有值,则列为<no value>。
要生成包含设计中机械(非电气)元件的报告,请清除比较/ECO 工具对话框比较选项卡上的"仅比较 ECO 注册元件"复选框。
旧设计中不匹配的网络管脚对
列出旧设计中缺失、连接到其他网络或连接到新设计中不同位置的相同调度网络的任何管脚对。这些将是 ECO 过程中将从网络中删除的管脚对。
报告列出旧设计中的网络名称,后跟网络中不匹配的管脚对。如果新设计中缺少网络,则列出网络中的所有管脚对。
新设计中不匹配的网络管脚对
列出新设计中缺失、连接到其他网络或连接到旧设计中不同位置的相同调度网络的任何连接管脚对。这些将是 ECO 过程中将添加到网络中的管脚对。
报告列出新设计中的网络名称,后跟网络中不匹配的管脚对。如果旧设计中缺少网络,则列出网络中的所有管脚对。
规则差异
本节报告两个设计之间设计规则的差异。本节将具有规则差异的每个对象列为子标题。子标题有三列:规则名称、旧值和新值。(规则差异部分标题显示规则值的显示单位。)
每个对象类型的子标题包括:
-
对象类型
-
原始设计中的对象名称
-
新设计中的对象名称(如果名称不同)
-
规则类型
例如:
此示例显示了 CLASS1 类的布线规则集更改。更改将 CLASS1 重命名为 MYCLS,并包括管脚共享和有效层规则的更改。没有其他布线规则被更改。
网络类差异
本节列出以下网络类名称:
-
在一个设计或另一个设计中不存在。(原始设计中不存在的类列在本节末尾。)
-
匹配但名称不同
此示例显示在新设计中:
-
CLASS1 网络类被重命名为 MYCLASS。
-
CLASS2 网络类被移除。
-
NEWCLS 网络类被添加。
已移除的类网络
本节报告原始设计中但在新设计中被移除的网络。(原始设计中的网络类包含新设计中未包含或包含在不同网络类中的网络。)
本节列出:
-
原始设计中从中移除网络的每个网络类以及这些移除网络的名称
-
如果新设计中不存在网络类,则列出网络类中的所有网络
例如:
此示例显示:
-
原始设计中 CLASS1 网络类中的网络$$$1879、$$$1906、$$$1928 和$$$1920 在新设计的该网络类中缺失。
-
原始设计中 CLSMESH 类中的网络 GND 和 VCC 在新设计的该网络类中缺失。
如果使用 ECO 操作更新原始设计,该操作将从原始设计中的网络类中删除这些网络。
已添加的类网络
本节报告原始设计中不存在但在新设计中添加的网络。(新设计中的网络类包含原始设计中未包含或包含在不同网络类中的网络。)
本节列出:
-
新设计中添加了网络的每个网络类以及这些添加网络的名称
-
如果网络类是新的(原始设计中不存在),则列出网络类中的所有网络
例如:
添加的类网络 CLASS1 ANDROID BAJOR SPOT DATA00 DATA01 CLSMESH ZORG GND2
此示例显示在新设计中:
-
ANDROID、BAJOR、SPOT、DATA00 和 DATA01 网络被添加到 CLASS1。
-
ZORG 和 GND2 网络被添加到 CLSMESH 类。
管脚对组差异
本节列出以下管脚对组:
-
在一个设计或另一个设计中不存在。原始设计中不存在的管脚对组列在本节末尾。
-
匹配但名称不同。
例如:
此示例显示在新(更改)设计中:
-
GROUP1 管脚对组被移除。
-
GROUP2 管脚对组被重命名为 GROUPB。
-
NEWGRP 管脚对组被添加。
从组中移除的管脚对
本节报告原始设计中但在新设计中被移除的管脚对。(原始设计中的管脚对组包含新设计中未包含或包含在不同组中的管脚对。)
本节列出:
-
原始设计中从中移除管脚对的每个组以及这些移除管脚对的名称
-
如果新设计中不存在组,则列出组中的所有管脚对
例如:
此示例显示在新(更改)设计中:
-
五个管脚对从 GROUP1 中移除。
-
管脚对 R102.1-C2.2 从 GLMESH 组中移除。
添加到组中的管脚对
本节报告新设计中但原始设计中不存在的管脚对。(新设计中的管脚对组包含原始设计中未包含或包含在不同组中的管脚对。)ECO 操作将添加这些管脚对。
本节列出:
-
新设计中添加了管脚对的每个组以及这些添加管脚对的名称。
-
如果组是新的(原始设计中不存在),则列出组中的所有管脚对。
例如:
此示例显示在新(更改)设计中:
-
两个管脚对被添加到 G 组。
-
管脚对 R29.2-U23.17 被添加到 DASL 组。
