挑战
随着器件开关速度不断提高,如何保持信号完整性并满足信号的时序要求成为一项挑战。信号完整性可以通过受控阻抗布线来管理,这需要对 PCB 叠层以及各层所使用的布线线宽进行精心设计。
时序要求则通过匹配信号路径的布线长度来满足。对于一组两引脚的信号路径(每条都从一个输出引脚连接到单个输入引脚),计算并比较长度是一个直接的过程。但在许多典型设计方案中并非如此 ——信号路径中可能包含串联端接器件,或者信号包含两个以上的引脚,此时可能会采用 Balanced T 或 Fly-By 的布线拓扑,如下图所示。

采用 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 可通过以下方法定义:
- 使用 xSignals Multi-Chip Wizard。 这将是创建 xSignal 最常用的方法,并在下文进行说明。
或者,也可以先选择感兴趣的对象,然后再选择相应命令来使用以下方法:
-
基于所选焊盘创建单个 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 区域右键创建新类并向其中添加成员。
- 选择源器件,然后在所选器件上右键并从上下文菜单中选择 xSignal » Create xSignals between Components command。将打开 Create xSignals Between Components 对话框,并选中所选源器件。该对话框在下文进行说明。
- 在设计空间中选择一个或多个串联器件 然后在所选器件之一上右键并从上下文菜单中选择 xSignal » Create xSignals from Connected Nets command。将打开 Create xSignals From Connected Nets 对话框。所选源器件以及连接到该器件的 net 将被选中。该对话框在下文进行说明。
- 在某些情况下,你可能希望在现有 xSignal 内创建一个 xSignal,此时可使用 PCB 面板的 xSignal 模式。确保面板顶部启用 Select 选项,找到当前 xSignal,在面板的 xSignal Primitives 区段中选择所需焊盘,然后在设计空间中右键单击所选焊盘之一,并使用本列表第 2 步所述的方法完成流程。

在面板的 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)。如果你的设计包含分支布线,建议你:
- 若存在无源器件(例如串联端接电阻),先从源器件到无源器件进行长度调谐。
- 对每个分支进行长度调谐,从 T 结点到目标器件。
- 如有需要,再对无源器件到 T 结点之间的剩余长度进行调谐(若没有无源器件,则从源端到 T 结点)。
要访问 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 模式
在 Wizard 的第二页,你将被要求选择 Custom Multi-Component Interconnect、On-Board DDR3 / DDR4 或 USB 3.0。Custom Multi-Component Interconnect 模式用于在所选源器件与多个目标器件之间定义多个 xSignal,而 On-Board DDR3 / DDR4 模式用于为你的 DDR3 或 DDR4 存储器创建 xSignal。USB 3.0 模式会为每个 USB 3.0 通道创建 xSignal、xSignal 类以及 Matched Length 规则。请根据需要选择合适的模式。
The Custom Multi-Component Interconnect Mode

在此模式下,向导可用于在选定的源器件与多个目标器件之间定义多个 xSignal。向导采用面向器件的方法来识别潜在的 xSignal;你选择一个源器件、感兴趣的网络以及目标器件;随后它会分析从源器件到目标器件的所有潜在路径,路径会穿过串联无源器件并沿着任何分支延伸。作为设计者,你可以选择希望生成的 xSignal。除了为器件之间多个网络定义端到端的 xSignal 外,向导还允许你为这些端到端信号的各个区段创建 xSignal(从源输出引脚到串联端接器件,以及从串联端接器件到目标输入引脚)。根据你启用的设置,向导还可以创建 xSignal 类以及以这些 xSignal 为目标的 Matched Net Lengths 设计规则。向导完成后,你就可以开始长度调谐流程。
向导通过多个页面进行配置。页面数量取决于电路配置。例如,如果存在串联端接器,将会出现额外页面。下面将描述每个页面的配置。
选择源器件

使用此页面选择一个源器件。使用网格顶部的 Filter 和 Min Pin Count 字段来帮助定位感兴趣的器件。支持 * 和 ? 通配符。
此向导中的网格包含右键快捷菜单,并支持 Windows 标准的多选按键。你也可以使用鼠标左键或空格键来切换所选条目的复选框。
选择源网络

选择连接到所选源器件的感兴趣网络。使用网格顶部的 Filter 和 Label 字段来 帮助定位感兴趣的网络。只有带有所列网络的引脚才会成为信号走线路径的源端。
选择目标器件

选择所需的目标器件。使用网格顶部的器件 Filter 和 Min Pin Count 字段来 帮助定位感兴趣的器件。
当你点击 Next 时,向导将识别在所选器件之间、由已选择网络集合可创建的所有可能 xSignal。如果向导检测到 2 引脚器件且其两个引脚都连接到所选网络,这些器件会被自动识别为串联端接器件,并且在流程后续会出现额外的向导页面。
xSignal 路由

向导的此页面会列出从每个 Source Pin 到每个 Destination Pin 的建议 xSignal。点击某个条目可在 PCB 上高亮显示该 xSignal。
在分析网络路径以识别潜在 xSignal 之后,向导会尝试缩减集合,仅列出你 感兴趣的组合。这些是端到端 xSignal;上图显示了它们位于向导前面页面所选的源器件与目标器件之间。图中还显示向导在每条路径中检测到了串联端接器件 RA1。RA1 实际上是一个四电阻阵列——在这种情况下,向导会自动创建逻辑关联,假设每个电阻跨接在阵列内部,它会将连接到该器件上彼此相对引脚的网络配对。
由于“每个电阻的两端引脚彼此相对”的假设并不总是正确,你可以使用 Dest Pin 列中的下拉框选择其他可用的输出网络。或者,启用网格顶部的 Show all alternative paths 选项,以显示所有可用于生成 xSignal 的潜在网络组合。为你想创建 xSignal 的每一行启用复选框。已启用的 xSignal 将被添加到本页底部 Include created xSignals into class 字段中显示的类里。输入新名称或从下拉列表中选择一个。

xSignals 长度调谐

此页面用于为已启用的 xSignal 自动创建一个 Matched Length 设计规则。启用 only 你希望由该新设计规则作为目标的那些 xSignal。如果你的设计需要多个具有不同要求的规则,在流程后续你将有机会为尚未定义规则的 xSignal 定义额外规则。此第一阶段还会呈现整体端到端 xSignal。在后续向导页面中,你将有机会为 xSignal 内部的区段定义设计规则——例如,为输出引脚到串联端接电阻的区段。
如果你不想对 xSignal 进行长度调谐,请启用 No, I don't want to tune the length of my xSignals。启用该选项后,本页上的其他选项将不可用。若要编辑并访问其他选项,请启用 Yes, I want checked xSignals to have the same routed length。
xSignals Class Base Name 字段用于为当前选定的 xSignal 定义名称。输入一个有意义的名称,并记住你可能会对其他 xSignal 重复此流程。随后,这组 xSignal 将成为一个设计规则的目标:规则名称取自你在 Matched Lengths Rule Base Name 字段中输入的内容,并采用指定的 Length Tolerance。
不确定哪些对象被作为目标?点击一个或多个条目以在 PCB 布局中高亮显示信号路径。
源端到无源器件长度调谐

如果所选网络集合包含串联端接器件,将出现额外的向导页面,让你有机会为这些网络区段创建额外的 xSignal 和设计规则。在上图中,你可以看到向导的此页面用于为所选 xSignal(从源端引脚到端接器件)创建 Matched Length 设计规则。如果你需要为这些创建 xSignal / xSignal 类 / 设计规则,请启用 Yes, I want these segments to have the same length for next xSignals 选项,启用所需的 xSignal,并定义 xSignals Class Base Name、Matched Lengths Rule Base Name 和 Length Tolerance。将会创建额外的 xSignal 以配合此 Matched Length 规则使用。
无源器件到目标端长度调谐

此页面用于为所选 xSignal(从端接器件到目标引脚)创建 Matched Length 设计规则。如需此功能,请启用 Yes, I want these segments to have the same length for next xSignals 选项,启用所需的 xSignal,并定义 xSignals Class Base Name、Matched Lengths Rule Base Name 和 Length Tolerance。将会创建额外的 xSignal 以配合此 Matched Length 规则使用。
报告并继续

向导的此页面将详细列出即将创建的 xSignal 数量以及 即将创建的设计规则数量。
在页面底部,你可以选择:
- Continue length tuning for created signals – 如果你在前面页面禁用了特定 xSignal,而现在需要为这些 xSignal 继续完成定义额外规则的流程,则选择此项。
- Restart wizard for the same source component – 如果你想丢弃这些设置,并在保持相同器件/网络选择的情况下重新启动向导,则选择此项。
- Finish wizard – 如果你已完成此源器件的 xSignal 与设计规则创建,则选择此项。
xSignal 的详细信息位于 xSignal mode 的 PCB 面板中。在该面板中按 Delete 键可移除所选的 xSignal 类或所选 xSignal。

这些 xSignal 已准备好进行长度调谐。要开始,请从主 Route 菜单或 Active Bar 中选择 Interactive Length Tuning 选项(
)。
你可以轻松移除长度调谐的蛇形线(accordion)。在蛇形线的任意线段上单击一次以选中它,然后按 Delete。
请注意,当你放置蛇形线时,现有走线段会在起点和终点处被打断。因此, 如果你重复“调谐-删除”流程几次,最终可能会得到一段看似笔直的布线,但实际上由许多短走线段组成。要将多个小走线段合并回单一线段,请从主菜单运行 Design » Netlist » Clean All Nets 命令。
On-Board DDR3 / DDR4

在此模式下,向导将为板载 DDR3/DDR4 自动创建 xSignal、xSignal Classes、Matched Length Groups、Diff Pair Matched Lengths 规则以及 Fly-By 拓扑。向导假定将使用 fly-by 布线拓扑。
选择源器件

在此页面中,Wizard 会根据位号前缀和引脚数量识别所有潜在的源器件与目标器件。使用 Controller/Memory Devices 字段筛选器件/存储器件,并使用上下箭头按需设置 Min Pin Count,适用于 Source Component 和 Target Components 。然后选择一个源器件并选择目标器件。
地址组

此页面的功能如下:
- Fly-By Topology支持 T-Branch Topology 选项。从下拉列表中选择所需拓扑。
- 如果选择 Fly-By Topology,目标器件将按 fly-by 布线的点到点顺序列出。软件会尝试自动确定顺序。如果在器件放置之前运行向导,则需要使用下拉控件手动设置点到点顺序。
- 如果选择 T-Branch Topology(如上所示),一半目标器件将显示在源器件之前,另一半显示在源器件之后。使用下拉控件按需对目标器件排序。
- Define xSignal Class Name Syntax:
- 起始默认值为
ADDR_PP[#]
- 。
[#] 表示存储器件的数量。
- 如有需要,可以更改
PP 后缀。
- 向导会分析器件并在设计中查找这些后缀,并使用下述方法显示完整的名称语法。如果这些不正确,请更新它们。
- 这里的目标是自动查找与这些功能相对应的网络(net)。找到这些网络后,会将命名语法填入相应字段。
- 随后会检查元件之间的网络;一旦找到后缀,就会识别前缀。例如,向导会查找
_A[#] 来定位地址线。
- 如果未找到以下划线“_”开头的后缀网络,则只查找“_”之后的文本。也会检查其他分隔符,例如“-”或“.”。
- 如果无法自动确定语法,则必须手动定义这些字段。使用下拉列表从板上现有的网络中进行选择。
- 定义好顺序和命名语法后,单击 Analyze Syntax & Create xSignal Classes 按钮以构建 xSignals 列表。向导会根据语法以及元件的连接方式,生成 xSignal Classes,并显示在对话框右侧的网格中。Classes Created 的数量将与存储器器件的数量一致。
- 会显示创建的类数量(例如 4)以及每个类中的 xSignal 网络数量(例如 26)。
- xSignals 会按每个 xSignal class 分组显示为一列。系统会为每个类创建一条 Matched Lengths 设计规则。表格中的子标题表示这些 xSignals 的源元件与目标元件。
- 如果自动生成的列表不完整或不正确,单击 Modify Nets in xSignal Classes 按钮以打开 Edit xSignal Class 对话框,并手动向某个类添加网络或从中删除网络。注意:如果随后再次单击 Analyze Syntax & Create xSignal Classes 按钮,手动更改将会丢失。
识别数据组网络(Data Group Nets)

最后一步是识别所有属于数据组(Data Group)的网络。
本页功能如下:
- 用户定义的 xSignal Class 名称语法:
- 默认起始值为
DATA_BL[#]
- 。
[#] 表示 Byte-Lanes 的数量,该数量由数据线总数除以前面定义的数据总线宽度(Data Bus Width)确定。
- 如有需要,可更改
BL 后缀。
向导会分析元件并在设计中查找这些后缀,然后显示完整的名称语法;如果不正确,请使用下拉列表更新。
- 定义好命名语法后,单击 Analyze Syntax & Create xSignal Classes 按钮以构建 xSignals 列表。向导会根据语法以及元件的连接方式,生成 xSignal Classes,并显示在对话框右侧的表格中。创建的 Classes 数量将与连接到存储器器件的 Byte-Lanes 数量一致。在表格区域上方,会显示创建的类数量(例如 8)以及每个类中的 xSignal 网络数量(例如 11)。
系统会为这些 xSignal Classes 创建 Matched Lengths 设计规则。表格中的子标题表示 Byte-Lane xSignals 的源元件与目标元件。
- 如果自动生成的列表不完整或不正确,单击 Modify Nets in xSignal Classes 按钮以打开 Edit xSignal Class 对话框,并手动向某个类添加网络或从中删除网络。注意:如果随后再次单击 Analyze Syntax & Create xSignal Classes 按钮,手动更改将会丢失。
- 单击 Create Spreadsheet 按钮,生成由向导创建的 xSignals 的 XLS 格式电子表格。
- xSignals 与 xSignal Classes 已创建
向导会自动为以下内容创建 xSignals 和 xSignal Classes:
在 Address Group 页面中详细说明的 Address xSignals。
- 在 Data Group 页面中详细说明的 Data xSignals。
-
USB 3.0

向导可以处理用户指定的每一对“控制器–连接器”之间的所有 USB 3.0 通道。向导会自动评估连接到控制器的差分对网络(Differential Pair nets),检测这些网络是否延伸到连接器。该跨度可以包含无源器件以及多个网络。向导会用一个 xSignal class 来标识每一对差分对,并将该对中的每一条线(leg)标识为一个“控制器到连接器”的 xSignal。
选择 USB 3.0 后,本页将包含 Matched Length Tolerance Within Diff Pair 的设置。请输入合适的值。该值用于向导创建的设计规则,并且可随时在 PCB Rules and Constraints Editor 中更改。此类用户定义设置会保存以供将来使用。
对于 USB 3.0,每个 USB 用户端口称为一个 channel。如图所示,每个通道包含三组差分对:Transmit、Receive 和 Data。对于 USB 3.0,关键的布线设计要求是在每一对内部匹配走线长度;对与对之间的长度匹配并不那么关键。由于这一要求,并且 Matched Length 设计规则需要差分对来检查一对网络内的长度,向导会检查是否已定义 Differential Pair;如果没有,则会自动创建合适的差分对。向导创建的 Matched Length 设计规则随后会被配置为检查 Within Differential Pair Length 的长度匹配。注意:该规则被配置为比较整体 xSignal 内部这对线(leg)的长度;它不会比较每个差分对内部的两条线(leg)长度。选择源与目标元件
在此页面中,向导会基于位号前缀(designator prefix)和引脚数量,识别所有潜在的源元件与目标连接器。

按需为 Controller 位号、Connector 位号以及 Min Pin Count 值设置过滤前缀。
- 选择一个源元件。
- 选择目标元件(可多选)。
- 如果选择多个目标元件,应在向导下一页使用下拉列表,分别检查这些元件的 xSignal 与网络命名语法。
通道定义差分对分组
在此页面中,定义一套命名语法,供向导识别相关的 Transmitter、Receiver 和 Data 差分对网络,并将其纳入 xSignals。随后,每一对 xSignals 会聚类为一个 xSignal class,这些类用于限定 Matched Length 设计规则的作用范围。

本页功能如下:
控制器的位号会显示在 Components 标签旁。其旁边的下拉列表包含在向导上一页中选择的所有 Connectors。
-
- 所示的命名语法选项适用于下拉列表中列出的每个连接器。请依次选择每个连接器,并检查所选命名语法是否完整且合适。
- 如前所述,对于 USB 3.0,每个 USB 用户端口称为一个 channel。你可以将通道数(Channels Total)设置为 1 到 32。通常,每个连接器只有一个通道。在每个 USB 3.0 通道内,有三条差分对路径:Transmit、Receive 和 Data,它们从控制器连接到连接器。向导会为每条正端网络创建一个 xSignal(按需跨越串联器件),并为每条负端网络创建另一个 xSignal,然后创建一个 xSignal class 来表示该“控制器到连接器”的配对。Define xSignal Class Name Syntax 组用于指定这些 xSignal classes 的名称。如果尚未定义,向导也会创建合适的 Differential Pairs。
-
- Define xSignal Class Name Syntax – 创建的 xSignal classes 将按指定方式命名,每个通道会用一个数字值替换
[#]。请按需输入你偏好的字符串。 – 这些字段定义用于识别相关 Transmitter / Receiver / Data 网络名称的掩码(mask)。
- Channel <N>向导内置了大量预定义命名模板,会进行检查并通常会自动填充这些字段。如果没有自动填充,请从下拉列表选择正确名称,或输入合适的网络命名语法。
- 配置好命名字段后,单击 Analyze Nets & Create xSignal Classes 按钮。
- 向导将为所有通道创建 xSignals、xSignal Classes 以及 Matched Length 规则。注意:每次重新运行向导都会创建这些内容。如果你计划再次运行向导,请先删除它们。
- 生成的 xSignal Class 名称及其成员 xSignals 会在网格中详细列出。
- 单击 Create Spreadsheet 按钮,生成由向导创建的 xSignals 的 XLS 格式电子表格。
- 单击 Finish 完成向导。
-
元件之间创建 xSignals 对话框
如果需要定义大量 xSignals,使用 Create xSignals Between Components 对话框会更高效。该对话框可通过 Design » xSignals » Create xSignals 命令访问,提供源(Source)与目标(Destination)元件,并允许在一次操作中创建一个或多个 xSignals。使用该对话框可快速识别并创建多个 xSignals,并将其添加到所需的 xSignal class。

方法如下:
选择一个 Source Component。
- 选择一个或多个所需的 Destination Components。
- 选择感兴趣的 Source Net(s)。此时会列出当前连接到所选源元件的所有网络。对于与特定类相关的网络,请从 Net Class 下拉列表中选择该类。
- 单击 Analyze 按钮。软件会尝试识别在所选网络下、所选源与目标元件之间可能存在的 xSignals。所有包含所选网络并在所选源与目标元件之间延伸的可能 xSignals,都会列在 xSignals 字段中。注意:分析算法会沿着所选网络的当前拓扑结构进行跟踪,这会影响所建议的 xSignals。
如有需要,软件还可以通过在 Analyze 下拉列表中选择相应选项来搜索串联器件:Search for direct connections、Through 1 series component、Through 2 series components 或 Multipath coupled nets。
- 完成分析后,潜在的 xSignals 将列在对话框下方区域,并且默认全部启用以供创建。请仔细检查建议的 xSignals 列表,只启用确实需要的那些。可使用右键快捷菜单中的命令来切换多条条目的启用状态。
- 在对话框底部选择所需的 class,或输入名称以创建新类。如果未选择任何类,xSignals 仍会被创建,你可以在 Object Class Explorer 对话框(Design » Classes)中将它们添加到任意 xSignal 类。使用类可以大幅简化设计规则的创建与配置。
- 单击 OK 以创建 xSignals。
对话框将关闭,你将返回到设计空间。新的 xSignals 将列在 PCB 面板的 xSignals 模式中。
使用每个列表上方的筛选器可快速定位感兴趣的器件或网络;支持通配符。
从已连接网络创建 xSignals 对话框
如果你要创建包含串联端接器件的 xSignals,一个好的方法是使用 Create xSignals from connected nets 命令。只要在设计空间中选中了器件,即可通过主菜单中的 Design » xSignals 子菜单或右键 xSignals 子菜单使用该命令。
该命令用于从选定的串联端接器件(如电阻或电容)向外构建 xSignals。它既支持一个或多个分立器件,也支持一个或多个多实例的封装式器件(例如电阻网络)。运行该命令后,将打开 Create xSignals From Connected Nets 对话框。

使用该对话框创建跨越所选串联器件的 xSignals。在此示例中,提出了两个可能的 xSignals,但只会创建其中一个。
操作方法为:
- 选择一个 Source Component。
- 选择感兴趣的 Source Net(s)。当前连接到所选源器件的所有网络都会列出。对于属于特定类的网络,可从 Net Class 下拉列表中选择该类。
- 单击 Analyze 按钮。软件会尝试识别针对所选源器件及其所选网络可能存在的 xSignals。所有可能的 xSignals 将列在 xSignals 字段中。
- 完成分析后,潜在的 xSignals 将列在对话框下方区域,并且默认全部启用以供创建。请仔细检查建议的 xSignals 列表,只启用确实需要的那些。可使用右键快捷菜单中的命令来切换多条条目的启用状态。
- 在对话框底部选择所需的 class,或输入名称以创建新类。如果未选择任何类,xSignals 仍会被创建,你可以在 Object Class Explorer 对话框(Design » Classes)中将它们添加到任意 xSignal 类。使用类可以大幅简化设计规则的创建与配置。
- 单击 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 并未沿着所需的处理器到存储芯片的路径。
如果你计划使用 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:
- 所选源器件会在 Source Component 区域中显示为已选中。
- 工作区中选中的其他器件会在 Destination Components 区域中显示为已选中。若未选中,请现在进行选择。
- 默认情况下,将选中与源器件焊盘相关的所有网络(在 Source Component Nets 区域中)。请按需调整该选择。
-
单击 Analyze 按钮——软件会尝试针对所选网络,识别所选源器件与目标器件之间可能存在的 xSignals。
请注意,分析算法会遵循所选网络的当前拓扑。
如有需要,软件还可以搜索串联器件,可从该按钮关联的下拉菜单中选择相应模式。可用模式为:Search for direct connections、Through 1 series component、Through 2 series components 和 Multipath coupled nets。
- 所有识别到的 xSignals 会列在对话框的 xSignals 区域中。默认情况下全部选中以供创建——请按需调整。
- 你也可以选择将创建的 xSignals 关联到某个 xSignal 类。可以选择现有 xSignal 类,或为新类输入名称。也可以留空;之后仍可将这些 xSignals 添加为所需类的成员。
- 单击 OK 创建 xSignals。对话框将关闭,你将返回到设计空间,此时会呈现一个筛选视图以显示新创建的 xSignals。如果指定了 xSignal 类,则会创建该类(若尚不存在)并将 xSignals 关联到该类。
|
| Create xSignals from connected nets |
当存在一个或多个串联端接器件需要创建 xSignals 时使用此命令。选择端接器件,然后运行命令以打开 Create xSignals from Connected Nets 对话框,准备完成创建一组 xSignals 的流程。使用该对话框按如下方式创建 xSignals:
- 所选源器件会在 Source Component 区域中显示为已选中。
- 默认情况下,将选中与源器件焊盘相关的所有网络(在 Source Component Nets 区域中)。请按需调整该选择。
-
单击 Analyze 按钮——软件会尝试识别从所选器件发出的、针对所选网络可能存在的 xSignals。
请注意,分析算法会遵循所选网络的当前拓扑。
- 所有识别到的 xSignals 会列在对话框的 xSignals 区域中。默认情况下全部选中以供创建——请按需调整。
- 你也可以选择将创建的 xSignals 关联到某个 xSignal 类。可以选择现有 xSignal 类,或为新类输入名称。也可以留空;之后仍可将这些 xSignals 添加为所需类的成员。
- 单击 OK 创建 xSignals。对话框将关闭,你将返回到设计空间,此时会呈现一个筛选视图以显示新创建的 xSignals。如果指定了 xSignal 类,则会创建该类(若尚不存在)并将 xSignals 关联到该类。
|
| Create xSignals |
打开 Create xSignals Between Components 对话框。该命令始终可用。使用该对话框按如下方式创建 xSignals:
- 在 Source Component 区域中选择一个源器件。在 Destination Components 区域中选择一个或多个目标器件。
- 与源器件焊盘相关的所有网络会列在 Source Component Nets 区域中。选择感兴趣的网络。
-
单击 Analyze 按钮——软件会尝试针对所选网络,识别所选源器件与目标器件之间可能存在的 xSignals。
请注意,分析算法会遵循所选网络的当前拓扑。
如有需要,该软件也可以通过从按钮关联的下拉菜单中选择相应模式,来搜索串联元件。可用模式包括:Search for direct connections、Through 1 series component、Through 2 series components 和 Multipath coupled nets。
- 所有已识别的 xSignals 都会列在对话框的 xSignals 区域中。默认情况下会全选以便创建——请按需调整。
- 你也可以选择将创建的 xSignals 关联到某个 xSignal 类。可以选择一个现有的 xSignal 类 或为新类输入名称。也可以将该字段留空;之后仍可随时将这些 xSignals 添加为所需类的成员。
- 单击 OK 以创建 xSignals。对话框将关闭,并返回到设计空间;此时会呈现一个过滤视图,显示新创建的 xSignals。如果指定了 xSignal 类,则会创建该类(若尚不存在)并将 xSignals 关联到其中。
|
在平衡 T 形结构中定义分支点
平衡 T 布线策略的挑战之一,是如何使主干与 T 点之后各分支的长度均衡。网络中可用的节点仅位于焊盘处,因此无法分别为主干、以及从分支点到各分支末端定义独立的 xSignals。分支点在下图中以红点标示。
解决该问题的一种方法是在该网络中添加一个单引脚器件。创建一个仅包含单个焊盘的器件,其焊盘尺寸与设计中使用的过孔尺寸一致。如果分支点器件焊盘为单层,那么还可以与盲孔或埋孔过孔配合使用:将其放置在过孔的起始层或终止层,从而在布线创建方式上获得完全的灵活性。如果你只希望在 PCB 上包含分支点器件,请将分支点器件的 Type 设置为 Mechanical,以将其从 BOM 中排除,并避免与原理图同步时出现问题。如果你计划在原理图中也包含分支点器件,则可将器件 Type 设置为 Standard (no BOM)。

平衡 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 类。
该面板区域的右键快捷菜单还提供移除(Delete)或更改其在 PCB 设计空间中的可视化呈现方式(例如 Change xSignal Color)的功能。
xSignals 区域
面板的中间区域会显示在上方区域中所选 xSignal 类的 xSignals。

默认情况下,每个 xSignal 会列出以下信息:
-
– 此功能有两个用途:\n\t
- 颜色背景 – 分配给该 xSignal 的颜色(在设计空间中表示 xSignal 的细线颜色)。右键可对当前选中的所有 xSignals 执行 Change xSignal Color 。
- 可见性复选框 – 用于始终显示该 xSignal ,无论其当前是否被选中。
- Name – xSignal 的名称。
- Node Count – 该 xSignal 中焊盘的总数。
- Routed Length – 已布线的走线与圆弧段长度之和,加上通过过孔的垂直距离(见下方注释)。已布线长度计算器不会尝试解析重叠的走线段或焊盘内部的蛇形/摆动布线。
- Signal Length – 对总的节点到节点距离进行精确计算。以下说明适用于信号长度计算:\n\t
- Total Pin/Package Length – 该 xSignal 中所有焊盘的 Pin Package Length 值之和。该值定义为 PCB 焊盘的属性 ,也可在原理图引脚中指定。
- Unrouted (Manhattan) Length – 所有未布线段的垂直加水平(X+Y)距离。
- Margin – 实际信号长度与适用 Length/Matched Length 设计规则所定义目标信号长度之间的差值。
在该区域内右键,然后 使用 Columns 子菜单添加以下列:
使用 Columns 子菜单显示/隐藏列。
Vertical distance through a via – 信号通过过孔的垂直行进距离,等于起始层与终止层铜层之间所有层厚(铜层与介质层)之和,再加上起始层厚度的一半与终止层厚度的一半。层厚在
Layer Stack 中定义。
xSignal Primitives 区域
PCB 面板的第三个区域 xSignal Primitives 会列出当前所选 xSignal 的所有组成元素(基元)。
勾选该区域的 Show nodes only 复选框,可将基元列表限制为作为 xSignal 起点/终点节点的焊盘。在此模式下,所选 xSignal 会在 PCB 设计空间中显示为由节点焊盘通过一条细线(而非走线)连接,表示 xSignal 路径。

下方的 xSignal Primitives 区域会列出所选 xSignal 的所有元素,例如焊盘、过孔和走线,以及它们对应的延迟。
在设计空间中显示 xSignals
xSignals 在设计空间中以细线显示。该线表示 xSignal 所遵循的路径。线的总长度是该 xSignal 信号长度中的 X/Y 贡献。Z(垂直)方向对总信号长度的贡献如上所述。
在下图中,显示了差分对的 xSignals。该对中未被选中的成员之 xSignal 仍然可见,因为面板中该 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),或在目标网络中的每个差分对内匹配两条网络。
下图显示在面板中选中了 PCIE_TX xSignal 类,并在设计空间中选中了这些 xSignals。

除了 PCIE 类之外,还为 TX 和 RX 对定义了类。注意,其中一个 TX xSignal 未通过适用的匹配长度规则。 ##
如果你计划对同时包含单根网络和差分对的 xSignals 进行长度调谐,请创建以下规则:
- 一条匹配长度规则,用于定义长度匹配要求 between nets and differential pairs in xSignals。要将规则配置为测试一个网络/对的长度与另一个网络/对的长度之间的匹配,请启用 Group Matched Lengths 选项。
- 第二条优先级更高的匹配长度规则,用于定义 within-pair 的长度匹配要求。要将规则配置为测试某个差分对中一个成员与另一个成员之间的匹配,请启用 Within Differential Pair Length 选项。
对这类 xSignals 进行长度调谐的一个好方法是:
- 先布线该 xSignal 的网络与差分对。
- 使用 Interactive Length Tuning 命令对单根网络进行长度调谐。
- 使用 Interactive Differential Pair Length Tuning 命令对差分对进行长度调谐 between。长度调谐会将最长差分对中的最长信号长度作为目标长度(Target Length),并将该对中最长的网络调到该长度。
- 使用 Interactive Length Tuning 命令将每个差分对中较短的网络 within进行长度调谐,使其与同对中的另一条网络匹配。
- 现在你可以使用 PCB Rules and Violations 面板检查 within-pair 匹配网络长度规则。操作方法:在面板的 Rule Classes 区域中选择 Matched Net Lengths,然后在所需的 Matched Length 规则上右键,并从上下文菜单中选择 Run DRC Rule <RuleName> 命令。如有需要,调整单网络调谐的折叠项(accordion)。
- 然后使用 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 编辑器的长度计算器会返回尽可能准确的布线长度。

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

过孔的精确长度会基于其穿越的层以及叠层尺寸来计算。图片来自 PCB 面板的 Nets 模式。
引脚封装延迟
在每一个超过 500 MHz 的高速设计中,连接介质(例如到芯片裸片的键合线)都会给信号引入延迟。这种器件内部延迟称为引脚-封装延迟(pin-package delay)。即使从设计与 PCB 角度看两个器件在引脚上完全兼容,不同器件的封装飞行时间(package flight times)也会不同,因此需要加以考虑。飞行时间信息可在器件的 IBIS 6 文档中找到。封装引脚信息应在 I/O 规划阶段考虑,或在 FPGA 综合之后考虑。所有器件制造商都应能提供封装延迟,通常以皮秒延迟或等效长度的形式给出。
你可以在设计中将该延迟作为 Pin Package Length 或 Propagation 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 mode、Differential 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 Lengths 或 Propagation Delay 值复制/粘贴到原理图库编辑器中所选的一组器件引脚里(显示图片
)。除了将剪贴板内容直接粘贴到所选单元格外,你还可以在该面板中右键访问 Smart Grid Paste 对话框,从而对将额外数据导入引脚的过程进行更精细的控制。
在 PCB 编辑器中定义延迟
引脚封装长度(Pin Package Length)和传播延迟(Propagation Delay)值会传递到 PCB 布局中,如 Pad 模式下的 Properties 面板所示。

引脚封装长度和传播延迟值会从原理图传递到 PCB,或者也可以直接在 PCB 中定义。
在 PCB 面板中查看引脚/封装长度与传播延迟
Pin/Pkg Length 会自动纳入 Signal Length 计算中,这些计算结果会在 PCB 面板的多种模式中显示。将面板设置为 Nets 模式,以查看(或编辑)所选网络中各引脚的 Pin/Pkg Length 值。注意 Routed Length 列反映的是布线长度,而 Signal Length 列反映的是布线长度加上该网络中所有引脚/封装长度后的总长度。

Pin/Pkg Length 及其对 Signal Length 的影响显示在 Nets 模式下的 PCB 面板中。
在下图中,传播 Delay 列显示有两对 xSignals 未满足“匹配长度(Matched Length)”设计规则。由于高亮显示出现在 Delay 列中,这表明该规则配置为使用延迟单位(Delay Units),而不是长度单位(Length Units)。
Delay 列显示有两对 xSignals 未满足“匹配长度(Matched Length)”设计规则。
长度如何计入 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 – 一组用户自定义的节点,通常是某个网络的子集(从这个节点到那个节点),或是包含串联器件(例如端接电阻)的两个网络的组合。