在设计中交换引脚、差分对和器件

概览

本文介绍了如何利用 Altium Designer 的引脚交换、差分对交换和子部件交换功能,让设计与布局更有效地协同,从而提高 PCB 的可布线性、降低布局复杂度,并有望降低电路板成本。文章说明了为何应根据设计意图定义交换设置、Altium Designer 如何在交换过程中处理网络重新分配,以及内置优化器如何帮助优化已完成部分布线的设计。此外,文章还逐一介绍了主要的交换类别,以及交换组、引脚组、部件组、序列 ID 和差分对组的配置,帮助您了解元件中哪些部分可以交换、哪些不能交换。如果您希望在保持逻辑关系和约束不变的同时提高布线效率,本文值得一读。请继续阅读,了解如何在实践中设置这些交换规则。

- 了解引脚交换、差分对交换和子部件交换之间的区别,以及各自的适用场景。
- 了解交换组、引脚组、部件组、差分对组和序列 ID 如何控制设计中允许的交换操作。
- 了解 Altium Designer 如何利用网络感知和优化功能来支持交换,即使面对已完成部分布线的网络和复杂的扇出布线也能应对。
使用 AI 深入了解:

能够对设计中的元件进行引脚交换,可以大幅降低布局的复杂程度,并有助于减少 PCB 的层数(从而降低成本)。遗憾的是,布局工程师可能并不具备合理配置引脚交换设置所需的全部信息,因为他们未必能完全了解设计者的意图。理想情况下,完成原理图设计的人员也应参与引脚交换数据的设置,以确保准确体现设计意图和约束。

引脚、差分对和子部件交换系统可与 Altium Designer 的交互式布线和 BGA 扇出布线功能协同工作。该功能不仅具备传统引脚交换系统的所有优势,还充分利用了 Altium Designer 对设计中网络分配的深入了解。在引脚交换操作期间,Altium Designer 会分析分配给所选引脚的网络,并动态重新分配该引脚及其连接铜箔上的网络。

借助这一功能,可以交换已部分布线的网络,以及复杂 BGA 器件中已预先完成多层扇出布线的网络。系统还可以利用 FPGA 差分引脚对的信息来交换差分对。

在 PCB 层面,该系统包含一个强大的自动优化器,可利用这些信息动态重新分配网络,以提高可布通性。例如,系统可以对已在多个层上完成扇出布线的多个器件重新建立连接。它会根据扇出布线层的匹配情况、最短曼哈顿布线距离以及各层最少交叉数来进行分配。

部分布线网络交换功能与自动优化器相结合,使您能够采用分层、迭代式布线策略:先对器件进行扇出布线,再布线至指定区域的边缘,最后将这些部分连接起来。您可以随时重新运行自动交换器,根据部分布线网络提供的最新信息再次进行优化。

交换分为三类:

  • 引脚交换
  • 差分对交换
  • 子部件交换。

配置交换组

对于每一类交换,swap groups 决定了元件内哪些对象可以交换,哪些不能交换。对于引脚交换,元件中具有相同 pin group 的引脚可以相互交换。同样,对于差分对交换和子部件交换,分别由 pair group 和 part group 的值决定某个差分对或子部件是否可以交换。元件的交换组在下图所示的 Configure Pin Swapping 对话框中配置。可通过以下方式访问该对话框:

  • 在 PCB 文档中,右键单击元件,然后选择 Component Actions » Configure Pin/Part Swapping。
  • 在原理图文档中,右键单击元件,然后选择 Part Actions » Configure Pin Swapping。
  • 在原理图文档中,单击 配置元件交换信息对话框 (Tools » Configure Pin Swapping)底部的 Configure Component 按钮。
  • 在 PCB 文档中,单击 Configure Swapping Information In Components 对话框 (Tools » Pin/Part Swapping » Configure)底部的 Configure Component 按钮。
  • 双击 Configure Swapping Information In Components 对话框中的任一元件。

引脚组

当元件中的某个引脚与另一个引脚属于同一个 pin group(具有相同的 pin group 值)时,这两个引脚便可相互交换。pin group 是元件中每个引脚的属性,其值可以是任意字母数字字符串。整个元件的 pin groups 在 配置引脚交换对话框中设置。

包含双路 5 输入正逻辑或非门元件的原理图。每个子部件的各输入引脚在逻辑上均等效,非常适合进行引脚交换。包含双路 5 输入正逻辑或非门元件的原理图。每个子部件的各输入引脚在逻辑上均等效,非常适合进行引脚交换。

以上图所示的原理图为例,其中包含 SNJ54S260 元件的两个 5 输入或非门。由于或非门的逻辑特性,INA0 至 INA4 各网络之间可相互交换。同样,INB0 至 INB4 各网络之间也可相互交换,但 INAx 网络不能与 INBx 网络交换。

或非门的交换约束在 Configure Pin Swapping 对话框中定义。将 INAx 网络分配到交换组 1,将 INBx 网络分配到交换组 2,可确保系统仅执行符合元件逻辑的交换。若某个引脚的引脚组值为空,则表示该引脚不可交换。

子部件组和序列 ID

一个元件通常包含多个功能等效的子部件。子部件交换允许交换这些等效子部件的网络。再次以上图中的元件为例,两个或非门具有完全相同的功能,因此网络(INA0、INA1、INA2、INA3、INA4、OUTA)可以与网络(INB0、INB1、INB2、INB3、INB4、OUTB)交换。

元件的子部件交换通过 part group 和 sequence ID 属性进行配置。这两个属性均为文本属性,可在 配置引脚交换对话框的 Part Swapping 选项卡中访问,如下图所示。下图还显示了与上图元件对应的 part group 和 sequence ID 设置。part group 表示哪些子部件能够相互交换。这两个子部件可以交换,因此在下图中,它们的 part groups 均设置为相同的值 1。

sequence ID 属性用于确定可交换子部件之间引脚的等效关系。在或非门示例中,必须确保在进行子部件交换时,输入引脚不会与输出引脚互换。下图中的 sequence ID 设置确保 OUTA 与 OUTB 交换、INA0 与 INB0 交换、INA1 与 INB1 交换,依此类推。

在配置引脚交换对话框中,为双路 5 输入或非门元件设置子部件交换组。在配置引脚交换对话框中,为双路 5 输入或非门元件设置子部件交换组。

请注意,子部件交换仅适用于设计为包含多个子部件的元件,因为此操作基于交换两个子部件之间的所有网络。

差分对组

差分对的交换由其 pair group 的值决定。可在 配置引脚交换对话框的 Differential Pair Swapping 选项卡中访问 pair group 属性。Differential Pair Swapping 选项卡提供三种模式,可通过左下角的下拉菜单进行设置。

  • Show All Pins – 系统将显示元件的所有引脚。

  • Show Pairs From Directives – 系统将使用原理图上放置的差分对指令,将差分对填入表格。

    在对话框中选择 Show All Pins 选项时,属于可交换差分对的所有引脚都必须分配到同一个差分对组。

在配置引脚交换对话框中设置差分对交换组。在配置引脚交换对话框中设置差分对交换组。

控制原理图中的交换方式

在 PCB 编辑器中,引脚、差分对和子部件交换通过交换元件焊盘及相应铜箔上的网络来实现。将更改合并到原理图时,可以采用两种方式处理引脚交换:交换元件符号上的引脚,或交换连接到引脚的导线上的网络标签。两种方式各有优缺点。

交换引脚的方式在原理图中始终有效,但可能导致该元件符号实例与库中的定义不再一致。这意味着该符号无法从库中更新,同时设计中同一元件的其他实例也会具有不同的引脚排列。因此,这种方式非常适合电阻阵列等简单元件。

通过交换网络标签在原理图上执行交换,仅适用于通过网络标签建立连接且引脚之间未直接用导线相连的情况。这种方式的优点是元件符号不会改变,后续仍可从库中更新。对于 FPGA 等复杂元件,这种方式是最佳选择,因为实际移动符号上的两个引脚可能导致按 I/O Bank 划分的符号显示不正确。

您可以在 项目选项 - 选项对话框的 Allow Pin Swapping Using these Methods 区域中,选择 Adding / Removing Net-Labels 或 Changing Schematic Pins 选项来确定交换的执行方式,如下图所示。

这些项目选项决定了如何在原理图文档中更新引脚交换。 这些项目选项决定了如何在原理图文档中更新引脚交换。

在 PCB 上启用引脚、差分对和子部件交换

PCB 设计中的引脚交换功能由 Pin Swapping 选项控制。执行交互式布线时,此选项即可用。要查看并切换此选项,请选择 Route » Interactive Routing 命令,然后按 Tab 键暂停布线并访问 Properties 面板,您可以在该面板中切换 Pin Swapping 选项的状态()。

在元件级别,指定 PCB 元件的交换选项在 属性面板中配置。在设计空间中选中该元件时,此面板会显示其属性。这些选项位于 General 选项卡的 Swapping Options 区域中。

PCB 元件的交换选项也可以通过 Configure Swapping Information in Components 对话框定义,该对话框列出了设计(或库)中使用的所有元件及其当前交换设置。从 PCB 编辑器访问时,此对话框还包含一个名为 Enable in PCB 的附加列,用于启用或禁用电路板上各个元件的交换功能。

可通过以下方式从原理图编辑器、原理图库编辑器和 PCB 编辑器访问 Configure Swapping Information in Components 对话框:

  • Schematic Editor/Schematic Library Editor - 从主菜单中选择 Tools » Configure Pin Swapping 命令。
  • PCB Editor - 从主菜单中选择 Tools » Pin/Part Swapping » Configure 命令。

用于设置元件内部引脚、差分对和子部件交换的 swap group 属性存储在原理图元件中。不过,这些信息是在 PCB 编辑器中使用的,并且每个 PCB 元件都有一个允许其引脚交换的选项。因此,从 PCB 编辑器使用此对话框可能更加方便。

使用 Configure Swapping Information in Components 对话框可快速定义各个元件的交换设置。该对话框包含功能强大的右键菜单,可轻松地将一个元件的设置快速复制到另一个元件,或通过一次单击启用或禁用多个元件的交换功能。

Configure Swapping Information In Components 对话框。Configure Swapping Information In Components 对话框。

在 Configure Swapping Information in Components 对话框中双击元件,将打开该元件的 配置引脚交换对话框,您可以在其中更精细地定义引脚、差分对和子部件的交换组设置。

执行引脚、差分对和子部件交换

交互式引脚、差分对和子部件交换

交互式交换允许在 PCB 编辑器中逐一交换引脚、差分对或子部件。交互式交换命令位于 Tools » Pin/Part Swapping 子菜单中(Interactive Pin/Net Swapping、Interactive Differential-Pair Swapping 和 Interactive Part Swapping 命令)。从菜单中选择命令后,PCB 设计空间中除可交换对象之外的所有内容都会被遮罩(淡化显示)。请留意 Status Bar,它会提示下一步操作。执行交换所需的步骤会显示在状态栏中:

  1. 第一步是选择一个高亮显示的引脚,作为引脚交换的源。对于差分对或子部件交换,随后将交换该引脚所属的差分对或子部件。

  2. 第二步是选择交换的目标引脚。对于差分对或子部件交换,此引脚代表一个差分对或子部件。

    以下两种情况会导致可交换引脚不高亮显示:该引脚已有布线连接(请检查电源平面或多边形覆铜连接),和/或未启用 Pin Swapping 选项(可在首选项面板的交互式布线模式中找到)。

下方两张图展示了对双路五输入或非门元件进行交互式子部件交换的各个阶段。该元件有两个可交换的子部件,因此可以选择各自五个引脚中的任意一个,如上图所示。选中的引脚 8 对应子部件 U2B。随后,系统会高亮显示子部件 U2A 中可交换的引脚。

第一张图,步骤 1 - 选择要交换的引脚,可用引脚会高亮显示。第二张图,步骤 2 - 选择目标引脚。  第一张图,步骤 1 - 选择要交换的引脚,可用引脚会高亮显示。第二张图,步骤 2 - 选择目标引脚。

  • 无需为差分对引脚定义子部件序列值,差分对定义已明确指定该对中的正引脚和负引脚。

  • 交换信息也会显示在 Messages 面板中。

自动引脚/网络优化器

自动引脚/网络优化器是一个分两阶段运行的工具。从 PCB 编辑器菜单中选择 Tools » Pin/Part Swapping » Automatic Pin/Net Optimizer,即可执行自动优化。

自动引脚/网络优化器首先运行快速的单次优化,尝试尽量减少连接交叉并缩短连接长度,但实际上也可能使交叉增多、连接变长。完成后,系统会询问您是否要运行迭代优化器。迭代优化器会执行多轮优化,尝试减少连接交叉数量并缩短连接长度。

将更改回传到原理图

在配置引脚交换对话框中配置 swap groups 时,所做的修改会立即应用到原理图元件,无论启动命令时哪个编辑器处于活动状态。但是,在 PCB 编辑器中执行引脚、差分对或子部件交换所产生的设计更改,需要通过标准的 Design Update流程回传到原理图。

将 PCB 中的更改推送到原理图

引脚、差分对和部件交换回传到原理图的方式与其他设计更改相同,即从菜单中选择 Design » Update。根据 Project Options - Options dialog 中允许引脚交换选项的配置,引脚交换将通过以下方式执行:

  • 更改引脚名称——此更改会使符号上的引脚位置发生变化。引脚本身并未在符号上实际移动,但从视觉上看,两个引脚已移动或交换了位置。
  • 将引脚移至不同网络——此更改会交换连接导线上的网络标签。
  • 更改子部件 ID——执行部件交换时,此更改会更改子部件索引。

 

第一张图展示了通过交换引脚在原理图中实现引脚交换的结果。第二张图展示了通过移动网络标签实现交换的结果。

如果原理图未更新以显示交换后的引脚或部件,请按 End 键刷新显示。

在 FPGA 设计中充分利用新的引脚/部件交换系统

除了智能引脚、差分对和部件交换带来的明显优势外,交换部分已布线子网络的能力还为交换功能带来了新的应用方式,非常适合大容量 FPGA 设计。动态网络重新分配功能支持采用多阶段设计流程,逐步优化引脚/网络分配。

初始 I/O 分配

在此阶段,以原理图层面最方便的方式为 FPGA 和其他器件的引脚分配网络。通常,只需按总线编号顺序为 FPGA 引脚添加网络标签。原理图编辑器中的智能粘贴功能非常适合完成此操作。

初始连接优化

设计可以传输到 PCB 布局中,但由于原理图层面的分配较为随机,会出现大量连接交叉。运行 Tools » Pin/Part Swapping » Automatic Net/Pin Optimizer 命令,可利用引脚和网络信息动态重新分配网络并改善可布线性,从而快速大幅减少交叉数量。例如,系统可以重新连接多个 BGA 器件,这些器件已在 PCB 文档的多个层上完成逃逸布线。此时结果不必十分理想,因为这一步主要是让 PCB 层面的连接在视觉上更易于处理。

启动命令后,将运行自动引脚/网络优化器。这是一个分为两个阶段的工具,首先执行快速的单次优化,尝试尽量减少连接交叉并缩短连接长度,但实际上也可能使交叉增多、连接变长。完成后,系统会询问您是否要运行迭代优化器。迭代优化器会执行多轮优化,尝试减少连接交叉数量并缩短连接长度。优化器运行完成后,会显示优化结果。

逃逸布线

现在可以对 PCB 上的大型器件执行扇出和逃逸布线(右键单击元件,可选择性地执行扇出/逃逸布线)。这可能会使先前优化过的分配结果变差,但在此阶段并无影响。

逃逸布线后的连接优化

再次运行自动优化器。这一次,它将利用扇出/逃逸布线中已完成的布线段进行优化。

手动布线

现在可以将逃逸走线的末端作为布线的“目标”。可以忽略实际的连接线,从网络的另一端朝 PCB 上距离最近的逃逸 I/O 走线(综合考虑空间位置和层)进行布线,而不必朝同一网络上的逃逸走线布线。此时连接不会一一对应,而是会在 FPGA I/O 引脚的逃逸走线与来自 PCB 其他部件的走线之间留下一系列小间隙。下图展示了一个简单示例。

 

最终优化

再次运行自动优化器,它会将已布线的子网络分配给尽可能近的逃逸 I/O 引脚。这样,只需完成一组非常短的连接即可。自动优化器具有专门的算法,可在这种情况下获得良好的结果。随后可以通过交互式或自动布线完成这些连接。

手动引脚交换

使用交互式交换工具,执行所需的特定引脚交换。

将更改回传到原理图

准备将这些引脚分配回传到原理图时,建议禁用原理图符号上的引脚更改。这是因为 FPGA 通常以多部件元件的形式表示,每个引脚组对应一个独立的原理图部件。将引脚从一个部件移到另一个部件,会导致这些符号在逻辑上不正确,因为引脚组符号中会包含不属于该组的引脚。在这种情况下,通过更改网络标签来实现引脚交换才是正确的方法。

根据需要重复执行

在设计过程中的任何时候,都可以根据需要多次执行此流程。

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

您可使用的功能取决于您所采用的 Altium 解决方案——Altium Develop、Altium Agile Teams、Altium Agile Enterprise,或 Altium Designer(在有效订阅期内)。

如果您在实际软件中未看到文档中介绍的某项功能, 请联系 Altium Sales 了解更多信息。

旧版文档

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

Contents