PCB论坛网

 找回密码
 注册
楼主: xiechengmin

请教:时序分析公式的理解?

[复制链接]
发表于 2002-8-20 18:21:00 | 显示全部楼层
从我开始画的那个时序图上可以看到,系统的时钟信号都是同步的,即驱动端和接收端的时钟都是由主板上时钟发生器提供,在这种情况下,讨论时序问题时不牵涉到时钟信号的走线长短问题,(即使有也是时钟信号线之间的差别,而数据线的长度约束与时钟信号线无关,只与周期有关)。但实际的系统很复杂,不一定是严格的同步时钟系统,有时是异步传输,接收器的时钟可能是直接由driver产生的,这时候就不能完全按照前面提到的公式,可能这时候时序计算的确要考虑时钟走线的长度,因为我没有接触很深,所以现在我也无法讲清,但基本的理论是上面说的,如果知道系统的设计结构,就可以进行相应的推论。我也看到很多设计的datasheet上约束的线长是和时钟走线作比较的,我还没仔细的分析过,有空会再看看。

你说的“一根时钟线和一根数据线,如果始终保持等长,从时序上来说(排除衰减等其他因素的影响),不管走多长,应该都是可以满足时序要求的。”如果对于理想的“源同步时钟系统”来说是成立的,但是普通的时钟系统则不是如此,时钟信号只是保证所有的器件同时进行触发操作,但并不是跟踪每个数据线进行读取。如果按照你上面的理解,那好像应该让数据线短一点更为合适,时钟信号在数据信号的中间部位读取才是最理想的,所以相位上应该有数据信号1/4周期的偏移。

还有一个关键性的思想:我们是通过时序约束条件计算来确定Flight time的最大最小值,从而调整走线的结构或线长。举个例子,对于一块DDR333来说,其时钟周期是166MHz,即6ns,如果memory controller的Tco是1 ns,DDR内存颗粒需要的建立时间为0.8ns,估计时钟的skew, jitter,以及 串扰对时序的影响为0.6ns,那么,就可以计算出地址/控制线的最大传输延时(Flightmax)为:6-1-0.8-0.6=3.6ns,这时候我们设计走线结构和线长的时候就必须要保证传输延时小于3.6ns,小的多少就是setup时间裕量的大小。

至于如何计算Flight Time就是Cadence图中标明的,有一点要注意的是:每一根信号走线在Cadence中仿真中都会测量出其最大/最小的Flight time,但这不是约束条件中的Flight time,约束条件中的传输延时是所有同类信号的最大延时。

先说这么多,时序的东西一下子是难以理解,多想想,如果对Flight time如何定义及如何量度,可以再讨论,现在饿了,要回家吃饭了。:)



[此贴子已经被阿鸣于2002-8-20 18:21:07编辑过]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-8-21 08:56:00 | 显示全部楼层
从你画的第一个时序图上来看,时序分析确实满复杂的。我觉的先要计算CLKA和CLKB的时序关系,其实可以将到达Driver和Receive的CLK看作的Clock Skew,由于Clock Skew的结果使得Clock的有效周期变短(相当于两个时序不同的时钟周期相叠,造成周期的有效时间变短)。然后再将这个有效的CLK与Qp->Dc的数据进行时序分析。我是这么理解的!

我是认为源同步时钟系统是应该数据线稍比时钟线短一些为好,因为一般的时序要求中,好象都是建立时间要长一些,而保持时间均较短,甚至有的时序要求保持时间最小可以到0。

还有一个问题,就是“传输延时”,如果联系到实际的PCB板上的走线,不知这传输延时该如何计算?我现在估算就使用走线长度和信号传输速率的比值来算。还有,请问一下,信号传输速率与线上的分布电感、分布电容有关系吗?还是只影响其上升、下降沿?
回复 支持 反对

使用道具 举报

发表于 2002-8-21 11:27:00 | 显示全部楼层
你的理解是对的,
至于传输延时,其实我前面这样提法有点不正确,
标准的传输延时的定义是:propagation delay,指传输线上的信号传播延时,一般只于线长,信号的传播速度有关,与传输线本身的电感和电容无关,但和传输线上分布的负载数目及电容电感有关,比如传输线上分布均匀的容性负载情况下,会使传输线单位长度等效的电容增加,而电感不变,这就会造成传输延时增大。实际中如果走线的拓补结构不是很复杂(仅仅是点对点连接,中间无负载)则传输延时可以通过用走线长度和信号传输速率来计算。
上升沿的影响主要是负载,如果传输线上存在着分布的电容,就会造成等效负载增大,引起上升沿变缓。



[此贴子已经被阿鸣于2002-8-21 11:27:05编辑过]
回复 支持 反对

使用道具 举报

发表于 2002-8-21 11:51:00 | 显示全部楼层
曾经整理过一点计算时序方面的东西:
主要有下面两种情况,更高的串行数据传输是靠将时钟和数据一起编码实现的。
1.传统的同步技术,也就是前面一直在讨论的,工作在“绝对”时钟的情况下,系统中采用同一个时钟,设计传统同步接口的主要工作是如何在系统中分配时钟,使得时钟线等长以减少skew,信号传输时延或者说飞行时间增加了信号的建立时间,限制了系统的速度,时序分析如下面两张图,时序方程就不再贴了

抱歉,图不太会贴

2.源同步技术:
源同步技术是指数据和时钟/锁存并行传输。由于源同步接口信号工作在“相对”的时钟系统下,这样对全局系统时钟的skew要求就可降低,在时序方程中就不需要flight time(飞行时间)这一变量。源同步技术中,走线长、Tco、器件本身的快慢不是影响接口速度的因素。影响速度的最主要因素是数据与时钟/锁存信号之间的skew,对数据和时钟/锁存信号间skew的约束是仿真中最主要做的工作。时序公式为:
           建立时间:
               Tvb_min+Tft_clk_min-Tft_data_max-Tsetup-Tsetup_margin>0
           保持时间:
               Tva_min-Tft_clk_max+Tft_data_min-Thold-Thold_margin>0



实际的PCB板上的走线延时与时序方程中的flight time是不一样。信号的传输速率与线上的分布电感、分布电容应该有关系,既然影响了上升、下降沿,那么得到的时间也必然是受到影响的,因为时间点都是根据各种阈值电平定义的。



[此贴子已经被作者于2002-8-21 11:51:57编辑过]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-8-21 13:39:00 | 显示全部楼层
谢谢阿鸣和yezhang的回复!

不过有个问题请教yezhang:为什么说在源同步时钟系统的时序方程中就不要flight time呢?虽然这种情况下时钟和数据是并行传输的,但它们还是会由于走线长度等因素引起时序差的,除非你说把这个因素算到Skew中了。

信号的传输速率与分布电容、电感可能有一点点关系吧,可能在一般的设计中都将它忽略了,但是否有一个量化的数值呢?

另外,对于flight time,我现在还是不大明白!根据上一页最后那张图,它与传输延迟(tpd)定义是不一样,但似乎也相差不大。因为要与实际的PCB走线长度联系上,我就必须用传输延迟,flight time在实际中不知道怎么应用?

还有,我在另外一篇文档中有看到如下图和解释,它所说的flight time好象就是tpd?

[upload=jpg]uploadImages/200282113382721636.jpg[/upload]
回复 支持 反对

使用道具 举报

发表于 2002-8-21 15:16:00 | 显示全部楼层
xiechengmin,
yezhang说在源同步时钟系统的时序方程中就不要flight time,是因为源同步时钟系统中时钟时钟和数据线始终是等长的,只存在两者之间的相对偏差(Skew),但和本身传输的长度无关。
理论上Flight time和传输延迟(tpd)的区别在于,tpd仅仅是考虑传输线走线延时,不考虑上升时间,而fight time不但包含走线延时,还包括上升时间或下降时间,传输延时其实更深的考虑应该用电磁场传播的理论来解释,它只和介质的节电常数Er有关,如果对于一定长度的理想的传输线模型,只要它所处的介质是均匀的,其传播延时肯定不变的,无论阻抗如何,还是传输线忽宽忽窄,都没有影响,但如果传输线上存在均匀分布的电容,即单位长度电容变大,但电感不变,这时候传播延迟=Squall root(LC)就变大了,其实也可以分析为等效的介电常数发生了变化(变大),传播延迟的另外一个通用公式标明只与Er有关。
对于时序计算来说,传播延迟可以不用考虑,我们最重要的是关注包含上升时间的Flight time。当然,对于有些资料,它就把Flight time定义为Tpd,这不是很严谨的。比如Intel就是将Flight time定义为tpd,但有时也称为Flight time,而Jedec则是将它定义为T net_delay,但他们说的这些都是指Flight time而不是线上的传输延时,因为实际情况中我们几乎没有必要考虑信号的走线延时,不然通过长度就能计算也就不用靠仿真了。其实任何标称都无所谓,没有人约定一定要怎么写,只要理解它实际的含义就可以了。

Cadence里面是将传输延时和Flight time分开定义的,我觉得这样能对理论的理解更清晰,所以比较接受。




[此贴子已经被阿鸣于2002-8-21 15:16:58编辑过]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-8-21 16:54:00 | 显示全部楼层
主要问题是现在我还不知道如何将这些理论应用到实际中!比如我现在算出了Flight time max和min值。可是下一步就不知道干什么了?

举个较简单的例子吧!比如一片带PCI接口的CPU(如Motorola的MPC8245),通过其PCI接口直接接一个网卡芯片(如RTL8139),这时如何进行此系统的PCI接口的时序分析?

这应该算是源同步时钟系统了。这时,Tco应该就没有了吧?即Tco=0。然后将其他参数带入时序公式,最后将Flight time的Max和Min值都算出来了。接下去该干什么?
回复 支持 反对

使用道具 举报

发表于 2002-8-21 17:50:00 | 显示全部楼层
接下去就是仿真你的走线,让你的实际走线的Flight time满足最大/最小Flight time之内。或者通过最大/最小Flight time经过仿真算出实际走线长度的范围,布线时不能超过这个范围就行了,但是计算长度时,不能用传输速率的公式,一定要仿真确定。
回复 支持 反对

使用道具 举报

发表于 2002-8-21 18:18:00 | 显示全部楼层
另外CPU(ICH)控制PCI好像不是源同步,其实就目前系统设计而言,可能利用源同步的主要是数据总线,并且有专门的源同步信号,而不是利用系统的时钟。对整个系统而言还是采用的是普通的时序,所有器件的时钟都是同步的,下图是Intel815ep控制芯片对时序的假设,所有的时钟理想的情况都是同步的零skew,但由于PCI的频率较低,时序窗口很大,所以允许ICH的时钟和PCI器件的时钟存在+/-2ns的偏差,计算时序的时候,应该是利用标准的时序约束方程,不是源同步:
[upload=jpg]uploadImages/200282118145540297.jpg[/upload]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-8-21 20:36:00 | 显示全部楼层
谢谢!
我原来的想法可能都太过考虑传输线的长度对时序的影响程度了,实际上传输线的长度差可能对时序的影响只是很小的一个因素吧!

还有就是上面的这个例子,PCI如果在发送数据时,数据AD0~AD31和PCI CLK均由CPU输出,为什么不能认为时源同步时钟呢?另外,这时Tco应该就不存在了吧?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|手机版|PCB设计论坛|EDA论坛|PCB论坛网 ( 沪ICP备05006956号-1 )

GMT+8, 2024-5-15 22:44 , Processed in 0.122071 second(s), 13 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表