以xSignals定义高速信号路径
挑战
随着器件开关速度的不断提高,保持信号完整性和满足信号时序要求的挑战也随之而来。信号完整性可通过受控阻抗布线进行管理,为此需要仔细设计PCB堆栈和每层上使用的布线宽度。
通过匹配信号路径的布线长度,满足时序要求。对于一组2个引脚的信号路径,每条路径均将从输出引脚运行至输入引脚,因此仅需计算和对比其长度。但就许多典型设计方案而言,情况并非如此,因为信号路径中可能有一个串联终端元件,或者信号中有两个以上的引脚,此时可以使用Balanced T或Fly-By布线拓扑结构进行布线,如下图所示。
解决方案
设计者的任务是将设计要求(例如,为满足时序预估而允许的最大布线长度)转化为一组设计规则(例如,确保满足时序的Length规则,以及检测潜在时序不匹配的Matched Length规则)。
设计者此时将根据信号功能理解信号(例如,“必须将该地址信号从该连接器布线至每个存储设备。为此,我将使用一个终端电阻位于末端的Fly-by拓扑结构。我可能还需要在源头处安装一个串联终接器”)。即使地址A0通过了终端电阻,但对设计者而言,该信号在该电阻另一侧仍然是A0。
但PCB编辑器仅将每个信号简单视为一组相互连接的引脚(通称为网络)——网络A0将从连接器引脚延伸至某个存储元件引脚,然后延伸至另一个存储元件引脚,以此类推。在添加一个串联终端电阻后,该地址线将立即变为两个离散网络。这样将使得设计者难以具体说明关键设计要求(例如,Length和Matched Length设计规则)。
我们可以使用xSignals功能对其进行管理。我们可以使用该功能通过终端元件以及分支,正确处理高速信号路径——在信号源于目的地之间的信号路径。
创建新xSignal
xSignal是两个节点之间的设计者自定义信号路径;它们既可以是同一网络内的两个节点,亦可以是不同网络内的两个节点。
xSignal可以使用以下方法进行定义:
- 使用xSignals Multi-Chip Wizard。该方法是创建xSignals的最常用方法,我们将在xSignals Multi-Chip Wizard页面上详细介绍。
还可以通过在选中相关对象后,选择适当命令,使用以下方法:
-
根据选中的焊盘,创建一个单一xSignal。选中所需的起始焊盘和终止焊盘(如果有串联终端元件,则这些焊盘可以在不同网络中)。焊盘既可以在设计空间中直接选中,亦可以在Nets模式下使用PCB面板进行定位和选中(如下图所示)。选中焊盘后,即可以在设计空间中右键单击选中的焊盘,然后运行xSignals » Create xSignal from Selected Pins命令,或者在PCB面板中右键单击其中一个选中的焊盘,然后运行Create xSignal命令。新xSignal将在PCB面板的xSignals模式中列出。
- 选中源元件,然后右键单击所选元件,并选择上下文菜单中的xSignal » Create xSignals between Components命令。Create xSignals Between Components对话框将打开,所选源元件将被选中。该对话框具体如下。
- 在设计空间中选中一个或多个串联元件,然后右键单击其中一个选中的元件,并从上下文菜单中选择xSignal » Create xSignals from Connected Nets命令。Create xSignals From Connected Nets对话框将打开。所选源元件以及与该元件连接的网络均将被选中。该对话框具体如下具体如下。
- 如果您想在现有xSignal中创建一个xSignal,则可以使用PCB面板的xSignal模式。请确保已启用面板顶部的Select选项,找到当前xSignal,在面板的xSignal Primitives部分选中所需焊盘,然后在设计空间中右键单击其中一个选中的焊盘,并使用本列表步骤2中所描述的方法完成创建过程。
Create xSignals Between Components对话框
如果有大量xSignals需要定义,则使用Create xSignals Between Components对话框将更加有效。可通过Design » xSignals » Create xSignals命令访问该对话框,且该对话框将显示Source Components及其Source Component Nets和Destination Components,并允许您在一次操作中创建一个或许多xSignals。方法是:
方法为:
- 选中一个单一源元件。
- 选中一个或多个需要的目标元件。
- 选中相关Source Net。目前与所选源元件相连的所有网络均将被列出。对于与特定类相关的网络,请在Net Class下拉菜单中选择该类。
- 单击Analyze按钮。 该软件将尝试识别所选网络的源元件与目的元件之间存在的潜在xSignals。包含所选网络且在所选源元件与目的元件之间运行的所有潜在xSignals,均将被列在xSignals字段。请注意,分析算法将遵循所选网络的当前拓扑结构,从而影响建议的xSignals。
- 分析完成后,潜在xSignals将被列在对话框的下部区域,且所有xSignals均将被启用,以完成创建。请仔细检查拟议xSignals列表,且仅启用需要的xSignals。 使用右键单击上下文菜单中的可用命令,在多个入口之间进行切换。
- 在对话框底部选择所需类,或输入一个名称,以创建一个新类。即使未选择任何类,xSignals仍然被创建,并且您可以在Object Class Explorer对话框(Design » Classes)中将其添加到任何xSignal类。 使用类可以显著简化设计规则的创建和配置。
- 点击OK,以创建xSignals。
对话框将关闭,并返回到设计空间。新xSignals将被列在PCB面板的xSignals模式中。
Create xSignals From Connected Nets对话框
如果您正在创建包含串联终端元件的xSignals,则最好使用Create xSignals from connected nets命令。仅需通过主菜单中的Design » xSignals子菜单或右键单击xSignals子菜单选中元件,即可使用该命令。
该命令旨在从选中的串联终端元件(例如,电阻或电容)由内而外创建xSignals。其既支持一个或多个离散元件,亦支持一个或多个多实例包样式元件(例如,电阻网络)。运行此命令后,Create xSignals From Connected Nets对话框将打开。
其方法是:
- 选中一个单一源元件。
- 选中相关Source Net。目前与所选源元件相连的所有网络均将被列出。对于与特定类相关的网络,请在Net Class下拉菜单中选择该类。
- 单击Analyze按钮。该软件将尝试识别所选源元件和所选网络中存在的潜在xSignals。所有潜在xSignals均将被列在xSignals字段中。
- 完成分析后,潜在xSignals均将被列在对话框的下部区域,且所有xSignals均将被启用以进行创建。请仔细检查建议的xSignals列表,且仅启用需要的xSignals。使用右键单击上下文菜单中的可用命令,在多个入口之间进行切换。
- 在对话框底部选中所需类,或者输入名称以创建一个新类。即使未选择任何类,xSignals仍将被创建,且您可以在Object Class Explorer对话框(Design » Classes)中,将其添加到任何xSignal类中。使用类可以显著简化设计规则的创建和配置。
- 单击OK以创建xSignals。
该对话框将关闭,并返回设计空间。新xSignals将被列在PCB面板的xSignals模式中。
网络拓扑结构的作用
当您定义某个xSignal时,其将出现在两个节点或焊盘之间。但当您在PCB面板的xSignals模式下选中该xSignal时,其实际将以这两个焊盘之间的连接线为路径运行,表明该路径为软件假设该xSignal将被布线的路径。软件之所以这样假设,是因为其遵守针对该网络定义的拓扑结构。网络拓扑结构将按照相关布线拓扑设计规则进行定义;默认拓扑结构为Shortest。
该简单动画所示为一个与四个DDR3内存芯片相连的CPU,其中该CPU将按照Fly-by布线策略进行布线。DRAM_A2 xSignal类包含四个xSignal。首先,选中该类,然后依次选中每个xSignal。您可以看到xSignal的路径是如何遵循网络拓扑结构的,且其目前被设置为默认拓扑结构——即,Shortest。
xSignal创建命令
除Design » xSignals » Create xSignals命令外,还可以在满足某些条件的情况下,使用xSignals子菜单中的其他xSignal创建命令。
以下内容总结了相关命令以及何时可以使用这些命令:
指令 | 描述 |
---|---|
Create xSignal from selected pins | 立即创建一个 xSignal。当在设计空间中选择了两个或更多焊盘时,此命令可用,并且与您右键单击所选焊盘之一时显示的命令相同。 |
Create xSignals between components | 当在设计空间中选择元件时,此命令可用。当它运行时,Create xSignals Between Components 对话框打开,其中包含预选的元件。确保选择了正确的来源和目标元件,然后完成分析/创建过程。 |
Create xSignals from connected nets | 当有一个或多个串联终端元件要为其创建 xSignals 时使用此命令。选择终端元件,然后运行命令打开 Create xSignals from Connected Nets 对话框,准备完成创建一组 xSignals 的过程。 |
Create xSignals | 打开Create xSignals Between Components对话框。此命令始终可用。 |
Balanced T模式中分支点的定义
Balanced T型布线策略的其中一项挑战是如何均衡T点以外主干和分支的长度。由于网络中的可用节点仅出现在焊盘上,因此不可能为主干,以及从分支点到每个分支末端单独定义xSignals。分支点在下图中用红点表示。
解决该问题的一个方法是在网络中添加一个单引脚元件。创建一个具有单一焊盘的元件,并确保该焊盘尺寸与设计中所用过孔尺寸相同。如果分支点处元件焊盘为单层,则亦可将其与盲孔或埋孔结合使用,仅需将其放在过孔的起始层或终止层,即可灵活创建布线。如果您只想在PCB上包含分支点元件,请将分支点元件的Type设置为Mechanical,以将其从BOM中排除,并防止与原理图产生同步问题。如果您想在原理图上包含分支点元件,则可以将元件Type设置为Standard(无BOM)。
此时,您可以将分支点作为网络中的一个节点,针对主干、每个主要分支和每个次要分支(如需要)定义xSignals。然后,使用定义的xSignals,确定匹配长度设计规则的范围,以确保设计者能够全面控制长度匹配的精细程度。
管理xSignals
在PCB面板的xSignals模式下,其三个主要区域均会改变,以反映当前PCB设计的xSignal层次(按自上而下的顺序):
- xSignal Classes
- 某个类中的单独 xSignals
- 构成一个xSignal(焊盘、线路和过孔)的单独 xSignal Primitives
xSignal Classes 区域
xSignal Classes区域列出了任何已定义的xSignal类集合或所有可用类(<All xSignals>)。
选择一个类,以在中间区域(xSignals)中查看其xSignals列表,并将其显示在PCB设计空间。
如需从现有xSignal集合中创建一个新xSignal类,则应右键单击该区域,然后从上下文菜单中选中Add Class,以打开Edit xSignal Class对话框。该对话框列出的所有可用xSignals,均可使用管理按钮将其作为成员添加到新类中或从中删除。使用Name字段,为新xSignal类定义一个合适的名称。
还可以使用面板区域的右键上下文菜单,删除(Delete)或更改其在PCB设计空间中的可视化表现形式(例如,Change xSignal Color)。
xSignals 区域
面板的中间区域将显示在以上区域内选中的xSignal Class的xSignals。
各xSignal均将默认列出以下信息:
- – 该部分具有两项功能,即:
- 彩色背景——分配给xSignal的颜色(设计空间中代表xSignal的细线)。右键单击,以针对所有当前选中的xSignal执行Change xSignal Color操作。
- 可见性复选框——使用该复选框时,无论xSignal是否当前已被选中,均将始终显示。
- Name – xSignal的名称。
- Node Count – 该xSignal中的焊盘总数。
- Routed Length – 形成布线的已放置线路和弧线段的长度之和,加上穿过过孔的垂直距离(见下文注释)。布线长度计算器不会尝试解决焊盘内部的线路段重叠或布线摆动问题。
- Signal Length – 节点之间总距离的准确计算。以下注释适用于Signal Length计算:
- 解决焊盘内部的重叠和摆动问题。
- 处理使用线路和圆弧以外的对象(例如,区域或填充)创建的布线路径。
- 包括通过过孔的垂直距离(见下文注释)。
- 包括该xSignal的Total Pin/Package Length。
- 包括该xSignal的Un-Routed (Manhattan) Length。
-
不符合相关Length/Matched Length设计规则的信号长度,将显示在彩色背景上:如果信号长度过短,则显示黄色,如果信号长度过长,则显示红色。
- Total Pin/Package Length – 该xSignal中所有焊盘的所有Pin Package Length值之和。该值即可被定义为PCB焊盘的一个属性,亦可在原理图引脚中指定。
- Unrouted (Manhattan) Length – 所有未布线部分的垂直距离加水平距离(X+Y)。
- Margin – 实际信号长度与相关Length/Matched Length设计规则所定义的目标信号长度之差。
在该区域内右键单击,然后使用Columns子菜单添加以下列:
- Delay – 信号沿该布线传播的时间。
xSignal Primitives 区域
PCB面板的第三个区域,xSignal Primitives,列出了当前选定xSignal的所有组成要素(基元)。
选中该区域的Show nodes only复选框,将基元列表限制在作为xSignal起始/终结点节点的焊盘上。在此模式下,所选中xSignal将在PCB设计空间中显示为由代表xSignal路径的细线(而不是线路)所连接的节点焊盘。
在设计空间显示xSignals
xSignals在设计空间中显示为一条细线。该细线表示xSignal所遵循的路径。细线总长度为X/Y对该xSignal信号长度的贡献值。Z或对整个信号长度的垂直贡献,已在上文讲述。
下图所示为一个差分对的xSignals。由于面板上的xSignal复选框已被启用,因此未被选中差分对成员的xSignal仍然可见。
删除一个xSignal
在面板中选中xSignal,然后单击xSignal列表下方的Delete按钮。或者,在上下文菜单中右键单击并选择Delete,或在键盘上按下Delete键。
xSignal查询关键词
PCB编辑器包括一个功能强大且技术精良的过滤引擎。该引擎用于在设计空间中搜索对象时进行对象识别,在交互式和自动设计任务中应用规则,以及检查规则的符合性。设计者通过使用过滤引擎识别的查询关键字编写查询,以告知过滤引擎他们对哪些对象感兴趣。
下列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)。
► 了解关于Design Rules的更多信息
► 了解关于Length Tuning的更多信息
Matched Length 规则
Matched Length设计规则用于确保指定网络的长度在指定范围内。此规则在高速设计中至关重要,其中的挑战不仅在于信号到达需要多长时间(由其总长度决定),还在于指定信号在相同时间内到达的重要性。根据信号切换速度、信号功能以及电路板上使用的材料,允许差异既可能高达500密尔,亦可能低至1密尔。
下图所示为一个Matched Length设计规则的示例,在示例中,该设计规则配置为针对xSignal类PCIE中的xSignals,并测试该xSignals类中每个差分对的长度差异。该类中每个差分对的布线长度,须确保该差分对内两个网络之间的Delay Tolerance不超过2ps。
下图所示为在面板上选中的PCIE_TX xSignal类,以及在设计空间中选中的xSignals。
如果您想对包含单一网络和差分对的xSignals进行长度调整,请创建以下规则:
- 定义xSignals中网络与差分对之间长度匹配要求的匹配长度规则。为了配置此规则,以参考某个网络/差分对的长度对另一个网络/差分对的长度进行测试,请启用Group Matched Lengths选项。
- 定义对内长度匹配要求的第二条更高优先级匹配长度规则。为了配置此规则,以参考一个差分对成员的长度对另一个差分对成员的长度进行测试,请启用Within Differential Pair Length选项。
对这类xSignals长度进行调整时,最好:
- 对xSignal的网络和差分对进行布线。
- 使用Interactive Length Tuning命令,对单个网络进行长度调整。
- 使用Interactive Differential Pair Length Tuning命令,在差分对之间进行长度调整。在进行长度调整时,应将最长差分对内的最大信号长度用作Target Length,并将该差分对内的最长网络调整至该长度。
- 使用Interactive Length Tuning命令,参考对内其他网络,对每个差分对内的较短网络进行长度调整。
- 此时,您可以使用PCB Rules and Violations面板,检查对内Matched Net Length规则。为此,请在面板的Rule Classes部分选中Matched Net Lengths,然后右键单击所需的Matched Length规则,并在上下文菜单内选中Run DRC Rule <RuleName>命令。必要时,对单一网络折叠部分进行调整。
- 然后,使用PCB Rules and Violations面板,按照上述过程,检查差分对之间Matched Net Length规则。必要时,对差分对调线折叠部分进行调整。
长度规则
Length设计规则用于确保整体布线长度不超过指定范围。此规则通常用于确保目标网络长度不超过指定长度,以确保电路时序要求得到满足。Length规则遵循以上所列xSignal类型查询。
返回路径规则
Return Path设计规则用于检查在规则所针对的信号上方或下方的指定参考层上是否有连续的信号返回路径。返回路径既可以由放置在信号层上的填充、区域和多边形铺铜创建,亦可以是一个平面层。
返回路径层是指在选中Impedance Profile内定义的参考层。在High Speed规则类别中,添加一条新Return Path设计规则。
下图所示为一个违反Return Path规则的情况,其中xSignal返回路径多边形铺铜上有一个可供过孔通过的孔。
精确长度计算
定义高速设计规则的一项关键要求是准确计算布线长度。计算信号长度的传统方法是,将布线中使用的所有线段的中心线长度,以及由过孔高度(最初由电路板厚度决定)产生的垂直距离加在一起。
由于多种原因,该方法不适用于高速设计,包括:
- 对象堆栈和重叠 - 简单将网络中所有对象的中心线长度相加的算法,无法满足堆栈或重叠对象的要求。
- 布线路径在对象内游走 - 通常存在完全在焊盘或过孔内的布线对象,这可能会错误地增加长度,如下面的第一张图片所示。第二张图片显示了当填充对象是布线的一部分时计算长度的正确方法。
- 过孔长度 - 由于盲埋孔并未穿过电路板的所有层,因此电路板的厚度不足以准确确定垂直长度。必须使用实际过孔高度,同时考虑过孔所经过的铜层和绝缘层厚度。
PCB编辑器的长度计算器可以得出最准确的布线长度。
Pin Package 延迟
在每个超过500兆赫兹的高速设计中,连接介质或芯片的结合线均将导致信号延迟。该器件内延迟被称为引脚封装延迟。即使从设计和 PCB 的角度来看,两个器件即使完全引脚兼容,不同器件的封装飞行时间也会不同,因此需要考虑到这一点。可以在器件的 IBIS 6 文档中找到飞行时间信息。应在 I/O 规划阶段或 FPGA 综合后考虑封装引脚的信息。所有器件制造商都应该能够提供封装延迟,它将会以皮秒延迟或长度的形式定义。
我们可以使用原理图编辑器中的引脚或PCB编辑器中的焊盘/过孔字段,以Pin Package Length或Propagation Delay的形式将延迟纳入设计。输入数值将按照以下方式处理:
Pin Package Length - 在PCB编辑器中,每个网络内的所有引脚封装长度均会被加上,以得到总的引脚/封装长度,这包括在该网络的总体信号长度中。请参考PCB面板的Nets模式,了解更多关于信号长度的信息。
Propagation Delay - 每个网络中针对引脚/焊盘和过孔定义的所有用户自定义延迟值,均将被添加到PCB编辑器内该网络的布线延迟中。布线延迟将由内置于Layer Stack Manager中的Simbeor®场求解器自动计算。尽管焊盘和过孔延迟不自动计算,但可以由用户自定义。
将Delay纳入原理图
可将引脚封装长度定义为Pin模式下属性面板中原理图元件引脚的一个属性。软件将默认使用基础文档的Units,必要时,请输入数值与单位。
PCB Editor中Delay的定义
在Properties 面板的Pad模式下,将Pin Package Length和Propagation Delay值转移至PCB布局。
在PCB面板中检查Pin/Package Length和Propagation Delay
Pin/Pkg Length将会被自动纳入Signal Length计算,并在PCB面板的各种模式下显示。将面板设置为Nets模式,以检查(或编辑)所选网络中引脚的Pin/Pkg值。请注意,Routed Length列反映布线长度,而Signal Length列反映布线长度加上该网络中的任何Pin/Pkg Lengths。
在下图中传播Delay列显示,有两对xSignals不符合Matched Length设计规则。当Delay列高亮显示时,表明此规则被配置为使用Delay Units而不是Length Units。
如何将Length纳入xSignals
在下列情况下,Pin/Pkg Length将会被自动纳入整个xSignal长度中:
- 该信号是xSignal定义的一部分
- 该焊盘未以fly-by布线模式连接(仅有一条导线与该焊盘连接)。
网络相关术语
PCB编辑器中,使用了以下术语:
- Net – 是指相互连接的元件引脚(节点)集合。将这些节点连接在一起的布置方式被称为拓扑结构;默认拓扑结构为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既可以在拓扑结构基础上通过单击Generate按钮在PCB面板的From-To模式下创建,亦可以通过选中网络中的两个焊盘,然后单击Add From To按钮创建。
- xSignal – 一组用户定义的节点,通常是一个网络的子集(从这个节点到那个节点),或者两个网络的组合,包括一个串联元件,例如终端电阻。