高速信号布线:PCB 设计中的 10 个重要约束条件

Zachariah Peterson
|  已创建:April 29, 2020  |  已更新:October 1, 2026
At a Glance

高速信号布线策略需要同时关注各项约束条件,并进行富有创造性的布局规划。以下将介绍如何以正确的方式进行高速信号布线。

Go Deeper with AI:
高速信号布线:PCB 设计中的 10 个重要约束条件

你的现代数字 PCB 很可能已经在充当一个高速数字系统,无论你当初是否有意这样设计。当然,其影响程度以及所需的评估深度取决于信号的上升时间,而这通常会限制你在 PCB 上对某些信号进行布线的方式和位置。这些约束可以在 PCB 项目中定义为 PCB 设计规则,本文将概述高速设计中为确保成功布线而常见的一些约束。

10 个重要的高速 PCB 布线约束

按层设置线宽值

用于传输高速数字数据的标准接口,基本上都是受控阻抗接口。连接到走线的驱动器会期望该走线具有特定的阻抗值,因此你的 ECAD 软件必须在开始布线时维持这一点。同样,接收器会以特定的输入阻抗或负载电容进行端接,并且只有在所连接走线的阻抗符合要求时,才能按规格正常工作。

一旦你为设计建立了阻抗模型,就应为每个信号层设定线宽约束及允许偏差,然后将其应用到各个网络类。这需要计算不同几何结构下的走线阻抗。

在 Altium Designer 中,传输线阻抗计算是在定义 PCB 层叠的同一工具中完成的。

  1. 打开 Design » Layer Stack Manager,并配置层叠结构,包括铜厚、介质厚度以及介质材料属性。
  2. 选择 Impedance 选项卡并点击 Add Impedance Profile;如果已存在配置文件,则点击添加按钮。
  3. 在 Properties 面板中,选择配置文件类型,并输入 Target Impedance 和 Target Tolerance。
  4. 启用将使用此配置文件的信号层,然后在 Top Ref 和 Bottom Ref 列中指定参考层。
  5. 选择每个已启用的信号层并查看计算得到的线宽。对于差分配置文件,锁定 Width 或 Trace Gap 其中之一,以便求解器计算出满足目标阻抗的另一个值。
  6. 保存层叠结构。随后即可在相应的 Width 或 Differential Pairs Routing 规则中选择该配置文件。

受控阻抗网络类

为了确保特定接口上的布线始终保持正确阻抗,我们通常采用一种简单的方法:对网络进行分组,并创建针对特定网络的设计规则来强制约束线宽。将具有相同阻抗的网络归入同一个网络类,是对网络组应用多项约束的最快方式,其中包括主要的高速约束,例如线宽,以及并行总线和差分对中的传播延迟匹配。

  1. 在原理图中,将Net Class directive附加到属于该组的每个网络,并为每个指令输入相同的类名。也可以使用带有附加参数集的 blanket 来对多个网络进行分组。
  2. 打开 Project » Project Options » Class Generation,并启用用户自定义网络类的生成。更新 PCB,并在 Engineering Change Order 中执行与类相关的更改。
  3. 或者,也可以直接在 PCB 编辑器中通过 Design » Classes 创建该类。在 Net Classes 下添加一个新类,命名后,将所需网络从 Non-Members 移动到 Members。
  4. 打开 Design » Rules,并创建所需规则,例如 Routing » Width。
  5. 将规则作用域设置为 InNetClass('ClassName'),其中用实际类名替换 ClassName。
  6. 配置约束。对于受控阻抗布线,启用 Use Impedance Profile,并选择在 Layer Stack Manager 中创建的配置文件。
  7. 将该类专用规则的优先级设置得高于同类型的更宽泛规则,然后应用更改。

那么阻抗变化怎么办?如果你计划改变线宽,应如何考虑这一点?可以通过 neck-down 来实现,也就是在走线进入某个 room 时改变线宽,例如在 BGA 封装焊盘区域内。如果你能够预见这些布线需求,那么就应在 PCB 设计规则中预先将线宽变化考虑进去。

回流路径约束

回流路径约束检查用于验证走线不会跨越参考平面的边界,例如电源层中两条电源轨之间的间隙。跨越该间隙会中断邻近的回流路径,并迫使回流电流绕行。在 Altium Designer 中,Return Path 规则会使用指定的阻抗配置文件来识别参考层,并检查布线下方铜皮的连续性。

时序偏斜

当延迟匹配要求非常严格时,并行总线信号之间或差分对内部的偏斜必须尽量减小。在 PCB 布局中,需要约束三类时序偏斜:

  • 差分对内部的信号延迟匹配
  • 多个差分对之间的延迟匹配
  • 混合总线(单端和差分对)中的长度匹配

这也是我们喜欢定义网络类的原因;它能让时序约束变得简单得多,因为这些约束可以对该网络类中的所有网络统一实施。

对于 PCIe 和 DDR 这类接口,时序约束极其严格,因此需要引脚封装传播延迟,才能准确保证信号在所需时间窗口内到达目标端。元件供应商可以提供相关信息,以便对相应的高速接口进行建模。在为库元件创建原理图库符号时,可将引脚延迟信息纳入链路两端各引脚的定义中,这些延迟值会在布线期间被延迟调谐工具纳入计算。

要在 Altium Designer 中将引脚封装延迟纳入布线时的延迟调谐计算,相关接口中的网络需要包含在 xSignals 中。该工具会计算两个集成电路之间点对点路径上的全部延迟,并在延迟调谐计算中使用这些数据。

布线层限制

在高层数电路板中,某些网络类或差分对类通常只会分配到特定层上,原因主要有两个:

  • 不同层可按阻抗进行区分,有助于进行受控阻抗测试
  • 某些布线需要更大的间距以确保低串扰,从而留给其他信号走线的空间很少

例如,通常会将不同接口,如 DDR、90 Ohm 差分对(例如 USB)、100 Ohm 差分对以及其他受控阻抗总线,分别放置在各自专用的层上,并采用统一的差分对设计。也可以按线宽/间距数值进行这种分离,因为这有助于制造商在必要时更轻松地替换等效材料。

Routing Layers 规则用于指定目标网络类或差分对类可以使用哪些信号层。针对特定类的规则可让每个接口使用其分配的层,同时保留适用于其他布线的更宽泛规则。

  1. 打开 Design » Rules,并在 Routing » Routing Layers 下创建一条新规则。
  2. 对于网络类,将自定义作用域设置为 InNetClass('ClassName');对于差分对类,则设置为 InDifferentialPairClass('PairClass')。
  3. 在层列表中,对允许使用的层启用 Allow Routing,对其余层禁用该选项。
  4. 将该规则的优先级设置得高于任何针对相同网络的更宽泛 Routing Layers 规则。
  5. 应用规则并运行设计规则检查,以识别位于禁止层上的现有布线。

按层设置与所有其他对象的间距

由于外层电镀工艺的影响,内层与外层的间距值通常不同。不过,由于许多高速设计往往也是高密度设计,因此不同内层需要不同间距值的情况也很常见。这是因为使用了子层压结构,它们需要额外的电镀工艺,并会形成比基础铜箔重量更高的电镀铜厚。

在 Altium Designer 中,可以使用查询系统按层定义间距:

  1. 在 PCB 编辑器中打开 Design » Classes,并在 Layer Classes 下创建新的层类。
  2. 命名该类,并添加具有相同间距要求的层。对每一组需要不同间距的层重复此操作。
  3. 打开 Design » Rules,并在 Electrical » Clearance 下为每个层或层类创建一条新规则。
  4. 为第一个对象作用域选择自定义查询。对于单个层,使用 OnLayer('Top Layer');对于层类,使用 InLayerClass('LayerClass'),并将其中的层名或类名替换为实际名称。
  5. 将第二个对象作用域设置为 All,以便规则检查适用层上与其他铜对象之间的间距。
  6. 选择 Different Nets Only,并输入所需的最小间距。如果不同对象组合需要不同的数值,请使用间距矩阵。
  7. 将这些按层设置的专用规则优先级设高于通用间距规则,应用更改后运行设计规则检查。

请务必向你的 PCB 制造服务提供商获取基于铜厚(内层和外层)的间距要求。

也可以使用新的 Constraint Manager 按层定义间距。它提供了一种基于矩阵的间距定义方式,这会让使用其他 ECAD 软件的设计人员感到更加熟悉。请在下方视频中进一步了解 Constraint Manager:

 

特定网络的过孔尺寸或模板

我曾在 Altium 博客的其他文章中讨论过过孔阻抗的工作方式,以及在什么频率下过孔需要按特定输入阻抗进行设计。对于特定的层叠和跨层范围,这些过孔尺寸和 anti-pad 尺寸将是网络特定的,而对过孔/焊盘尺寸的限制可以通过 PCB 设计规则来定义。

可以通过两种方式约束过孔尺寸:

  • 通过为特定网络/网络类定义允许的尺寸
  • 通过为特定网络/网络类指定过孔模板

确定合适的过孔尺寸并不像使用在线计算器来计算过孔尺寸那么简单。它需要进行三维电磁场仿真,或者至少需要基于仿真数据建立的经验模型。一旦确定了过孔尺寸和 anti-pad 尺寸,就应将其设为设计规则,以确保关键高速网络被约束为使用正确的过孔尺寸。

过孔 Anti-Pad

过孔 anti-pad 也是按过孔阻抗进行设计的一部分,因为其到平面的间隙会调整过孔柱体沿线的电容。在所有设计中,过孔焊盘与平面导轨或大型电源导轨附近铜皮之间通常已经存在最小间隙要求。可以通过 PCB 设计规则,按网络或网络类分别调整特定网络的过孔到铜皮间隙值。

对于差分网络,anti-pad 的形状可能是长圆形或椭圆形,而不是分别围绕单个过孔的圆形。这种共享 anti-pad 最好通过绘制 anti-pad 形状来定义,可将其作为平面挖空或多边形挖空。如下图所示。

焊盘内过孔许可

现代高速 PCB 的一个特点是,它们往往同时也是高密度 PCB。这是因为如今大多数处理器都采用 BGA 封装,而在低间距条件下,为了完成扇出布线,就需要使用焊盘内过孔。即使是采用 dog-bone 扇出的较大间距 BGA 封装,旁路电容的最佳放置位置通常也是 BGA 背面的焊盘内过孔结构。

默认情况下,ECAD 软件会检查焊盘内过孔,如果存在则会将其标记为 DRC 违规。不过,也可以在设计规则中允许焊盘内过孔,以支持 BGA 扇出布线。

打开 Design » Rules,并创建一条 High Speed » Via Under SMD 规则。启用 Allow Vias under SMD Pads,并使用 IsPad AND WithinRoom('BGA_Fanout') 将规则范围限定到目标焊盘,即已定义的扇出 room。将该规则的优先级设置得高于通用规则。同时还要配置一条匹配的 Same Net Only Clearance 规则,为已批准的过孔设置 SMD 焊盘到过孔以及焊盘到过孔孔径的间隙为零。

请务必在 Properties 面板中使用 IPC-4761 via types 选项,将相关过孔指定为填孔并封盖。也可以通过手动选择需要电镀并封盖的特定过孔组来完成;如果所有过孔都需要填孔并封盖,也可以在主制造图纸中添加制造说明。

差分对非耦合长度

差分对的非耦合长度会导致差分通道中的回波损耗,因此在某些应用中,确定合适的非耦合长度非常重要。非耦合区域最常见于从 BGA 的密集引脚区域向外布线时,因为走线需要彼此分开以绕过过孔。

计算非耦合长度并不是一个简单的计算,因为它依赖于基于通道带宽进行正确的临界长度计算。一个不错的策略是,如果你知道差分对在扇出布线中会存在非耦合区域,那么一开始就按松耦合来设计这对走线,因为这样可以减小非耦合区域处的阻抗失配并降低模态转换。

要进一步了解 Altium Designer 中的 PCB 设计规则系统,请观看下方视频。

 

无论您需要构建可靠的电力电子系统还是先进的数字系统,都可以使用 Altium 完整的 PCB 设计功能集和世界一流的 CAD 工具。Altium 提供全球领先的电子产品开发平台,配备业界优秀的 PCB 设计工具以及支持高级设计团队开展跨学科协作的功能。立即联系 Altium 专家!

 

常见问题

如何检查 PCB 走线是否跨越其参考平面中的间隙?

在 Altium Designer 中,创建一条 High Speed » Return Path 规则,并将其范围限定到相关网络或网络类。选择定义其参考层的阻抗 profile,配置走线到参考铜边界的最小距离,然后运行批量设计规则检查。该检查会识别参考铜不连续区域上的布线情况,包括电源导轨之间的间隙。

如何将某个网络类或差分对类限制在特定布线层上?

在 Design » Rules 中创建一条 Routing » Routing Layers 规则,并使用 InNetClass('ClassName') 或 InDifferentialPairClass('PairClass') 来限定其范围。仅对允许的信号层启用 Allow Routing,然后将该规则的优先级设置得高于更宽泛的 Routing Layers 规则。这样可约束布线,并允许设计规则检查识别位于禁止层上的现有走线。

如何将过孔尺寸或过孔模板分配给特定网络和网络类?

创建一条 Routing » Routing Via Style 规则,并使用 InNet('NetName') 或 InNetClass('ClassName') 将其范围限定到目标网络或网络类。定义过孔外径和孔径的最小、首选和最大值,或者将该规则配置为使用已批准的过孔模板。将该规则的优先级设置得高于通用过孔规则。过孔跨层范围则在 Layer Stack Manager 中单独定义。

如何创建网络类并分配高速 PCB 布线规则?

网络类可以通过原理图中的 Net Class 指令创建,也可以直接在 PCB 编辑器中的 Design » Classes 中创建。对于在原理图中定义的类,请在 Project Options 中启用用户自定义网络类生成,然后将更改同步到 PCB。在 Design » Rules 中,使用 InNetClass('ClassName') 为每条适用的布线或时序规则限定范围,配置其约束条件,并将其优先级设置得高于同类型的更宽泛规则。

关于作者

关于作者

Zachariah Peterson拥有学术界和工业界广泛的技术背景。在从事PCB行业之前,他曾在波特兰州立大学任教。他的物理学硕士研究课题是化学吸附气体传感器,而应用物理学博士研究课题是随机激光理论和稳定性。他的科研背景涵盖纳米粒子激光器、电子和光电半导体器件、环境系统以及财务分析等领域。他的研究成果已发表在若干经同行评审的期刊和会议论文集上,他还为多家公司撰写过数百篇有关PCB设计的技术博客。Zachariah与PCB行业的其他公司合作提供设计和研究服务。他是IEEE光子学会和美国物理学会的成员。

Related Technical Documentation

相关资源

返回主页
Thank you, you are now subscribed to updates.