通过SigXplorer设置延时及LocalGlobalWord文件下载.docx
《通过SigXplorer设置延时及LocalGlobalWord文件下载.docx》由会员分享,可在线阅读,更多相关《通过SigXplorer设置延时及LocalGlobalWord文件下载.docx(5页珍藏版)》请在冰豆网上搜索。
相对延时:
一组走线之间的偏差,即走线的等长设置。
(tolerance<
400mil,常规DDR)
2、设置绝对延时时,不存在local和global之分,实际系统已将其定义为global,即针对一组线的全局绝对延时。
3、设置相对延时时有local和global之分。
(参见教程第45讲)
Local:
平面内
Global:
纵向,不同平面内(参见进阶部分,将Global理解为全局的:
包含横向和纵向,应该更准确)
在设置同一XNet内T型连接2个分支之间互相等长时,用Local含义为:
同一XNet内T型连接的2个分支之间互相等长(横向),相同拓扑结构的同一个XNet内(其它XNet)T型线的2个分支也要等长(不然变成设置单根线了,还要拓扑干什么!
)。
不表示不同XNet中具有相同拓扑结构的支线之间的纵向等长。
话句话说,Local表式每个XNet内的平面等长。
需要设置不同XNet、具有相同拓扑结构支线之间的纵向等长,用Global。
画图如下:
举个例子吧:
A有2把尺子:
A1(1#),A2(2#);
B有2把尺子:
B1(1#),B2(2#);
C有2把尺子:
C1(1#),C2(2#)。
(约束名要相同,参见博士的第45讲),需要满足:
A的2把尺子要满足长度关系:
A1=A2
B的2把尺子要满足长度关系:
B1=B2
C的2把尺子要满足长度关系:
C1=C2
…
不需要满足:
A1=B1=C1=…,A2=B2=C2=…
此即平面等长
用Global:
需要满足(只有一个拓扑约束时):
A1=B1=C1=…(设置1号尺子纵向等长时)
A2=B2=C2=…(设置2号尺子纵向等长时)
而不需要满足:
A1=A2,B1=B2,…
此即纵向等长。
注:
若设置了2条Global等长,并用同一个名字(rulename),即在同一个matchgroup中,分别设置1号等长和2号等长,则需要满足的等式增加为:
A1=A2,B1=B2,C1=C2…(同一个matchgroup内的全局等长)
上面3个组式子又可以等效为:
A1=B1=C1=A2=B2=C2=。
。
;
即所有走线均要等长。
========================
二、理解进阶
(这次感觉应该差不多了)
实际上SigXplorer中的topologyconstraints是一个非常灵活的约束设置工具。
图1拓扑结构
图2设置的相对延时
注解:
AB_DDR2_M1:
图中设置了T型点到U13、U14(两片同样的三星16位DDR2SDRAM拼成32位)的相对延时:
同一个XNet内,T型点到U13和T型点到U14,这两条分支线尽量相等,此时信号干扰最小,图2中设置tolerance为200mil。
因为是同一个XNet内的等长,故此处用Local。
(不需要本XNet内T型点到U13与其它XNet的T型点到U13等长)。
AB_DDR2_M2:
同时,总体上还要保证3512芯片的引脚出来,经T型点分开之后,到DDR2芯片引脚的走线距离相等。
3512芯片引出的地址线经过T型点分支成为2簇,簇内和簇间都要相等。
这通过AB_DDR2_M2约束来实现(AB_DDR2_M2实际在CM中为matchgroup),不同的拓扑(线路)要进行相对延时比对必须添加为一个matchgroup,故在此matchgroup中存在2项(分别对应不同的路由)
Global的含义为:
不同XNet之间均要进行线长的相对延时控制。
设置完成后:
图3Matchgroup:
AB_DDR2_M1
图4Matchgroup:
AB_DDR2_M2
通过上面的设置可以总结如下几点:
(主要是对Local和Global的理解)
1、图2中的rulename在CM中对应matchgroup
所以,需要有多少种拓扑支路参与相对延时控制,就需要在同一个rulename中添加多少个拓扑支路;
前述的AB_DDR2_M1、AB_DDR2_M2均有2个支路;
2、Local和Global:
Local代表同网络内进行相对比对(相对延时控制),实际上,SigXplorer提取的拓扑结构也是在一个网络内的(包含XNet),举例来说,图3中设定为Local的相对延时设置,只会在同一个XNet中进行比对,如只会分别在AB0_DDR2内,分别在AB1_DDR2内、等等中进行比对。
不会拿AB0_DDR2和AB1_DDR2中拓扑相同的走线相比对。
即前面所说的在一个NET内的横向比对。
全局比对,即:
将AB0_DDR2和AB1_DDR2中拓扑相同的走线相比对(纵向)。
若在一个约束(如AB_DDR2_M1)中设置了不止1条拓扑支线,则同一网络内,不同支线之间的走线长度也要比对(此时完成的实际是local功能)。
因此:
可以说Local是Global的特例。
AB_DDR2_M1和AB_DDR2_M2均有2项,分别各自对应2个不同拓扑支线。
AB_DDR2_M1中对2条拓扑支线进行了设置,表明这2条支线是一定要进行互相比对的(因为已经被加到一个rulename中了,也即被加到一个matchgroup中了),接下来需要选择比对的方式,是仅仅同个网络内的横向比对(Local),还是去全局比对(同一网络内横向,不同网络间纵向)(修正一下:
说Global是全局应该更加贴切,因为Global不仅可以指纵向还包括横向)。
举例来说,图4中AB_DDR2_M2内所有的走线长度均会互相比对,不管是同一个NET(横向)还是不同NET(纵向)。
2点疑问:
1)既然Global既包括纵向(网络间)又包括横向(同一网络内),为什么还需要Local(只能在同一网络内)?
✧因为并不是在所有NET(或者是XNet)内的走线长度都需要与其它NET进行匹配。
对很多T型分支线,只需要保证在同一个NET内的2条分支尽量等长即可。
2)既然设置为Local的相对延时比对方法只限定为同一NET内?
就是一个NET内不同拓扑支线的走线长度互相比较,为什么设置相对延时时可以将tolerance设置得不一样?
✧即使是同一个网络,当分支较多时,可能需要比对的不止2条支线,例如
A支线,tolerance:
500mil
B支线,tolerance:
200mil
C支线,tolerance:
这样,A与B、C与B之间tolerance均只能按照200mil走线,但是A和C之间可以按照500mil的tolerance走线。