创建多通道设计
概览
- Altium Designer 多通道设计的工作原理:从重复电路的原理图绘制,到为 PCB 布局自动展开各个实例
- 使用多个图纸符号与使用 Repeat 关键字创建通道的区别
- 命名、编译、Room 和连接设置如何在结构化设计中支持重复通道
电子设计中包含重复电路部分的情况并不少见,例如立体声放大器或 64 通道调音台。名为 multi-channel design 的功能集全面支持此类设计。

视频多路复用器的两个解码器通道。采用多通道设计结构,只需绘制一次解码器通道电路。
在多通道设计中,只需绘制一次重复使用的电路,然后指示软件将其重复所需的次数。自动编译设计时,软件会按照用户定义的通道命名方案,在内存中展开设计,将所有元件及其连接关系重复所需的次数。
您绘制的逻辑设计实际上从未被展平,源文件始终保留为多通道原理图。将其传送到 PCB 布局时,物理元件和网络会自动按所需次数展开。您可以使用标准的交叉探查和交叉选择工具,在原理图与 PCB 之间进行交互操作。PCB 编辑器还提供了一种工具,可将一个通道的布局布线复制到所有其他通道,并能轻松移动整个通道或调整其方向。
动态编译
Related page: 验证设计项目
每次用户操作后,系统都会通过动态编译以增量方式更新设计的连接模型。您无需手动编译项目,因为此过程会自动完成。对于设计项目,自动编译过程执行以下三项功能:
- 实例化设计层次结构。
- 建立所有设计图纸之间的网络连接。
- 构建设计的内部统一数据模型(UDM)。
这可确保所做的任何设计更改都会立即反映在 Navigator和项目面板中。
项目编译后的模型称为统一数据模型(UDM)。UDM 包含设计中每个元件的详细描述,以及元件之间的连接关系。
要根据编译器设置检查 UDM 中的逻辑、电气和制图错误,必须验证项目。您可以从主菜单中选择 Project » Validate Project 命令,也可以在“项目”面板中右键单击项目条目,然后从右键菜单中选择 Validate Project命令。
编译器检测到的任何违规项都会在 Messages 面板中列为警告和/或错误。检查源文档中的违规项时,编译器会使用 Options for Project 对话框的错误报告和连接矩阵选项卡中定义的选项(具体取决于项目类型)。
统一数据模型
了解设计数据的管理方式,有助于理解多通道设计。统一数据模型(UDM)是软件的一项基础要素。项目自动编译时,会创建一个统一、连贯的模型,作为设计流程的核心。随后,可以使用软件中的各种编辑器和服务来访问和操作模型中的数据。UDM 并非为各个设计领域使用独立的数据存储,而是采用能够容纳设计各方面所有信息的结构,包括元件及其连接关系。

统一数据模型使所有编辑器都能访问全部设计数据,并有助于实现多通道设计等高级功能。
UDM 与层次化设计系统相结合,实现了多通道设计功能。“通道”是指图纸符号所代表的电路。该图纸符号下可以是一张图纸,也可以是项目结构中包含其他子图纸的整个分支。您还可以在通道内创建通道。在两级多通道设计中,上层通道称为通道组,下层通道则称为通道。
由于内存中存在这份完整且可直接用于 PCB 的设计描述,只要有系统化的方法来处理重复对象(例如元件位号和网络),就可以重复使用某一部分电路。系统化命名方式在 Options for Project 对话框的“多通道”选项卡中定义,下文将对此进行介绍。
创建多通道设计
当设计中的某一部分电路重复使用时,该设计就是多通道设计。您可以在图纸符号层面通过以下任一种方式实现:
- 放置多个图纸符号,使其全部引用同一张子原理图;或者
- 配置单个图纸符号,使其引用的子原理图重复所需的次数

第一张图中有四个图纸符号,全部引用同一张子图纸(PortIO.SchDoc)。第二张图通过使用 Repeat 关键字,将 InputChannel.SchDoc 重复八次,将 OutputChannel.SchDoc 重复两次。
上图展示了创建多通道设计的这两种方法。第一张图中的四个图纸符号全部引用同一张子图纸(PortIO.SchDoc)。第二张图通过在图纸符号的 Designator 字段中使用 Repeat 关键字,将 InputChannel.SchDoc 重复八次,将 OutputChannel.SchDoc 重复两次。
项目中重复的元件位号和网络名称通过标准命名方案来区分。例如,一种命名方案是在重复的元件和网络标识符(网络标签和端口)中添加通道索引,如下图中高亮显示的部分所示。
请注意打开项目时原理图底部显示的选项卡。Editor 选项卡包含您绘制的逻辑设计,其他编译后的选项卡(COUT1 和 COUT2)也会显示,它们代表将传送到 PCB 编辑器的物理设计。每个物理通道都有一个对应的选项卡。

编译后的项目,显示了逻辑视图选项卡,以及传送到 PCB 的各物理通道所对应的选项卡。请注意重复位号和网络标识符的管理方式。
Repeat 关键字
如前所述,可以通过放置多个引用同一张子图纸的图纸符号,或在图纸符号的“位号”字段中加入 Repeat 关键字来重复通道。使用 Repeat 关键字时,图纸符号会显示为一组堆叠的图纸符号。

Repeat 语句定义通道位号和通道数量。请注意,图纸符号显示为一组堆叠的符号,表示重复的通道。
每个通道都由一个通道位号标识,该位号来自图纸符号的 Designator。通过放置多个图纸符号实现多通道设计时,通道位号就是为各图纸符号定义的 Designator 值。如果通过 Repeat 关键字实现多通道设计,通道位号则是由 Repeat 关键字定义的 ChannelIdentifier+ChannelIndex。
使用 Repeat 关键字时,Designator(位号)字段的语法如下:
Repeat(<ChannelIdentifier>,<ChannelIndex_1>,<LastChannelIndex_n>)
多通道命名
软件基于其统一数据模型(UDM),实现了一次绘制、重复使用的多通道设计理念。重复的元件采用系统化的命名方案进行命名,该方案可在 Options for Project 对话框的“多通道”选项卡中配置,如下所示。
该对话框的上半部分用于控制 Room 的命名,下半部分用于控制这些 Room 内元件的命名。对于 Room,有 2 种平面命名样式和 3 种层次命名样式。通常,只有在设计中存在通道内嵌套通道的情况时,才需要选择层次命名样式。否则,平面 Room 命名样式更简短,也更容易理解。
对于元件命名,$Component$ChannelAlpha 或 $Component_$ChannelIndex 选项可生成最简短、最容易理解的元件位号。也可以使用可用关键字构建自己的位号命名方案。

重复的元件(和网络)通过系统化的命名方案进行管理,该方案可在 Project Options 对话框的 Multi-Channel 选项卡中选择。
Room 的作用
Room 是一种 PCB 设计对象,用于在电路板上定义一个区域,随后可用于以下两个方面:
- Contain objects - 虽然 Room 的放置方式与任何多边形对象一样,但它实际上是作为一条放置类设计规则创建的。Room 定义的一部分是指定必须包含在该 Room 内的对象,通常是元件。移动 Room 时,其中的所有元件也会随之移动。
- To scope other design rules - Room 本身是一条规则,同时也可用于限定其他设计规则的作用范围。例如,一条布线宽度设计规则定义了某个网络类的布线宽度,而另一条优先级更高、作用范围为 Room 的设计规则,则可为该 Room 内属于这一网络类的网络指定不同的布线宽度。
Room 非常适合多通道设计。将设计从原理图编辑器传输到 PCB 编辑器时,可以根据 Project Options 对话框中“类生成”选项卡上的选项自动创建 Room,为每个图纸符号创建一个 Room。除了将该通道内的元件集中在一起之外,Room 还可用于其内部元件的命名。本文的多通道 PCB 设计部分将进一步介绍 Room 及其在电路板设计流程中的作用。
多通道设计中的连接关系
对于多通道设计,请将 Net Identifier Scope 设置为 Automatic、Hierarchical 或 Strict Hierarchical。多通道设计必须采用层次结构,因为编译设计时,软件会使用此结构模型在内存中实例化各个通道。
对于连接到重复通道的网络,软件必须支持两种不同的连接要求,即该网络:
- 由所有通道共用,或
- 在每个通道中各自独立。
对此的支持程度取决于定义通道所用的方法(多个图纸符号,或通过 Repeat 关键字)。如果设计使用多个图纸符号(每个通道对应一个独立的图纸符号),则网络连接关系是明确的,由设计人员放置的连线定义。
如果设计使用 Repeat 关键字,则适用以下连接约定。
| Passing a Net to all Channels | 如果某个网络需要供所有通道使用,只需将其连接到图纸入口即可,如上图中连接到 InputChannel.SchDoc 图纸符号的 Monitor 网络所示。网络 Effects、MB1 和 MB2 也将在所有通道中可用。总线中的网络采用相同的处理方式:将总线连接到图纸入口后,该总线中的每个成员都将在所有通道中可用。 |
| Passing a net to a Specific Channel | 要将总线中的单个网络分别分配给各个通道,需要在图纸入口中使用 Repeat 关键字,如上图中的 Headphone 总线所示,其图纸入口名称为 Repeat(Headphone)。在这种情况下,网络 Headphone1 将连接到通道 CIN1,Headphone2 将连接到通道 CIN2,依此类推。如果使用 Repeat 关键字创建通道,则无法将单个网络仅传递给其中一个通道。如果有此需求,必须为每个通道放置一个独立的图纸符号。 |
网络的命名方式
最终,每个网络在 PCB 上只能有一个名称(一个 PCB 网络不能有两个名称)。软件会自动将项目中具有多个名称的网络解析为仅有一个名称。因此,务必配置多通道设计中的命名选项,确保网络标签的命名对您具有明确意义。网络命名选项位于 Options for Project 对话框中“选项”选项卡的 Netlist Options 部分。
在多通道设计中,设置这些选项的一种良好做法是启用 Higher Level Names Take Priority 选项,并为所有连接到通道化子图纸的网络放置网络标签。
以下图为例。请注意,两个图纸符号都指向图纸 PCB_Decoder.SchDoc,因此该电路有 2 个通道,分别标识为 U_PCB_DecoderA 和 U_PCB_DecoderB。
图纸符号包含一个名为 TDI 的图纸入口,它是 JTAG 边界扫描链中的测试数据输入(Test Data In)线路。DecoderA 的 TDO(测试数据输出)随后连接到链中下一个器件的 TDI,该器件位于 DecoderB 通道中。

通过放置两个引用同一原理图 PCB_Decoder.SchDoc 的图纸符号,创建两个解码器通道。
打开项目后,通道选项卡 U_PCB_DecoderA 和 U_PCB_DecoderB 会出现在原理图视图底部,这些选项卡显示将传递到 PCB 编辑器的物理设计。在下图中,左侧 Editor 选项卡显示最初绘制的解码器电路原理图,随后是该原理图对应的两个物理通道 U_PCB_DecoderA 和 U_PCB_DecoderB。
在最初绘制的原理图中,设计人员将该网络标记为 TDI(第一张图)。请注意,在 DecoderA 选项卡中(第二张图),软件应用了上层网络名称 TDO_CONTROLLER,因为它是上层网络名称(本设计已将其设为优先使用)。对于 DecoderB,由于未定义上层名称,因此原始网络名称 TDI 在此通道中被标识为 TDI_2(第三张图),这是由 Project Options 对话框中 多通道 选项卡上定义的命名规则决定的(Component Naming 规则用于标识各通道内的元件和网络)。

PCB_Decoder.SchDoc 原理图:第一张图为最初绘制的原理图;第二张和第三张图为两个通道的编译视图。
显示编译后的名称
在多通道设计中,追踪和分析网络可能令人困惑,因为必须更改名称,才能标识重复出现的网络,同时保持名称的唯一性。为此,软件提供了多种选项来控制编译后对象名称的显示,包括元件位号、网络标签、电源端口和 端口。此外,还提供了图纸编号和文档编号选项,这些选项在您准备生成打印类输出时非常重要。
编译后对象名称的显示可在 Preferences 对话框的 原理图 - 编译器 页面中配置,如下图所示。

配置编译后对象名称的显示方式;使用上标显示元件位号很有帮助。
通常,您会希望显示位号和网络标签;在排查问题时,显示端口也很有帮助。图纸编号和文档编号同样重要,必须正确配置。您可以在 设计标注 部分找到有关元件和图纸编号的信息链接。
如果选择 Display superscript if necessary 选项,当前文档视图将以上标形式显示另一未显示视图中的对象标识符。请根据您的偏好进行配置。

多通道设计中通道 2(CIN2)的视图。请注意,原始逻辑原理图中的位号和网络名称以上标形式显示。
解决网络多重名称错误
原理图编辑器的错误检查选项默认会标记所有具有多个名称的网络。当您有意更改名称时,就可能出现这种情况,例如,当网络进入图纸符号后,您希望在该图纸内使用不同的名称。下图展示了几个这样的示例:Left 和 Right 输出在顶层图纸中被合并到一条总线中,但在图纸入口中分别命名为 Left 和 Right。
这里使用总线,是因为这样可以通过带有 Repeat 关键字的单个图纸符号来表示两个输出通道。如果 Left 和 Right 通道使用单独的导线,则设计人员需要为 Left 和 Right 输出通道分别放置图纸符号(两者均指向同一张子原理图),然后将各输出连接到相应的输出图纸符号。
您必须指定软件如何处理多个网络标识符。为此,您需要采用以下任一方式:
- 在 Options for Project 对话框的 错误报告选项卡 中,将 Nets with multiple names 错误检查设置为 No Report。这不是推荐的选项,因为它会在整个设计中禁用对此类错误的所有检查。或者,您可以:
- 在 Messages 面板中右键单击某条错误/警告,并选择 Place Specific No ERC Marker for this violation 命令,在受影响的网络上放置一个 特定 No ERC 指令。执行此操作后,将进入 NoERC 对象放置模式,光标上会附带一个预先配置好的特定 NoERC 标记,可直接放置到出错的网络上。放置后,双击该标记即可配置其样式和颜色。

请注意橙色圆圈内的小三角形;这是一个已放置的特定 No ERC 标记,用于禁用 MB1 和 MB2 网络上的重复网络名称错误。
多板设计标注
设计输入过程中的一个关键环节是设计标注,即为每个元件和每张原理图分配唯一标识符。在多通道设计中,这是一个分为两个阶段的过程: 首先,必须为已放置的元件和已绘制的图纸编号。然后,还必须为通过重复通道实例化的元件和图纸编号。
多通道 PCB 设计
将设计从原理图编辑器传递到 PCB 编辑器时,如果在项目选项中启用了 Room 创建,则每张图纸中的元件都会集中到一个 PCB 布局 Room 中。
在多通道设计中使用 Room 的一大优势是,PCB 编辑器支持将一个 Room(通道)的布局布线复制到其他 Room(通道)。Room 还可以像单个对象一样移动,从而简化在 PCB 上排列各通道的过程。

设计从原理图编辑器传输到 PCB 编辑器后的八个输入通道和两个输出通道,红色区域即为 Room。
元件如何关联
每个原理图元件都通过唯一标识符(UID)与其 PCB 元件关联。UID 在原理图元件放置到图纸上时分配,并在设计传输到 PCB 编辑器时分配给对应的 PCB 元件。这种方式足以满足简单设计的需求,但无法支持多通道设计,因为同一个原理图元件会在每个物理通道中重复出现(这样一来,PCB 元件就会具有相同的 UID)。
为解决这一问题,PCB 元件的 UID 由父级图纸符号的 UID 与原理图元件的 UID 组合而成。根据多通道设计创建方式的不同,PCB UID 的语法会略有变化。
如果多通道设计是通过放置多个引用同一张原理图的图纸符号创建的,则每个图纸符号都能提供一个唯一 ID,因此 PCB UID 的格式为:
\SheetSymbolUID\SchComponentUID
如果多通道设计是使用 Repeat 关键字创建的,则只有一个可用的图纸符号 UID,因此 PCB UID 还会包含 ChannelIndex,格式为:
\ChannelIndex+SheetSymbolUID\SchComponentUID
在 PCB 上显示位号
多通道设计中的位号字符串可能很长,因此定位这些字符串可能比较困难。除了选择能生成较短名称的命名选项外,还可以选择仅显示原始的逻辑元件位号。例如,C30_CIN1 将显示为 C30。此时需要在电路板上添加其他标记来区分各个通道,例如在元件丝印层上为每个通道绘制一个边框。
您可以在 PCB 编辑器属性面板(View » Panels » Properties)的 Other 部分中,选择在 PCB 上显示逻辑位号还是物理位号。如果选择显示多通道设计中元件的逻辑位号,那么这些逻辑位号将显示在 PCB 上以及生成的任何输出中,例如打印件和 Gerber 文件。不过,生成物料清单时始终使用唯一的物理位号。
► 了解有关元件标注的更多信息
参数化多通道层次设计
复用部分设计时,例如将当前项目中的图纸符号关联到公司首选的电源原理图,面临的一个难题是:不同设计中元件的参数值并不总是相同。
参数化层次设计解决了这一问题:它允许您将元件参数值的设定从原理图图纸移到引用该图纸的图纸符号中。这项功能同样非常适合多通道设计,让您可以为每个通道设置不同的元件参数值。请注意,每个通道必须具有各自的图纸符号,因为元件参数值就存储在其中。
例如,图示均衡器可以多次重复使用同一电路,各通道之间唯一的区别就是元件参数值。因此,某个电容在不同通道中的容值可以分别为 0.12µF、0.056µF 和 0.033µF。实现这一点很简单,只需在引用各通道的图纸符号中指定这些值,无需绘制多张仅元件参数值不同的相似原理图。
要定义参数化元件,需要将其参数值声明为上一级图纸符号的参数,然后在目标元件中引用该参数。下图左侧显示了图示均衡器的顶层图纸,旁边显示了 1KHz 图纸符号的参数。图中还显示了绘制的下层原理图,以及编译后的 1KHz 通道(通过底部选项卡选择)。

各通道具有不同电容值和电阻值的图示均衡器;实际元件参数值在图纸符号中定义,因此只需绘制一张下层原理图。
这些图纸符号参数中的每一个,也都被定义为下层图纸中某个原理图元件参数的 value,如下图所示。每个图纸符号参数的值都会传递给相应的原理图元件,然后映射到该元件的 Comment 字段。请注意,如果直接使用 Value 参数而不是元件的 Comment 参数来显示原理图元件的参数值,则只需将图纸符号参数映射到元件的 Value 参数(Value=C2_Value),并将其设为可见即可。

由于 Value 参数的值为 =C2_Value,编译器知道必须在更高层级的图纸符号中查找实际的元件值。
参数化层次结构并不仅限于元件值。您可以通过参数化方式引用任意元件参数,也可以引用原理图图纸上其他对象的文本标签,但元件标识符、端口对象和文档文件名等基本连接元素除外。如果您引用的参数来自层次结构中高出多个图纸层级的符号,系统将沿层次结构逐级搜索,直到找到匹配的参数。

