你的现代数字 PCB 很可能已经在充当一个高速数字系统,无论你当初是否有意这样设计。当然,其影响程度以及所需的评估深度取决于信号的上升时间,而这通常会限制你在 PCB 上对某些信号进行布线的方式和位置。这些约束可以在 PCB 项目中定义为 PCB 设计规则,本文将概述高速设计中为确保成功布线而常见的一些约束。
用于传输高速数字数据的标准接口,基本上都是受控阻抗接口。连接到走线的驱动器会期望该走线具有特定的阻抗值,因此你的 ECAD 软件必须在开始布线时维持这一点。同样,接收器会以特定的输入阻抗或负载电容进行端接,并且只有在所连接走线的阻抗符合要求时,才能按规格正常工作。
一旦你为设计建立了阻抗模型,就应为每个信号层设定线宽约束及允许偏差,然后将其应用到各个网络类。这需要计算不同几何结构下的走线阻抗。
在 Altium Designer 中,传输线阻抗计算是在定义 PCB 层叠的同一工具中完成的。
为了确保特定接口上的布线始终保持正确阻抗,我们通常采用一种简单的方法:对网络进行分组,并创建针对特定网络的设计规则来强制约束线宽。将具有相同阻抗的网络归入同一个网络类,是对网络组应用多项约束的最快方式,其中包括主要的高速约束,例如线宽,以及并行总线和差分对中的传播延迟匹配。
那么阻抗变化怎么办?如果你计划改变线宽,应如何考虑这一点?可以通过 neck-down 来实现,也就是在走线进入某个 room 时改变线宽,例如在 BGA 封装焊盘区域内。如果你能够预见这些布线需求,那么就应在 PCB 设计规则中预先将线宽变化考虑进去。
回流路径约束检查用于验证走线不会跨越参考平面的边界,例如电源层中两条电源轨之间的间隙。跨越该间隙会中断邻近的回流路径,并迫使回流电流绕行。在 Altium Designer 中,Return Path 规则会使用指定的阻抗配置文件来识别参考层,并检查布线下方铜皮的连续性。

当延迟匹配要求非常严格时,并行总线信号之间或差分对内部的偏斜必须尽量减小。在 PCB 布局中,需要约束三类时序偏斜:
这也是我们喜欢定义网络类的原因;它能让时序约束变得简单得多,因为这些约束可以对该网络类中的所有网络统一实施。
对于 PCIe 和 DDR 这类接口,时序约束极其严格,因此需要引脚封装传播延迟,才能准确保证信号在所需时间窗口内到达目标端。元件供应商可以提供相关信息,以便对相应的高速接口进行建模。在为库元件创建原理图库符号时,可将引脚延迟信息纳入链路两端各引脚的定义中,这些延迟值会在布线期间被延迟调谐工具纳入计算。
要在 Altium Designer 中将引脚封装延迟纳入布线时的延迟调谐计算,相关接口中的网络需要包含在 xSignals 中。该工具会计算两个集成电路之间点对点路径上的全部延迟,并在延迟调谐计算中使用这些数据。
在高层数电路板中,某些网络类或差分对类通常只会分配到特定层上,原因主要有两个:
例如,通常会将不同接口,如 DDR、90 Ohm 差分对(例如 USB)、100 Ohm 差分对以及其他受控阻抗总线,分别放置在各自专用的层上,并采用统一的差分对设计。也可以按线宽/间距数值进行这种分离,因为这有助于制造商在必要时更轻松地替换等效材料。
Routing Layers 规则用于指定目标网络类或差分对类可以使用哪些信号层。针对特定类的规则可让每个接口使用其分配的层,同时保留适用于其他布线的更宽泛规则。
由于外层电镀工艺的影响,内层与外层的间距值通常不同。不过,由于许多高速设计往往也是高密度设计,因此不同内层需要不同间距值的情况也很常见。这是因为使用了子层压结构,它们需要额外的电镀工艺,并会形成比基础铜箔重量更高的电镀铜厚。
在 Altium Designer 中,可以使用查询系统按层定义间距:
请务必向你的 PCB 制造服务提供商获取基于铜厚(内层和外层)的间距要求。
也可以使用新的 Constraint Manager 按层定义间距。它提供了一种基于矩阵的间距定义方式,这会让使用其他 ECAD 软件的设计人员感到更加熟悉。请在下方视频中进一步了解 Constraint Manager:
我曾在 Altium 博客的其他文章中讨论过过孔阻抗的工作方式,以及在什么频率下过孔需要按特定输入阻抗进行设计。对于特定的层叠和跨层范围,这些过孔尺寸和 anti-pad 尺寸将是网络特定的,而对过孔/焊盘尺寸的限制可以通过 PCB 设计规则来定义。
可以通过两种方式约束过孔尺寸:
确定合适的过孔尺寸并不像使用在线计算器来计算过孔尺寸那么简单。它需要进行三维电磁场仿真,或者至少需要基于仿真数据建立的经验模型。一旦确定了过孔尺寸和 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 专家!
在 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 中单独定义。
网络类可以通过原理图中的 Net Class 指令创建,也可以直接在 PCB 编辑器中的 Design » Classes 中创建。对于在原理图中定义的类,请在 Project Options 中启用用户自定义网络类生成,然后将更改同步到 PCB。在 Design » Rules 中,使用 InNetClass('ClassName') 为每条适用的布线或时序规则限定范围,配置其约束条件,并将其优先级设置得高于同类型的更宽泛规则。