使用 xSignals 定义高速信号路径

 

挑战

随着器件开关速度不断提高,如何保持信号完整性并满足信号的时序要求成为一项挑战。信号完整性可以通过受控阻抗布线来管理,这需要对 PCB 叠层以及各层所使用的布线线宽进行精心设计。

时序要求则通过匹配信号路径的布线长度来满足。对于一组两引脚的信号路径(每条都从一个输出引脚连接到单个输入引脚),计算并比较长度是一个直接的过程。但在许多典型设计方案中并非如此 ——信号路径中可能包含串联端接器件,或者信号包含两个以上的引脚,此时可能会采用 Balanced T 或 Fly-By 的布线拓扑,如下图所示。

采用 Balanced T 拓扑布线的四颗 DDR2 RAM 芯片。 ##
采用 Balanced T 拓扑布线的四颗 DDR2 RAM 芯片。 ##

解决方案

设计人员的工作是将设计需求(例如为满足时序预算所允许的最大走线长度)转化为一组设计规则,例如用于确保满足时序的 Length 规则,以及用于检测潜在时序不匹配的 Matched Length 规则。

此时,设计人员是从功能角度来理解信号的(例如,“这根地址信号必须从该连接器布到每个存储器器件。为实现这一点,我将采用 fly-by 拓扑布线,并在末端放置一个端接电阻。我也可能需要在源端加一个串联端接器”)。即使地址 A0 经过了一个端接电阻,对设计人员而言,该电阻另一侧的信号仍然是 A0。

但 PCB 编辑器 只把每个信号看作一组相互连接的引脚(通常称为 net)——Net A0 从该连接器引脚到这个存储器器件引脚,再到另一个存储器器件引脚,依此类推。一旦加入串联端接电阻,这条地址线就会变成两个离散的 net。这会使设计人员难以指定关键设计需求,例如 Length 和 Matched Length 设计规则。

这可以通过一个称为xSignals  (或 extended Signal)的功能来管理。该功能使高速信号路径能够被正确地视为“路径”——信号从源到目的地的传播路径,途中可穿过端接器件 以及分支。

xSignal 本质上是设计人员定义的、在两个节点之间的信号路径。这两个节点可以位于同一个 net 内,也可以位于由某个器件隔开的关联 net 中。随后即可用 xSignal 来限定相关设计规则(如 Length 和 Matched Length)的作用范围,并在交互式长度调谐等设计任务中遵循这些规则。

创建新的 xSignal

xSignal 是设计人员定义的两个节点之间的信号路径; 这两个节点可以在同一个 net 内 也可以在不同的 net 中。

xSignal 可通过以下方法定义:

  1. 使用 xSignals Multi-Chip Wizard。 这将是创建 xSignal 最常用的方法,并在下文进行说明

或者,也可以先选择感兴趣的对象,然后再选择相应命令来使用以下方法:

  1. 基于所选焊盘创建单个 xSignal。选择所需的起始焊盘和结束焊盘(如果存在串联端接器件,这些焊盘可以位于不同的 net 中)。焊盘可以在设计空间中直接选择,也可以在 PCB 面板的 Nets 模式下定位并选择焊盘(如下图所示)。选中焊盘后,可在设计空间中右键单击所选焊盘 然后运行 xSignals » Create xSignal from Selected Pins 命令,或在 PCB 面板中右键单击所选焊盘之一并运行 Create xSignal 命令。新的 xSignal 将列在 PCB 面板的 xSignals mode of the PCB panel 中。

    当你基于所选引脚(封装焊盘)定义 xSignal 时,在运行 Create 命令之前,只选择起始焊盘和结束焊盘。

    新 xSignal 的名称将由两个 net 名称组合而成,并用连字符分隔。xSignal 名称可在 PCB 面板的 xSignals 模式中编辑。

    可将新的 xSignal 添加到某个 xSignal 类中,在面板的 xSignal Classes 区域右键创建新类并向其中添加成员。

  2. 选择源器件,然后在所选器件上右键并从上下文菜单中选择 xSignal » Create xSignals between Components command。将打开 Create xSignals Between Components 对话框,并选中所选源器件。该对话框在下文进行说明
  3. 在设计空间中选择一个或多个串联器件 然后在所选器件之一上右键并从上下文菜单中选择 xSignal » Create xSignals from Connected Nets command。将打开 Create xSignals From Connected Nets 对话框。所选源器件以及连接到该器件的 net 将被选中。该对话框在下文进行说明
  4. 在某些情况下,你可能希望在现有 xSignal 内创建一个 xSignal,此时可使用 PCB 面板的 xSignal 模式。确保面板顶部启用 Select 选项,找到当前 xSignal,在面板的 xSignal Primitives 区段中选择所需焊盘,然后在设计空间中右键单击所选焊盘之一,并使用本列表第 2 步所述的方法完成流程。

在面板的 Nets 模式中选择两个焊盘,右键单击所选焊盘之一,然后选择 Create xSignal。注意这些焊盘位于不同的 net 中。
在面板的 Nets 模式中选择两个焊盘,右键单击所选焊盘之一,然后选择 Create xSignal。注意这些焊盘位于不同的 net 中。

如果起始焊盘和结束焊盘在同一个 net 中,xSignal 将采用 <NetName>_PPn 的命名形式,其中 n 是用于区分该 net 中定义的多个 xSignal 的下一个可用整数。如果起始焊盘和结束焊盘在不同的 net 中,xSignal 将采用 <StartNet>_<EndNet>_PPn 的命名形式,其中 n 是用于区分该 net 组合中定义的多个 xSignal 的下一个可用整数。

xSignals Multi-Chip Wizard

xSignals Multi-Chip Wizard 用于在单个源器件与多个目标器件之间创建 xSignal。Wizard 采用面向器件的方法来识别潜在的 xSignal——你选择一个源器件、关注的 net 以及目标器件,随后 Wizard 会分析从源器件到目标器件的所有潜在路径,路径可穿过串联无源器件并沿任意分支延伸。作为设计人员,你可以选择希望生成的 xSignal ,并且在需要时也可以创建 Matched Length 设计规则。Wizard 还可用于为多种常见接口与存储器电路自动创建 xSignal 和 xSignal 类。

 在此 Wizard中,输出引脚称为 Source,目标输入引脚称为 Destination

该向导也是一个可多次运行的工具——从你在 xSignal Routes 页面最初创建的 xSignal 总主组中,你可以选择其中的一个子集,定义类与规则,然后返回主组,再选择另一个子集,为其定义类与规则,如此循环。

Wizard 的一大优势在于 Wizard 与 PCB 编辑器之间的协同操作非常便捷。在向导任意页面单击某个 xSignal,PCB 上对应的焊盘以及任何布线都会被可视化高亮显示。

在当前阶段,该向导不支持自动添加 T 形结点标识(通常称为 tie-point 或 branch-point)。如果你的设计包含分支布线,建议你:

  1. 若存在无源器件(例如串联端接电阻),先从源器件到无源器件进行长度调谐。
  2. 对每个分支进行长度调谐,从 T 结点到目标器件。
  3. 如有需要,再对无源器件到 T 结点之间的剩余长度进行调谐(若没有无源器件,则从源端到 T 结点)。
如果你只需要调谐各分支的长度,可在 T 结点处的布线中放置一个单层、单焊盘器件,以创建用户定义的分支点。更多信息请参阅下方的 Defining the Branch Point in a Balanced T Pattern 小节。

要访问 xSignals Multi-Chip Wizard,请从主菜单选择 Design » xSignals » Run xSignals Wizard 命令,或在 PCB 布局中右键然后选择 xSignals » Run xSignals Wizard。将显示向导的起始页面。

xSignals Multi-Chip Wizard 的起始页面xSignals Multi-Chip Wizard
xSignals Multi-Chip Wizard 的起始页面xSignals Multi-Chip Wizard

xSignals Multi-Chip Wizard 模式

Wizard 的第二页,你将被要求选择 Custom Multi-Component InterconnectOn-Board DDR3 / DDR4USB 3.0Custom Multi-Component Interconnect 模式用于在所选源器件与多个目标器件之间定义多个 xSignal,而 On-Board DDR3 / DDR4 模式用于为你的 DDR3 或 DDR4 存储器创建 xSignal。USB 3.0 模式会为每个 USB 3.0 通道创建 xSignal、xSignal 类以及 Matched Length 规则。请根据需要选择合适的模式。

元件之间创建 xSignals 对话框

如果需要定义大量 xSignals,使用 Create xSignals Between Components 对话框会更高效。该对话框可通过 Design » xSignals » Create xSignals 命令访问,提供源(Source)与目标(Destination)元件,并允许在一次操作中创建一个或多个 xSignals。使用该对话框可快速识别并创建多个 xSignals,并将其添加到所需的 xSignal class。

方法如下:
方法如下:

选择一个 Source Component

  1. 选择一个或多个所需的 Destination Components
  2. 选择感兴趣的 Source Net(s)。此时会列出当前连接到所选源元件的所有网络。对于与特定类相关的网络,请从 Net Class 下拉列表中选择该类。
  3. 单击 Analyze 按钮。软件会尝试识别在所选网络下、所选源与目标元件之间可能存在的 xSignals。所有包含所选网络并在所选源与目标元件之间延伸的可能 xSignals,都会列在 xSignals 字段中。注意:分析算法会沿着所选网络的当前拓扑结构进行跟踪,这会影响所建议的 xSignals。
如有需要,软件还可以通过在 Analyze 下拉列表中选择相应选项来搜索串联器件:Search for direct connectionsThrough 1 series componentThrough 2 series componentsMultipath coupled nets
  1. 完成分析后,潜在的 xSignals 将列在对话框下方区域,并且默认全部启用以供创建。请仔细检查建议的 xSignals 列表,只启用确实需要的那些。可使用右键快捷菜单中的命令来切换多条条目的启用状态。
  2. 在对话框底部选择所需的 class,或输入名称以创建新类。如果未选择任何类,xSignals 仍会被创建,你可以在 Object Class Explorer 对话框(Design » Classes)中将它们添加到任意 xSignal 类。使用类可以大幅简化设计规则的创建与配置。
  3. 单击 OK 以创建 xSignals。

对话框将关闭,你将返回到设计空间。新的 xSignals 将列在 PCB 面板的 xSignals 模式中。

使用每个列表上方的筛选器可快速定位感兴趣的器件或网络;支持通配符。

从已连接网络创建 xSignals 对话框

如果你要创建包含串联端接器件的 xSignals,一个好的方法是使用 Create xSignals from connected nets 命令。只要在设计空间中选中了器件,即可通过主菜单中的 Design » xSignals 子菜单或右键 xSignals 子菜单使用该命令。

该命令用于从选定的串联端接器件(如电阻或电容)向外构建 xSignals。它既支持一个或多个分立器件,也支持一个或多个多实例的封装式器件(例如电阻网络)。运行该命令后,将打开 Create xSignals From Connected Nets 对话框。

使用该对话框创建跨越所选串联器件的 xSignals。在此示例中,提出了两个可能的 xSignals,但只会创建其中一个。
使用该对话框创建跨越所选串联器件的 xSignals。在此示例中,提出了两个可能的 xSignals,但只会创建其中一个。

操作方法为:

  1. 选择一个 Source Component
  2. 选择感兴趣的 Source Net(s)。当前连接到所选源器件的所有网络都会列出。对于属于特定类的网络,可从 Net Class 下拉列表中选择该类。
  3. 单击 Analyze 按钮。软件会尝试识别针对所选源器件及其所选网络可能存在的 xSignals。所有可能的 xSignals 将列在 xSignals 字段中。
  4. 完成分析后,潜在的 xSignals 将列在对话框下方区域,并且默认全部启用以供创建。请仔细检查建议的 xSignals 列表,只启用确实需要的那些。可使用右键快捷菜单中的命令来切换多条条目的启用状态。
  5. 在对话框底部选择所需的 class,或输入名称以创建新类。如果未选择任何类,xSignals 仍会被创建,你可以在 Object Class Explorer 对话框(Design » Classes)中将它们添加到任意 xSignal 类。使用类可以大幅简化设计规则的创建与配置。
  6. 单击 OK 以创建 xSignals。

对话框将关闭,你将返回到设计空间。新的 xSignals 将列在 PCB 面板的 xSignals 模式中。

使用每个列表上方的筛选器可快速定位感兴趣的器件或网络;支持通配符。

网络拓扑的作用

当你定义一个 xSignal 时,它是在两个节点或焊盘之间定义的。然而,当你在 PCB 面板的 xSignals 模式中选择该 xSignal 时,它实际上会沿着这两个焊盘之间的连接线路径显示,表明这是软件假定该 xSignal 将要布线的路径。之所以如此,是因为它遵循了为该网络定义的拓扑。网络拓扑由适用的 Routing Topology 设计规则定义;默认拓扑为 Shortest。

这个简单动画展示了一个 CPU 连接到四颗 DDR3 存储芯片,并将采用飞线式(fly-by)布线策略。DRAM_A2 xSignal 类包含四条 xSignals。首先选中该类,然后依次选中每条 xSignal。你可以看到 xSignal 路径如何遵循网络拓扑,而当前拓扑设置为默认值——Shortest。

由于网络拓扑当前设置为 Shortest,这些 xSignals 并未沿着所需的处理器到存储芯片的路径。
由于网络拓扑当前设置为 Shortest,这些 xSignals 并未沿着所需的处理器到存储芯片的路径。

如果你计划使用 Create xSignals Between Components 对话框,则需要配置网络的拓扑(一个或多个),以确保 xSignal 分析算法能够理解预期的 xSignal 布线路径。

xSignal 创建命令

除了 Design » xSignals » Create xSignals 命令外,在满足特定条件时,xSignals 子菜单中还提供其他 xSignal 创建命令。

下面汇总了这些命令及其可用条件:

命令 说明
Create xSignal from selected pins

立即创建一条 xSignal。该命令在设计空间中选中两个或更多焊盘时可用,并且与在所选焊盘之一上右键时出现的命令相同。

Create xSignals between components

当在设计空间中选中器件时,该命令可用。运行后将打开 Create xSignals Between Components 对话框,并预先选中这些器件。请确保选择了正确的 Source 和 Designation 器件,然后完成分析/创建流程。

启动命令后,将打开 Create xSignals Between Components dialog。使用该对话框按如下方式创建 xSignals:

  1. 所选源器件会在 Source Component 区域中显示为已选中。
  2. 工作区中选中的其他器件会在 Destination Components 区域中显示为已选中。若未选中,请现在进行选择。
  3. 默认情况下,将选中与源器件焊盘相关的所有网络(在 Source Component Nets 区域中)。请按需调整该选择。
  4. 单击 Analyze 按钮——软件会尝试针对所选网络,识别所选源器件与目标器件之间可能存在的 xSignals。

    请注意,分析算法会遵循所选网络的当前拓扑。
    如有需要,软件还可以搜索串联器件,可从该按钮关联的下拉菜单中选择相应模式。可用模式为:Search for direct connectionsThrough 1 series componentThrough 2 series componentsMultipath coupled nets
  5. 所有识别到的 xSignals 会列在对话框的 xSignals 区域中。默认情况下全部选中以供创建——请按需调整。
  6. 你也可以选择将创建的 xSignals 关联到某个 xSignal 类。可以选择现有 xSignal 类,或为新类输入名称。也可以留空;之后仍可将这些 xSignals 添加为所需类的成员。
  7. 单击 OK 创建 xSignals。对话框将关闭,你将返回到设计空间,此时会呈现一个筛选视图以显示新创建的 xSignals。如果指定了 xSignal 类,则会创建该类(若尚不存在)并将 xSignals 关联到该类。
Create xSignals from connected nets

当存在一个或多个串联端接器件需要创建 xSignals 时使用此命令。选择端接器件,然后运行命令以打开 Create xSignals from Connected Nets 对话框,准备完成创建一组 xSignals 的流程。使用该对话框按如下方式创建 xSignals:

  1. 所选源器件会在 Source Component 区域中显示为已选中。
  2. 默认情况下,将选中与源器件焊盘相关的所有网络(在 Source Component Nets 区域中)。请按需调整该选择。
  3. 单击 Analyze 按钮——软件会尝试识别从所选器件发出的、针对所选网络可能存在的 xSignals。

    请注意,分析算法会遵循所选网络的当前拓扑。
  4. 所有识别到的 xSignals 会列在对话框的 xSignals 区域中。默认情况下全部选中以供创建——请按需调整。
  5. 你也可以选择将创建的 xSignals 关联到某个 xSignal 类。可以选择现有 xSignal 类,或为新类输入名称。也可以留空;之后仍可将这些 xSignals 添加为所需类的成员。
  6. 单击 OK 创建 xSignals。对话框将关闭,你将返回到设计空间,此时会呈现一个筛选视图以显示新创建的 xSignals。如果指定了 xSignal 类,则会创建该类(若尚不存在)并将 xSignals 关联到该类。
Create xSignals

打开 Create xSignals Between Components 对话框。该命令始终可用。使用该对话框按如下方式创建 xSignals:

  1. Source Component 区域中选择一个源器件。Destination Components 区域中选择一个或多个目标器件。
  2. 与源器件焊盘相关的所有网络会列在 Source Component Nets 区域中。选择感兴趣的网络。
  3. 单击 Analyze 按钮——软件会尝试针对所选网络,识别所选源器件与目标器件之间可能存在的 xSignals。

    请注意,分析算法会遵循所选网络的当前拓扑。
    如有需要,该软件也可以通过从按钮关联的下拉菜单中选择相应模式,来搜索串联元件。可用模式包括:Search for direct connectionsThrough 1 series componentThrough 2 series componentsMultipath coupled nets
  4. 所有已识别的 xSignals 都会列在对话框的 xSignals 区域中。默认情况下会全选以便创建——请按需调整。
  5. 你也可以选择将创建的 xSignals 关联到某个 xSignal 类。可以选择一个现有的 xSignal 类 或为新类输入名称。也可以将该字段留空;之后仍可随时将这些 xSignals 添加为所需类的成员。
  6. 单击 OK 以创建 xSignals。对话框将关闭,并返回到设计空间;此时会呈现一个过滤视图,显示新创建的 xSignals。如果指定了 xSignal 类,则会创建该类(若尚不存在)并将 xSignals 关联到其中。

在平衡 T 形结构中定义分支点

平衡 T 布线策略的挑战之一,是如何使主干与 T 点之后各分支的长度均衡。网络中可用的节点仅位于焊盘处,因此无法分别为主干、以及从分支点到各分支末端定义独立的 xSignals。分支点在下图中以红点标示。

解决该问题的一种方法是在该网络中添加一个单引脚器件。创建一个仅包含单个焊盘的器件,其焊盘尺寸与设计中使用的过孔尺寸一致。如果分支点器件焊盘为单层,那么还可以与盲孔或埋孔过孔配合使用:将其放置在过孔的起始层或终止层,从而在布线创建方式上获得完全的灵活性。如果你只希望在 PCB 上包含分支点器件,请将分支点器件的 Type 设置为 Mechanical,以将其从 BOM 中排除,并避免与原理图同步时出现问题。如果你计划在原理图中也包含分支点器件,则可将器件 Type 设置为 Standard (no BOM)

平衡 T 布线可能需要在中间分支点之间进行长度匹配。
平衡 T 布线可能需要在中间分支点之间进行长度匹配。

由于分支点是网络中的一个节点,现在你可以仅为主干、每条主要分支以及(如有需要)每条次要分支定义 xSignals。随后可用这些 xSignals 来限定匹配长度设计规则的作用范围,从而让设计人员完全控制长度匹配需要细化到何种程度。 

管理 xSignals

PCB 面板的模式下,其三个主要区域会改变以反映当前 PCB 设计的 xSignal 层级结构(自上而下依次为):

  • xSignal Classes
  • 类中的单个 xSignals
  • 单个 xSignal Primitives(构成某个 xSignal 的焊盘、走线与过孔)

xSignal Classes 区域

xSignal Classes 区域会列出已定义的 xSignal 类集合,或 所有可用类(<All xSignals>)。

选择一个类,可在中间区域(xSignals)查看其 xSignals 列表,并在 PCB 设计空间中显示它们。

要基于现有 xSignal 集合创建新的 xSignal 类,请在该区域内右键,然后从快捷菜单选择 Add Class,以打开 Edit xSignal Class dialog。该对话框会列出可用的 xSignals,可通过管理按钮将其添加到新类或从新类中移除。使用 Name 字段为新的 xSignal 类定义合适的名称。

通过在 Edit xSignal Class 对话框中添加/移除 xSignal 成员来创建或添加到某个 xSignal 类。
通过在 Edit xSignal Class 对话框中添加/移除 xSignal 成员来创建或添加到某个 xSignal 类。

该面板区域的右键快捷菜单还提供移除(Delete)或更改其在 PCB 设计空间中的可视化呈现方式(例如 Change xSignal Color)的功能。

要了解更多关于类的使用,请参阅 Working with Classes on a Schematic & PCB 页面。

xSignals 区域

面板的中间区域会显示在上方区域中所选 xSignal 类的 xSignals。

默认情况下,每个 xSignal 会列出以下信息:

  • – 此功能有两个用途:\n\t
    • 颜色背景 – 分配给该 xSignal 的颜色(在设计空间中表示 xSignal 的细线颜色)。右键可对当前选中的所有 xSignals 执行 Change xSignal Color 。
    • 可见性复选框 – 用于始终显示该 xSignal ,无论其当前是否被选中。
  • Name – xSignal 的名称。
  • Node Count – 该 xSignal 中焊盘的总数。
  • Routed Length – 已布线的走线与圆弧段长度之和,加上通过过孔的垂直距离(见下方注释)。已布线长度计算器不会尝试解析重叠的走线段或焊盘内部的蛇形/摆动布线。
  • Signal Length – 对总的节点到节点距离进行精确计算。以下说明适用于信号长度计算:\n\t
    • 解析焊盘内部的重叠与蛇形/摆动。
    • 处理由走线与圆弧以外对象创建的布线路径(例如区域或覆铜)。
    • 包含通过过孔的垂直距离(见下方注释)。
    • 包含该 xSignal 的 Total Pin/Package Length包含该 xSignal 的 Un-Routed (Manhattan) Length
    • 未满足适用的 Length/Matched Length 设计规则时,会通过在彩色背景上显示信号长度来标记:过短为黄色,过长为红色。

      参见 Length Tuning,了解 Length 与 Matched Length 设计规则如何应用。
  • Total Pin/Package Length – 该 xSignal 中所有焊盘的 Pin Package Length 值之和。该值定义为 PCB 焊盘的属性 ,也可在原理图引脚中指定。
  • Unrouted (Manhattan) Length – 所有未布线段的垂直加水平(X+Y)距离。
  • Margin – 实际信号长度与适用 Length/Matched Length 设计规则所定义目标信号长度之间的差值。

在该区域内右键,然后 使用 Columns 子菜单添加以下列:

  • Delay – 信号沿该路径传播所需的时间。
使用 Columns 子菜单显示/隐藏列。
Vertical distance through a via – 信号通过过孔的垂直行进距离,等于起始层与终止层铜层之间所有层厚(铜层与介质层)之和,再加上起始层厚度的一半与终止层厚度的一半。层厚在 Layer Stack 中定义。

xSignal Primitives 区域

PCB 面板的第三个区域 xSignal Primitives 会列出当前所选 xSignal 的所有组成元素(基元)。

勾选该区域的 Show nodes only 复选框,可将基元列表限制为作为 xSignal 起点/终点节点的焊盘。在此模式下,所选 xSignal 会在 PCB 设计空间中显示为由节点焊盘通过一条细线(而非走线)连接,表示 xSignal 路径。

下方的 xSignal Primitives 区域会列出所选 xSignal 的所有元素,例如焊盘、过孔和走线,以及它们对应的延迟。
下方的 xSignal Primitives 区域会列出所选 xSignal 的所有元素,例如焊盘、过孔和走线,以及它们对应的延迟。

在设计空间中显示 xSignals

xSignals 在设计空间中以细线显示。该线表示 xSignal 所遵循的路径。线的总长度是该 xSignal 信号长度中的 X/Y 贡献。Z(垂直)方向对总信号长度的贡献如上所述。

在下图中,显示了差分对的 xSignals。该对中未被选中的成员之 xSignal 仍然可见,因为面板中该 xSignal 的复选框已启用。

xSignals 在设计空间中以细线表示。尽管面板中只选中了其中一个,但由于启用了可见性复选框,该差分对中的两个 xSignal 都保持可见。
xSignals 在设计空间中以细线表示。尽管面板中只选中了其中一个,但由于启用了可见性复选框,该差分对中的两个 xSignal 都保持可见。

删除 xSignal

在面板中选择该 xSignal,然后单击 xSignals 列表下方的 Delete 按钮。或者右键并从快捷菜单选择 Delete,或在键盘上按 Delete

xSignal 查询关键字

PCB 编辑器包含一个强大且复杂的 filtering engine。该引擎用于在设计空间中搜索对象时识别对象、在交互式与自动化设计任务中应用规则、以及检查规则符合性。设计人员通过编写查询来告诉过滤引擎他们关注哪些对象,查询中使用过滤引擎可识别的查询关键字。

已新增以下 xSignal 类型查询关键字,用于设计规则与设计空间过滤器:

成员关系检查类关键字

  • InxSignal - 对象是否在指定的 xSignal 中,例如: InxSignal('DRAM_A0_PP1')
  • InxSignalClass - 对象是否在指定的 xSignal 类中,例如:InxSignalClass('PCIE')
  • IsxSignal - 对象是否为具有指定名称的 xSignal,例如:IsxSignal('DRAM_A0_PP1')

属性检查类关键字

  • InAnyxSignal - 对象是否在任意 xSignal 中,例如:InAnyxSignal

xSignals 的设计规则支持

设计规则用于将 你的需求转换为 PCB 编辑器能够理解并遵循的一组指令。规则可以在对象放置期间检查(称为 Online DRC),也可以作为后处理检查(称为 Batch DRC)。xSignals 可用于定义设计规则必须应用到的对象范围。

了解更多关于 Design Rules

了解更多关于 Length Tuning

Matched Length Rule

匹配长度 设计规则用于确保指定网络(net)的长度落在指定范围内。该规则在高速设计中至关重要,因为挑战不仅在于信号到达所需的时间(由总体长度决定),更在于指定信号“同时”到达的重要性。根据信号翻转速度、信号功能以及板材材料的不同,允许的差异可能大到 500 mil,也可能小到 1 mil。

下图展示了一个匹配长度设计规则示例:该规则被配置为针对 PCIExSignal 类中的 xSignals,并检测该 xSignals 类中每个差分对内部的长度差。类中的每一对都必须具有布线长度,使得该对中两条网络之间的 Delay Tolerance不超过 2ps的延迟。

请注意,匹配长度设计规则的约束(Constraints)要求你在以下两者之间进行选择:匹配所有目标网络的长度(Group Matched Lengths),或在目标网络中的每个差分对内匹配两条网络。
请注意,匹配长度设计规则的约束(Constraints)要求你在以下两者之间进行选择:匹配所有目标网络的长度(Group Matched Lengths),或在目标网络中的每个差分对内匹配两条网络。

下图显示在面板中选中了 PCIE_TX xSignal 类,并在设计空间中选中了这些 xSignals。

除了 PCIE 类之外,还为 TX 和 RX 对定义了类。注意,其中一个 TX xSignal 未通过适用的匹配长度规则。 ##
除了 PCIE 类之外,还为 TX 和 RX 对定义了类。注意,其中一个 TX xSignal 未通过适用的匹配长度规则。 ##

如果你计划对同时包含单根网络和差分对的 xSignals 进行长度调谐,请创建以下规则:

  • 一条匹配长度规则,用于定义长度匹配要求 between nets and differential pairs in xSignals。要将规则配置为测试一个网络/对的长度与另一个网络/对的长度之间的匹配,请启用 Group Matched Lengths 选项。
  • 第二条优先级更高的匹配长度规则,用于定义 within-pair 的长度匹配要求。要将规则配置为测试某个差分对中一个成员与另一个成员之间的匹配,请启用 Within Differential Pair Length 选项。

对这类 xSignals 进行长度调谐的一个好方法是:

  1. 先布线该 xSignal 的网络与差分对。
  2. 使用 Interactive Length Tuning 命令对单根网络进行长度调谐。
  3. 使用 Interactive Differential Pair Length Tuning 命令对差分对进行长度调谐 between。长度调谐会将最长差分对中的最长信号长度作为目标长度(Target Length),并将该对中最长的网络调到该长度。
  4. 使用 Interactive Length Tuning 命令将每个差分对中较短的网络 within进行长度调谐,使其与同对中的另一条网络匹配。
  5. 现在你可以使用 PCB Rules and Violations 面板检查 within-pair 匹配网络长度规则。操作方法:在面板的 Rule Classes 区域中选择 Matched Net Lengths,然后在所需的 Matched Length 规则上右键,并从上下文菜单中选择 Run DRC Rule <RuleName> 命令。如有需要,调整单网络调谐的折叠项(accordion)。
  6. 然后使用 PCB Rules and Violations 面板按刚才描述的流程检查 between-pair 匹配网络长度规则。如有需要,调整差分对调谐的折叠项。

长度规则

长度 设计规则用于确保总体布线长度在指定范围内。该规则通常用于确保目标网络不超过指定长度,例如用于确保满足电路时序要求。长度规则会遵循上面列出的 xSignal 类型查询。

回流路径规则

回流路径 设计规则用于检查:在规则所针对信号的上方或下方指定参考层上,是否存在连续的信号回流路径。回流路径可以由放置在信号层上的填充(fill)、区域(region)和多边形覆铜(polygon pour)形成,也可以是电源/地平面层(plane layer)。

回流路径层是所选阻抗配置文件(Impedance Profile)中定义的参考层。在 High Speed 规则类别中添加一条新的 Return Path 设计规则。

下图显示了一个回流路径规则违规示例:xSignal 的回流路径多边形上有一个供过孔穿过的孔洞。

使用 PCB Rules and Violations 面板定位回流路径规则违规。 ##使用 PCB Rules and Violations 面板定位回流路径规则违规。 ##

精确的长度计算

定义高速设计规则的一个关键要求,是对布线长度进行精确计算。传统的信号长度计算方法是:将布线路径中所有线段的中心线长度相加,再加上由于过孔高度带来的垂直距离(最初通常由板厚决定)。

这种方法对高速设计并不充分,原因包括:

  • 对象堆叠与重叠——仅简单累加网络中所有对象中心线长度的算法,无法处理对象堆叠或重叠的情况。
  • 对象内部的曲折路径——经常存在完全位于焊盘或过孔内部的布线对象,可能会错误地增加长度,如下方第一张图所示。第二张图展示了当填充对象是布线的一部分时,正确的长度计算方式。
  • 过孔长度——盲孔与埋孔不会贯穿整个板层,因此用板厚来确定垂直长度并不够准确。必须使用实际过孔高度,并考虑过孔穿过的铜层与绝缘层厚度。

PCB 编辑器的长度计算器会返回尽可能准确的布线长度。

长度会沿最短路径的中心线进行精确计算,如这两张图所示。
长度会沿最短路径的中心线进行精确计算,如这两张图所示。

过孔的精确长度会基于其穿越的层以及叠层尺寸来计算。图片来自 PCB 面板的 Nets 模式。
过孔的精确长度会基于其穿越的层以及叠层尺寸来计算。图片来自 PCB 面板的 Nets 模式。

引脚封装延迟

在每一个超过 500 MHz 的高速设计中,连接介质(例如到芯片裸片的键合线)都会给信号引入延迟。这种器件内部延迟称为引脚-封装延迟(pin-package delay)。即使从设计与 PCB 角度看两个器件在引脚上完全兼容,不同器件的封装飞行时间(package flight times)也会不同,因此需要加以考虑。飞行时间信息可在器件的 IBIS 6 文档中找到。封装引脚信息应在 I/O 规划阶段考虑,或在 FPGA 综合之后考虑。所有器件制造商都应能提供封装延迟,通常以皮秒延迟或等效长度的形式给出。

你可以在设计中将该延迟作为 Pin Package LengthPropagation Delay 包含进来,分别通过原理图编辑器中引脚字段,或 PCB 编辑器中焊盘/过孔字段来设置。输入的数值按如下方式处理:

Pin Package Length - 在 PCB 编辑器中,每个网络内所有引脚封装长度会相加得到 Total Pin/Package Length,并计入该网络的总体 Signal Length。请参考 PCB 面板的 Nets 模式以 了解 Signal Length

Propagation Delay - 在 PCB 编辑器中,每个网络内为引脚/焊盘与过孔定义的所有用户延迟值,会与该网络的布线延迟相加。布线延迟由 Layer Stack Manager 内置的 Simbeor® 场求解器自动计算。焊盘与过孔延迟不会自动计算,但可由用户自定义。

  • 长度与匹配长度设计规则可基于 Length 或 Delay 进行配置。
  • Signal Length、Total Pin/Package Length 和 Delay 可在 PCB 面板的多种模式中显示,包括 Nets modeDifferential Pairs Editor mode,以及 xSignals mode。在 PCB 面板中右键单击列标题可启用/禁用列。
  • 来自 Simberian® 的 Simbeor SFS(准静态场求解器)用于根据 Layer Stack Manager 中定义的物理属性计算布线延迟。
  • 用户定义的 Pin Package Length 与 Propagation Delay 数值彼此独立,会按上述方式分别加到 Signal Length 与 Delay 中。由于两者互不影响,如有需要可以同时指定。

在原理图中包含延迟

可在 Properties 面板的 Pin 模式中,将引脚封装长度定义为原理图器件引脚的属性。软件默认使用底层文档的单位;如有需要,可在数值中输入单位。

以所需单位输入引脚-封装长度。
以所需单位输入引脚-封装长度。

  • 也可以在库编辑器中,或在原理图页上通过 Properties 面板的 Component 模式下 Pins 选项卡编辑器件引脚属性。在该选项卡中单击 ,打开 Component Pin Editor,即可编辑该器件所有引脚的全部属性。可直接在表格中编辑数值(选中单元格并输入新值),并可使用光标键移动到相邻单元格。若未输入单位,将自动添加默认单位。
  • 或者,使用 SCH List 面板,将数据手册中的多个 Pin/Pkg LengthsPropagation Delay 值复制/粘贴到原理图库编辑器中所选的一组器件引脚里(显示图片)。除了将剪贴板内容直接粘贴到所选单元格外,你还可以在该面板中右键访问 Smart Grid Paste 对话框,从而对将额外数据导入引脚的过程进行更精细的控制。

在 PCB 编辑器中定义延迟

引脚封装长度(Pin Package Length)和传播延迟(Propagation Delay)值会传递到 PCB 布局中,如 Pad 模式下的 Properties 面板所示。

引脚封装长度和传播延迟值会从原理图传递到 PCB,或者也可以直接在 PCB 中定义。
引脚封装长度和传播延迟值会从原理图传递到 PCB,或者也可以直接在 PCB 中定义。

在 PCB 面板中查看引脚/封装长度与传播延迟

Pin/Pkg Length 会自动纳入 Signal Length 计算中,这些计算结果会在 PCB 面板的多种模式中显示。将面板设置为 Nets 模式,以查看(或编辑)所选网络中各引脚的 Pin/Pkg Length 值。注意 Routed Length 列反映的是布线长度,而 Signal Length 列反映的是布线长度加上该网络中所有引脚/封装长度后的总长度。

Pin/Pkg Length 及其对 Signal Length 的影响显示在 Nets 模式下的 PCB 面板中。
Pin/Pkg Length 及其对 Signal Length 的影响显示在 Nets 模式下的 PCB 面板中。

在下图中,传播 Delay 列显示有两对 xSignals 未满足“匹配长度(Matched Length)”设计规则。由于高亮显示出现在 Delay 列中,这表明该规则配置为使用延迟单位(Delay Units),而不是长度单位(Length Units)。

Delay 列显示有两对 xSignals 未满足“匹配长度(Matched Length)”设计规则。 Delay 列显示有两对 xSignals 未满足“匹配长度(Matched Length)”设计规则。 

信号长度(Signal Length)、总引脚/封装长度(Total Pin/Package Length)和延迟(Delay)可以在 PCB 面板的多种模式中显示,包括 Nets 模式Differential Pairs Editor 模式以及 xSignals 模式。在 PCB 面板的列标题上右键,可启用/禁用列。

长度如何计入 xSignals

Pin/Pkg Length 会在以下情况下自动计入整体 xSignal 长度:

  • 该信号属于某个 xSignal 定义的一部分
  • 该焊盘未采用飞线式(fly-by)布线模式连接(该焊盘只连接一条走线)

采用飞线式布线模式连接的焊盘(具有入口点和出口点)会从长度计算中排除。

与网络相关的术语

在 PCB 编辑器中,使用以下术语:

  • Net – 一组彼此相连的器件引脚(节点)。这些节点如何相互连接的排列方式称为拓扑(topology);默认拓扑为最短(shortest)。
  • From-To – 从概念上讲,一个 From-To 在网络中的两个节点之间运行。From-To 可以根据该网络中的拓扑或节点排列来创建。例如,网络拓扑可能是从 R1-1 到 U1-5 到 U3-2 再到 R5-2。该网络可以有三个 From-To:R1-1 到 U1-5;U1-5 到 U3-2;以及 U3-2 到 R5-2。如果拓扑发生变化,可用的 From-To 也会随之变化。From-To 可在 From-To 模式下的 PCB 面板中创建:点击 Generate 按钮基于拓扑创建,或在同一网络中选择两个焊盘后点击 Add From To 按钮。
  • xSignal – 一组用户自定义的节点,通常是某个网络的子集(从这个节点到那个节点),或是包含串联器件(例如端接电阻)的两个网络的组合。

## 感谢 FEDEVEL Academy 的 Robert Feranec(www.fedevel.com)允许在本页图片中使用 iMX6 Rex 开发板(http://www.imx6rex.com/)。

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

您可使用的功能取决于您所选择的 Altium 解决方案 —— Altium DevelopAltium Agile(Agile Teams 或 Agile Enterprise 版本),或仍在有效订阅期内的 Altium Designer。

如果您在软件中未找到文中提及的功能,请联系 Altium 销售团队了解更多信息。

旧版文档

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

Content