Cadence16.3约束规则详解

更新时间:2023-10-07 21:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Allegro 16.3约束规则设置

约束管理器是一个交叉的平台,以工作簿和工作表的形式在 Cadence PCB设计流程中用于管理所有工具的高速电子约束。可以使用约束管理器和SigXplorer Expert 开发电路的拓扑并得出电子约束,可以包含定制约束、定制测量和定制激励。

所谓约束就是用户定义的限制条件,当在板上走线和放置元件时会遵守这些约束。电子约束(ECSets)就是限制PCB 上与电行为有关的对象,比如可以设置某个网络最大传输延迟为2ns。

以下图为一约束设置窗口。

一、说明

先解释一下约束的类型以及约束中用到的简写名词,如下图所示:

1、 NCIs(NET CLASS)

由众多nets或者buses、differential pairs、Xnet所组成的类,可对其赋予相似的约束。如下图所示。

2、NCC(Net Class-Class)

一般用在约束组与组之间的间距的时候使用,如下图。

3、DPr(Differential Pairs)差分对

一组差分对一般由两条Xnet或者net以差分走线的方式组成,如下图。差分对的形成有两种方式:一是由模型指定的差分对,再者就是由用户自己定义的差分对。

? 模型定义的差分对:可以在器件信号模型中指定差分对,可以使用PCB Design,PCB SI,SigXplores 来将模型指定给相应的元件。

? 用户定义的差分对:可以在约束管理器中 Net 一级的对象中创建差分对,可以灵活的更改差分对命名和更改差分对成员,但是没有模型指定差分对的精确性。

以下是设置差分对规则时,需要赋予约束的项。

针对以上约束中用到的一些约束点进行解释说明:

差分对的worksheets包含5个主要的约束目录: (1)Pin Delay

此值指一对网络之间管脚封装上的延迟,单位是时间ns 或者长度mil。 (2) 不耦合长度(Uncoupled Length)

不耦合长度约束是用来限制差分对的一对网络之间的不匹配长度。若“gather control” 设置为ignore,则实际不不耦合长度不包括两个驱动和接收之间的耦合带之外的长度。若“gather control”设置为“include”,包含出芯片的这段不耦合长度。当不耦合(即在差分对刚刚从芯片出来的走线通常是不耦合的,不耦合有一定的长度)长度超过“max”时产生冲突。

(3)相位偏差(Static Phase Tolerance)

相位偏差约束确保差分对成员在转换时是同相和同步的。实际的数值(actual value)从长度上或者时间上反应了差分对成员之间的差值,当差值超出 tolerance 值时,就会有冲突。 (4)最小线间距(Min Line Spacing)

最小线间距约束指差分对之间的最小距离,如果小于设定的最小值则报错。添加的最小线间距约束值必须小于或者等于Primary Gap减去(-)Tolerance,并且也要小于或者等于Neck Gap减去(-)Tolerance。 (5)耦合参数(Coupling Parameters)

这里面包括6个部分需要设置。1、Primary gap :设置的是差分对之间的边到边理想间距,(+/-)tolerance 值是允许Diff Pairs的偏差值,如果间距偏差在范围内,差分对被认为是耦合的;2、Primary width:差分对成员的理想宽度; 3、Neck gap: 约束的是最小允许的边到边的差分间距,当在密集区域走线时,可能切换到neck模式,最小可允许的gap 包括Neck Gap 减去(-)Tolerance,当差分对间距小于ECSet 指定给差分对网络的Min neck width 规则值时,Neck Gap 覆盖任何Primary Gap 值,确保 Neck gap 不要低于任何Min line spaing 值,如果设置了(-)tolerance 值,不需要定义Neck gap ,因为已经说明了需要的Neck gap。;4、Neck width: 最小可允许的差分对宽度,当在比较密集的区域走线的时,可能需要切换到neck模式;5、(+)Tolerance;6、(-)Tolerance。

使用差分计算器可以完成综合线宽和线距的计算以获得特殊的差分阻抗。在约束管理器中右键点击Primary Gap,Neck Gap,或者(+/-)tolerance 相应的单元格,在弹出的菜单选择Change 命令,然后点击按钮差分计算器 (如下图所示),差分计算器仅能完成边对边耦合的差分对计算。

,即可启动

差分对规则说明

分模型定义的差分对和用户定义的差分对来说明: 模型定义的差分对 用户定义的差分对 可以在 PCB Design,PCB SI 中使用Analyze-可以 PCB Design,PCB SI 中在约束管理器中使用Creat-SI/EMIsim-Model 命令进行创建,如果要做分析,首先Differential Pair 命令创建,也可以使用Logic-Assign 需要进行设置-包含设置叠层、指定DC 网络、指定元Differential Pair 命令创建。 件CLASS、指定模型等。 在高速设计流程中首选采用模型定义差分对,因为带用户定义的差分对没有模型指定的精确,因为模型指定有独特的差分对的成员特性比如管脚寄生、启动延迟、的有IBIS 器件值。 逻辑门限和缓冲延迟。 差分对成员不能作为其他差分对的成员。 差分对成员不能作为其他差分对的成员。 模型定义的差分对可以被提取进SigXplorer而带有耦合用 户 定 义 的差分对仅单根线被提取进SigXplorer。 性。 模型定义的差分对有优先级。如果通过用户定义的方用户定义的差分对与模型定义的差分对相比没有优先法定义了一个差分对,稍后用模型定义的方法又定义了级。 同样的差分对,则模型定义的差分对有优先级。 在约束管理器中不能改变模型定义差分对成员,只能在约束管理器中可以对用户定义的差分对成员进行更通过编辑模型的方法更改。 改。 模型定义的差分对,参考同样器件类型的任何器件都在约束管理器中要分别创建用户定义的差分对,虽然自将继承指定的模型中差分对。这个是可以重用的就像创动设置简化了这个过程,与模型定义的差分对不同。 建ECSet 和指定ECSet到很多设计对象。

4、管脚对(Pin-Pair)

Pin-Pair 代表一对逻辑连接的管脚,一般是驱动和接收。Pin-Pairs 可能不是直接连接的,但是肯定存在于同一个net 或者Xnet(所谓Xnet 即网络的中间可能串接电阻或者接插件,比如下图中的U1.8 到U3.8 的连接中间经过了一个电阻,即Xnet)。可以使用pin-pairs 来获取net 或者Xnet 指定的pin-to-pin 约束,也可以使用pin-pairs来获取ECSets 通用的pin-to-pin 约束,如果参考了某个ECSets 会自动定义net 或者Xnet 的pin-pairs。

可以指定 pin-pairs(比如图中的U1.8 、U3.8)或者基于下面的格式直接提取。当从SigXplorer导入拓扑并应用ECSets 给net,约束管理器基于导入的拓扑文件创建net 或者Xnet 的pinpairs。

? Longest pin-pair

? Longest driver-receiver pair

? All driver-receiver pairs All Drivers/All Receivers

下表中的规则应用于创建Pin-Pair,Pin-Pairs 仅能在以下工作表中创建。

? 在对象中一定要存在某个管脚,才能创建相应的 pin-pair;

? 在 All Constraints 和Timing 工作表中的对象一定要有驱动和接收;

? Pin-pair length 如果已经完成走线则是两个管脚之前走线的长度,如果没走线,就是连接两个管脚的鼠线的曼哈顿距离;

? 约束管理器确定 longest/shortest pin-pair length 是基于驱动和接收,如果没有任何驱动和接收,就考虑Xnet; ? 对于相对传输延迟约束,仅仅确定 longest pin-pair。 5、Match Group(匹配群组)

Match Group 是nets,Xnets 或者pin-pairs 的集合,此集合一定要都匹配(delay 或者length)或者相对于组内的一个明确的目标。如果delta 值没有定义,组内的所有成员都将是绝对匹配的,并允许有一定的偏差。如果定义了delta 值,那么组内所有成员将相对匹配于明确的目标网络。下面的是 Match Group 的必要属性:

? Target——组内其他pin-pairs 都要参考的pin-pair 就是目标(Target),可以是默认的也可以是明确指定的pin-pair,其他的pin-pairs 都要与这个目标比较。

? Delta——每个pin-pair 成员与目标pin-pair 的差值,如果没有指定此差值,那么所有成员就需要匹配,如果定义了此值不为0,则此群组就是一个相对匹配的群组。

? Tolerance——允许匹配的偏差值。

5.1 下面用三个例子来说明不同情况下的匹配群组(绝对的和相对的)。 例1 Net Target Delta Tolerance Comments 这个例子中没有参考,所有的网络都必须彼此匹配Data1 10mil 未指定 未指定 在10mil 之内,如果三个网络中的一个是1000mil,其Data2 10mil 未指定 未指定 他两个网络必须在990mil~1010mil 之间,delta值未指定(不是0)是绝对的匹配延迟,target 也未指定。 Data3 10mil 未指定 未指定 例2 Net Target Delta Tolerance Comments Data3 是此群组参考值,所有的网络都必须匹配Data1 0mil 10mil Data3 在10mil 之内,如果Data3 是1000mil,其他两个Data2 0mil 10mil 网络必须在990mil~1010mil 之间,delta 值被指定是相对的匹配(传输)延迟。 Data3 0mil 10mil 参考 例3 Net Target Delta Tolerance Comments Data1 此群组参考值,所有的网络都必须匹配Data1Data1 100mil 10mil 参考

Data2 Data3

100mil 100mil 10mil 10mil 在100mil 之内并加上或者减去指定的偏差值10mil。如果Data1 是1000mil,其他两个网络必须在990mil~1110mil 之间,对于相对的匹配(传输)延迟delta 和tolerance 值被指定。 5.2 如何确定target pin pair

一旦pin-pairs 中的一对被选择作为目标,其他的pin-pairs 都要与此目标以给定的delta和tolerance 内来匹配。约束管理器决定目标pin-pairs 的方法如下:

? 明确指定的 pin-pair。

? 如果所有的 pin-pairs 都有delta 值,那么有最小delta 值的网络就是目标。如果超过一对管脚对有同样的最小的delta 值,那么有最长的曼哈顿长度的网络被选为目标。

? 如果所有的管脚对都没有delta 值,那么就没有选择目标,所有的管脚对就进行相互比较。

5.3 相对/匹配的群组规则

? Match Group 仅能在Routing 工作簿的Relative Propagation Delay 工作表中的指定。

? 可以为整个群组设置相对的/匹配的群组约束,群组中每个成员可以根据要求修改tolerance。 ? 相对/匹配的群组之间的延迟可以在system 和design 一级设置。

? 匹配延迟约束从 14.0 版数据库升级Delta 值为0,暗示所有的群组成员都要匹配一个指定的目标管脚对。

二、电气规则设置

1、设置网络的最大最小传输延迟(Min/Max Propagation Delays),此处以单一网络ADV_C0网络为例(示例中所举数字并非实际情况,此处只为说明而已)

? 【Net】工作簿中双击【Routing】展开工作表。在这个工作表中有【Wiring】、【Impedance】、【Min/Max Propagation Delays】、【Total Etch Length】、【Differential Pair】、【Relative Propagation Delay】几种表格。 ? 点击【Min/Max Propagation Delays】显示相关的表格。

? 选择所要设置的网络ADV_C0,在【Prop Delay】列下面的【Min】列,输入最小值“0.9”,注意缺省单位是“ns”,意即ADV_C0上的信号到达任何一个目标最小传输延迟都要有0.9ns。

? 按 Tab 键。在【Pin Pairs】列自动选择了“All Drivers/All Receivers”,也就是说ADV_C0网络上的信号所有的的驱动和接收都被设置了传输延迟。

? 在【Prop Delay】列下面的【Max】列,输入最小值“1.1”,注意缺省单位是“ns”,意即所选网络ADV_C0上的信号到达任何一个目标最大传输延迟不能超过1.1ns。

? 选中刚才设置的网络ADV_C0,然后在菜单选择【Objects】/【Creat】/【Pin Pair…】命令,进入【Creat Pin Pairs of xxx for propagation delay】对话框。或者点击右键在弹出的菜单选择【Creat】/【Pin Pair…】命令。确定【First Pins】和【Second Pins】

? 点击 按钮。产生的管脚对显示出来,并且继承了网络ADV_C0的设置。

? 将【Min】的值从“0.9ns”改为“0.8ns”。将【Max】的值从“1.1ns”改为“1.0ns”。(这表示这一对Pin Pair 单独被设定Min/Max Propagation Delays 值。)

2、设置网络相对传输延迟或者等长,以DDR2的一个lane来说明(示例中所举数字并非实际情况,此处只为说明而已) 可以设置网络或者管脚对的相对于其他网络的传输延迟,所有这些网络或者管脚对可以形成一个匹配的群组,有目标管脚对或者网络。下面将设置目标网络DDR_DQS0(实际上此为一差分对)的传输延迟,并生成一个匹配的网络,然后增加DDR_D<00>至DDR_D<07>和DDR_DQM0到匹配的群组并设置相对于网络DDR_DQS0的传输延迟。

1) 打开约束管理器,在在【Routing】工作簿的【Min/Max Propagation Delays】工作表中找到差分对DDR_DQS0 (实际上在之前已经生成Dpr差分对);

2) 在DDR_DQS0的【Min】列,输入值1000mil。 3) 在DDR_DQS0的【Max】列,输入值1050mil。

4) 在【Routing】工作簿选择【Relative Propagation Delay】工作表,展开差分对DDR_DQS0(由DDR_DQS0和

DDR_DQS0N两个网络构成),选中Xnet DDR_DQS0,然后选择【Objects】/【Create】/【Match Group】命令(或者按右键在弹出的菜单选择【Create】/【Match Group】命令),出现【Creat Match Group】对话框。 在【Match Group】栏输入名称“MY_GROUP”,请见下图。

5) 点击 按钮。

6) 在 约束管理器界面, 右键点击“ MY_GROUP ”, 在弹出菜单选择【Membership 】/ 【Match Group 】,进入【Match Group Membership for MY_GROUP】对话框,把DDR_DQS0N、DDR_DQM0、DDR_D<00>至DDR_D<07>都移到右面,请见下图。

【Match Group Membership for MY_GROUP】对话框

点击

按钮,请见下图约束管理器界面。

7) 针对Xnet网络 DDR_DQS0(此处不是差分对,而是Xnet),点击【Scope】栏空格,在下拉选项选择“Global”,意思是要匹配群组中的所有的管脚对要匹配。而【Delta:Tolerance】栏,点击右键,点击Set as target,即设置此Xnet为目标网络。

8)针对网络 DDR_DQS0N,在【Delta:Tolerance】栏中输入0mil:2mil,即差分对间的匹配,相对目标网络DDR_DQS0长度误差为±2mil。

9)针对DDR_DQM0、DDR_D<00>至DDR_D<07>,分别点击【Scope】栏空格,在下拉选项选择“Global”。而【Pin Pairs】栏自动设置为“All Drivers/All Receivers”。在【Delta:Tolerance】栏输入-50mil:12.5mil,即比目标网络DDR_DQS0长度短50mil,误差为±12.5mil(如果用时间的方式,可以在【Delta:Tolerance】栏输入“0.3ns:5%”。意思是数据信号要比目标网络多延时0.3ns,并且在误差“+/-5%”之内,此处只是说明而已,数字只具有举例意义)。 10)设定完就可以绕等长了,在右侧的Length上右击→Analyze,可以看到每根Net的长度,当每个字段都以绿色显示时,就说明它们满足设置的长度约束了,如下图所示:

11) 在约束管理器界面,选择【File】/【Save】命令。

3、设置差分对约束

1) 在约束管理器界面选择【Routing】工作薄的【Differential Pair】工作表, 选择网络 DDR_CLK和DDR_CLKN。在约束管理器菜单选择【Objects】/【Create】/【Differential Pair】命令(或者按右键在弹出的菜单选择【Create】/【Differential Pair】命令),产生差分对DP_DDR_CLK,如下图所示:

2) 在约束管理器中,针对DP_DDR_CLK进行设置。点击【Uncoupled Length】列下面的【Gether Control】列空格,在下拉菜单选择“Ignore”。这个选项“Ignore”或者“Include”决定计算不耦合长度是否包括从管脚出来的一段。设置【Max】为“200mil”,在【Phase Tolerance】栏设置【Tolerance】值为“2mil”。在【Min Line Spacing】栏,设置【Min】为“6mil”,在【Coupling】栏设置【Primary Gap】为“8mil”,设置【Primary Width】为

“6mil”,设置【Neck Gap】为“4mil”,设置【Neck Width】为“6mil”,设置【(+)Tolerance】为“2mil”,设置【(-)Tolerance】为“2mil”。如果知道这一对管脚的封装延迟,就在【Pin Delay】中填入相应的值。 3) 选择【File】/【Save】,请见下图。

4、设置网络的时序和信号完整性约束(示例中所举数字并非实际情况,此处只为说明而已) 4.1 设置时序约束

在约束管理器界面【Net】部分点击【Timing】,双击【Timing】展开工作簿,点击【Switch/Settle Delays】工作表,调整工作表为满屏显示,选择Xnet网络ADC_C0。在【Min First Switch】栏,设置网络“ADC_C0”【Min】值为“0.25:0.26”,即设置信号上升沿为0.25ns,下降沿为0.26ns。在【Max Final Settle】栏,设置网络“ADC_C0”【Max】值为“3.25:3.25”,即设置信号最大的最终建立时间对于上升沿为3.25ns,对于下降沿为3.25ns。如下图所示, 选择【File】/【Save】。

控制工作表或者对象的层次 工作在列 比较单元格

【 Objects 】/【Expand/Collapse】或者使用+或者- 【View 】/ 【Show All Rows】 【Column】/【Sort】或者双击列的表头 【 View 】/ 【Hide/Show Column】 Resize 【Window】/【Tile】 【 Window 】/ 【New Window】 ", Bus ", Match group 扩展或者折叠工作表 最差的结果显示在折叠的对象。 扩展或者折叠所有的工作表 排列对象或者约束的顺序 调整列的宽度 比较两个或者更多不同的工作表中的单元格。 比较同一个工作表中的单元格。 8.2 定制约束、定制测量和定制激励

约束管理器支持定制约束、定制测量和定制激励。如果没有约束管理器,只能从PCB提取网络,然后在SigXplorer 中定义定制约束、定制测量和定制激励,每次都要做这些工作很可能会发生错误或者很厌烦。因为约束管理器可以对PCB 上所有的网络进行全局的查看,所以应用定制约束、定制测量和定制激励是很简单的。

不用在约束管理器中定义定制约束、定制测量和定制激励,仅仅指定、管理和分析它们。在SigXplorer 中定义定制约束、定制测量和定制激励,然后保存位拓扑文件然后作为一个ECSet 导入约束管理器或者刷新当前的ECSet 参考。任何参考ECSet 的网络相关的对象都会继承ECSet 中定制约束、定制测量和定制激励数据。

8.2.1 定制约束

除了预先定义的约束,约束管理器也支持用户定义的属性和约束定制测量。

8.2.1.1 用户定义的属性

可以使用用户定义的属性来获取对象的特性。约束管理器不能完成这些属性的设计规则检查或者分析。

可以在 PCB Design PCB SI 中使用【Setup】/【Property Definitions】命令来定义属性,也可以在SigXplorer 中使用【Set】/【Constraints】/【User-Defined】来定义属性,现在也可以直接在约束管理器中直接定义属性。对于约束管理器去显示或者报告用户定义的属性,一定要用【Column】/【Add】命令在Net 相关的工作表中增加一列,并从对话框中选择期望的属性。约束管理器加一列在工作表的最右边并以属性名称作为列的标签。没有Actual 和Margin 与用户定义的属性相关联。此外,属性显示在ECSet 文件夹的All Constraints 工作薄中。

8.2.1.2 约束的定制测量

可以使用定制的测量和定制的激励指定自己的约束,这些约束不同于约束管理器中用户定义的属性,它可以通过设计规则检查和分析校验。

可以在SigXplorer 中使用表达式编辑器用定义非约束的定制测量的方法来创建约束的定制测量。当选择None 作为约束类型时,SigXplorer 创建非约束的定制测量。当选择minimum、maximum、min-max 或者target:tolerance 作为约束类型时,SigXplorer 创建约束的定制测量,实际上时用户定义的约束。

第9章 Scheduling Nets-网络中的节点排序

9.1 Scheduling Nets

可以使用PCB Design 和约束管理器将schedule 应用于多个网络,也就通过拓扑规则来给特定的网络设置拓扑结构。在这一节中将根据下图 重新调整网络A3(此处以A3网络为例) 的节点顺序,并使用约束管理器将拓扑传递给相似的网络。

简单的网络节点排序

网络中的节点排序

1. 启动 PCB Design ,打开.brd文件(此处以lesson1.brd为例),选择【Display】/【Blank Rats】/【All】,隐藏所有网络鼠线,选 择 【 Setup 】/ 【Electrical Constraint Spreadsheet 】启动约束管理器, 点击【Net】文件夹【Routing】工作簿下面的【Wiring】工作表,请见下图。

按钮。选择

2. 回到 PCB Design 界面,选择【Display】/【Show Rats】/【Net】,回到约束管理器,右键点击【Objects】栏下面

的网络A3,在弹出的菜单选择【select】命令。

3. 回到 PCB Design 界面,查看网络A3 的鼠线已经显示出来,右键点击在弹出的菜单选择【Done】。下面将完成网络节点的重新排序,请见下图,是排序前和重新排序后的网络鼠线。

4. 选择【Logic】/【Net Schedule】,点击J1的pin 64,移动鼠标,鼠线附在鼠标上,点击U2 的pin 52,点击U18的pin 10,再点击 U2 的pin 52,右键点击在弹出的菜单选择【Insert T】命令,点击加上T-point,点击U14的pin 8,点击T-point,点击 U15 的pin 8,右键点击在弹出的菜单选择【Done】命令。下面开始创建一个ECSet 以便将此网络排序应用到相似的网络。

5. 回到约束管理器界面,注意网络A3 的topology schedule 已经被定义为“UserDefined”,并显示为蓝色。右键点击网络A3 选择【Creat】/【Electrical CSet】命令,在弹出的菜单选择【Creat】/【Electrical CSet】命令,出现了【Creat Electrical CSet】对话框。

6. 确认选择了【Copy Constraints From:】选项,输入ECSet 名“a_constraints”,点击按钮。新创建的ECSet 继承了网络A3 的信息。选择网络A2 ~A23 ,右键点击在弹出的菜单选择【Electrical CsetReferences】。出现【Electrical Cset References】对话框。在下拉菜单选择“a_constraints”,点击按钮。出现【Electrical Cset ApplyInformation】对话框。

7. 查看报告文件,网络A16 到A23 都有error,说明A16到A23不适用这种约束,网络的管脚数量与ECSet 的管脚数不匹配。点击

按钮,关闭报告。请见下图。

图 约束显示

注意网络A16 到A23 对应的【Referenced Electrical CSet】都是红色显示的,将鼠标放在网络A16对应的【Referenced

Electrical CSet】栏,查看状态栏显示信息。右键点击网络A16 对应的【Referenced Electrical CSet】栏,在弹出的菜单选择【AuditElectrical CSet】,查看报告,点击按钮,关闭报告。注意查看网络A3 的【Schedule】的信息为“UserDefined”。因为网络A16~A23 不能映射ECSet 的schedule,下面将参考的ECSet 去掉。选择网络A16~A23 的【Referenced Electrical CSet】栏,点击右键在弹出的菜单选择【Clear】。注意:约束管理器中网络 A2~A15 的

【Actual】和【Margin】栏是黄色的,暗示着不对当前的设置做分析。有些约束(信号完整性和时序)需要仿真来计算【Actual】值。当【Actual】值被计算并返回工作表,此值与指定的约束值做比较,差值显示在【Margin】栏。其他的约束比如topology schedule 简单的生成一个pass/fail 状态。

8. 移动鼠标放在网络 A2~A15 的【Actual】栏,查看状态栏显示“DRC analysismode is not on”。选择【Analyze】/【Analysis Modes】命令,出现【Annlysis Mode】对话框。选择【Stub length/Net】选项“On”,确认选择了【on-line DRC】。点击 按钮。 右键点击【Topology】的【Actual】栏,在弹出的菜单选择【Analyze】命令分析拓扑。查看此栏显示依然为黄色。将鼠标放在黄色区域,观察状态栏显示“‘Verify schedule’is not set to ‘YES’”。可以用几种方法将【Verify Schedule】栏设置为“YES”。

Net-by-net-即每次点击一个网络的【Verify Schedule】栏,在下拉列表选择“YES”。

By range-即一次选中很多网络,然后点击网络的【Verify Schedule】栏,在下拉列表选择“YES”。

By object grouping-先创建一个“bus”然后点击网络的【Verify Schedule】栏,在下拉列表选择“YES”。

Alter an ECSet-在【Electrical Constraint Set】文件夹的【All Constraints】工作薄,点击ECSet 的【Verify Schedule】栏选择“YES”。所有的参考此ECSet 的网络都会继承这个信息并更新。

9. 按照上述第4 个方法将【Verify Schedule】栏选择“YES”。查看约束管理器【Net】文件夹下面的网络A2~A15 的显示已经有分析的结果。请见下图。这样A2到A16都被赋予了拓扑约束。

分析结果

9.2 Scheduling Nets-Revisited

在上一节学习重新定义一个网络的节点顺序并使用约束管理器指定此schedule 到几个网络。在本节,将使用SigXplorer 和约束管理器完成同样的任务。 利用 SigXplorer 和约束管理器重排网络节点:

1. 在 PCB Design 界面打开文件lesson2.brd,然后启动约束管理器。打开【Net】文件夹的【Routing】下面的【Wiring】工作表。选择网络A2~A15,按右键选择【Creat】/【Bus】,输入总线名“a_bus ”,点击钮。请见下图。

生成总线

2. 回到 PCB Design 界面,选择【Display】/【Show Rats】/【Net】命令。在约束管理器界面,选择总线A_BUS,按右键选择【Select】。查看总线A_BUS 的网络鼠线都显示出来。下面提取总线进入Sigxp。在约束管理器界面,右键点击总线A_BUS,在弹出的菜单选择【SigXplorer】。如果出现对话框,选择【Expert】。拓扑显示如图下图所示。拓扑结构为总线的第1 个成员的。注意图中部件的名称可能与各位的不同。

拓扑结构

图中的三角形代表管脚 buffers,圆柱体代表理想传输线,下面显示的值是time 或者length,细的线代表理想的连接。 3. 点击每条细的黄色线,删除所有细的黄色线。移动各个部件,并点击线,放在图中,如下图所示。

按钮,再点击一个理想传输线,拷贝一条

重排部件

点击各个原点,将线连接。请见下图。

连线完成的拓扑

点击

按钮,调整部件排列,请见下图。

重排的拓扑

4. 选择【Set】/【Constraints】命令,点击【Wiring】标签栏,设置【Verify Schedule】为“Yes”。点击按钮。点击SigXplorer。

按钮更新约束管理器。回到约束管理器界面,点击

按钮,点击

按钮。 关闭

第10章 相对传输延迟

在前面已经介绍了相对传输延迟的内容,本章将利用约束管理器和SigXplorer 来创建一个包含串联端接的复杂的拓扑。请见下面的走线规则:

走线规则

从 Driver 到每个分支的走线长度一定要在350~5400mil 之间,此外从驱动到每个分支的走线差值不能超过150mil。从每个分支到接收的走线长度一定要在350~1000mil 范围之内。

1. 启动 PCB Design,打开.brd文件,启动约束管理器,打开【Wiring】工作表,右键点击ADDR_BUS,在弹出的菜单选择SigXplorer,选择【Expert】。按照上一章介绍的方法重新调整拓扑,请见下图。

调整后拓扑

2. 选择【Set】/【Constraints】,点击【Wiring】标签,将【Verify Schedule】设置为“Yes”。点击【Rel Prop Delay】标签。在【Rule Editing】栏点击按钮,在【Pins/Tees】栏点击U19.9,再点击 T.2,注意【Scope】栏为“Local”,在【Delta Type】栏,选择“None”,在【Tol Type】栏,选择“Length”,在【Tolerance】栏,输入“150”,点击 按钮。再增加另外一条规则。在【Rule Editing】栏点击按钮,在【Pins/Tees】栏点击U19.9,再点击 T.1,注意【Scope】栏为“Local”,在【Delta Type】栏,选择“None”,在【Tol Type】栏,选择“Length”,在【Tolerance】栏,输入“150”,点击

按钮。请见下图。

相对传输延迟设置

3.点击【Prop Delay】标签。设置【Rule Type】栏为“Length”,使用上面的方法设置传输延迟如下表。设 置完成请见下图。

设置传输延迟

点击

按钮。

击按钮,点击

4. 选择【File】/【Update Constraint Manager】。到约束管理器点SigXplorer。

5. 打开【Min/Max Propagation Delays】工作表,请见图下图。

按钮。退出

选择【Analyze】/【Analysis Modes】,出现【Analysis Modes】对话框,选择【On-lineDRC】。

第11章 Match Delay

本章将利用约束管理器和SigXplorer 来为所有的总线成员创建匹配延迟。相对和匹配的延迟组是 nets,Xnets,or pin pairs 的集合,一定要匹配或者相对于群组中的某个指定的目标。如果Delta 值没有定,组中的所有成员将匹配在指定的误差范围内(匹配延迟)。如果定义了Delta 值,组中的所有成员都相对于某个指定的目标网络(相对传输延迟)。

匹配的延迟

1. 启动 PCB Design,打开lesson4.brd,启动约束管理器。打开【Relative Propagation Delay】工作表,右键点击D_BUS,在弹出的菜单选择【SigXplorer】。

2. 进入 SigXplorer,选择【Set】/【Constraints】,点击【Rel Prop Delay】标签。在【Rule Editing】栏点击按钮,更改名字为“D_BUS_M1”,在【Pins/Tees】栏点击U2.1,再点击 U6.9,设置【Scope】栏为“Global”,意即规则应用于网络之间不是在一个网络内。在【Delta Type】栏,选择“None”,在【Tol Type】栏,选择“Length”,在【Tolerance】栏,输入“200”,点击 Manager】。

按钮。点击

按钮。选择【File】/【Update Constraint

3. 到约束管理器点击按钮,点击按钮。退出 SigXplorer。回到约束管理器,查看总线D_BUS 设置。选择【Analyze】/【Analysis Modes】,出现【Analysis Modes】对话框,选择【On-lineDRC】选项。设置【Relative Propagation Delay】为“on”,选择【DRC Unrouted】选项,约束管理器计算延迟是基于鼠线的曼哈顿距

离。点击 按钮,查看【Actual】和【Margin】相应栏为黄色显示。右键点击D_BUS_M1,在弹出的菜单选择【Analyze】,在【Actual】和【Margin】栏显示出相应数值。请见下图。

分析后结果

第12章 解决 DRC 冲突

本章的内容和上一章有些类似,不同之处在于本章的练习是已经走好线的并包含约束冲突。

解决 DRC 冲突

1. 启动 PCB Design,打开lesson5.brd,移动画面到走线完成的部分。启动约束管理器,打开【Relative Propagation Delay】工作表。右键点击【Referenced Electrical CSet】栏,在弹出的菜单选择【Hide Column】。按照上述操作,将【Pin-Pair】和【Scope】栏隐藏。选择【View】/【Option】命令,不选择【Worksheet Selector】选项。点击按钮。

2. 在约束管理器界面,右键点击D_BUS_M1 在弹出的菜单选择【Analyze】。将界面调整成如下图所示。

显示界面

下面将通过调整走线来去掉冲突,注意调整最差的网络并不一定是最好的策略,在这个练习中将会发现,仅两个管脚pin pair 需要调整以使整个网络满足设计规则的要求。

3. 右 键点击D_BUS_M1 , 在弹出的菜单选择【Analyze 】, 可以看到在【Length】显示出走线的长度。目的是将走线的长度进行排序,找出偏离最多的网络。右键点击【Length】,在弹出的菜单选择【Sort】,将走线排序。注意到

本文来源:https://www.bwwdw.com/article/v73d.html

Top