PCB论坛网

 找回密码
 注册
查看: 7696|回复: 38

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

[复制链接]
头像被屏蔽
发表于 2002-8-19 17:51:00 | 显示全部楼层 |阅读模式
提示: 该帖被管理员或版主屏蔽
回复

使用道具 举报

发表于 2002-8-19 18:42:00 | 显示全部楼层
这个一下子很难说清楚,还是贴两个图来说明吧: [upload=jpg]uploadImages/cpu.jpg[/upload] [upload=jpg]uploadImages/200281918115843679.jpg[/upload] 系统时序的基本要求就是:在下一个时钟周期到达之前,前一个数据要能稳定的被读取。第一个图中,时钟是同时到达Driver和receiver的,也就是说驱动端时钟触发新的数据发送的同时,接受器正好读取前一个数据。如果接收器的下一个时钟脉冲来了,但新的数据还没有传到,就会出现时序紊乱,这就是建立时间不够的情况,所以数据线长不能太长(而且负载不能太重),这就是目前正常时序系统设计中最关键的制约因素之一;同时,数据不能来的太快,因为数据必须稳定存在一定的时间才能被正确接收,如果过早的传输到接收端,等时钟触发的之后,数据稳定存在的时间不足以让器件读取,这就是保持时间不够的问题。所以数据信号传输延时不能过大也不能过小,这就是时序设计要求。 知道了时序的这些要求就能推算出时序公式了,可以简单的用文字表达为: 数据从驱动端发送到接收端的最大延时 + 数据的建立时间要求 <= 一个时钟周期 数据从驱动端发送到接收端的最小延时 >= 器件需要的保持实践 这是两个不等式,如果不但满足这两个不等式,还有多余的时间量,就称为时序裕量。需要注意的是,保持时间和建立时间裕量一定是随着传输延时的改变此消彼长的,但如果减少Skew或Jitter之类的偏差,可以让两者的裕量同时增加。这也是为什么我们要控制时钟偏移,减小板子串扰的原因。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-8-19 20:44:00 | 显示全部楼层
哎呀,阿鸣,厉害啊!!!
我看了半天没明白,你这一说,感觉并不难理解。高手!高手!理解的就是透彻啊!谢谢!

扛个大草莓给你尝尝!


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

使用道具 举报

发表于 2002-8-19 21:46:00 | 显示全部楼层
谢谢你的草莓
:)
其实我当初也是花了很大精力才摸清楚的
没人问,只能抱着一堆外文资料啃,到现在还牙疼~~
回复 支持 反对

使用道具 举报

发表于 2002-8-20 08:54:00 | 显示全部楼层
ming解释的很清楚,不过如果在时序图上观察并将公式写成下面方式可能更容易理解,呵呵
1、receiver的setup时间 > 根据实际计算值
2、receiver的hold时间 > 根据实际计算值
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-8-20 10:17:00 | 显示全部楼层
阿鸣,你好!
   如果按以上的公式计算后,最后得出的结果如下:
   Tflightmax = 4.55 ns
   Tflightmin = 0.05 ns
   那么,在实际布线中,又是如何计算和控制时钟与数据的时延差的?也即如何在布线中体现出以上参数的?
   是否可以按如下方式计算?
   信号在介质中的传输速度为:Vp=C/√εr,因此在一般的FR4中速度约为5.7inch/ns。
   然后按此公式计算:
    a.数据线可以比时钟线长5.7inch/ns×4.55ns=26inch以内
    b.时钟线可以比数据线长5.7inch/nc×0.05ns=0.285inch以内
   必须同时满足以上两个条件,可得到:
     时钟线长-0.285 < 数据线长度 < 时钟线长+26  (单位:inch)

   是否按如上理解?请赐教,谢谢!
回复 支持 反对

使用道具 举报

发表于 2002-8-20 13:06:00 | 显示全部楼层
实际的系统时序设计中的问题我还不是很清楚
如果按我上面的分析,时钟信号到driver和receiver是同时的话,计算出来的信号最大/最小延时和时钟信号线的长度无关;如果这两个时钟CLKA和CLKB不同时到达,那就要考虑到两段时钟走线的长度问题;如果是源同步总线技术,receiver的时钟信号是从driver发出的话(即上图中去掉clock buffer),计算setup裕量的时候就不是以时钟信号周期为限,而是以driver到receiver的时钟走线长度做为比较。
另外,对于数据线来说,由于它是双向传送的,不但要考虑正向传输的时序(写操作),还要考虑反向时序(读操作),这样driver和receiver就要交换位置考虑了,所以不是很简单地就能确定的。
在计算时序时,还有一个重要的参数就是Tco的值,他在不同负载情况下值也不同,保守起见,在考虑setup裕量时要取最大值,在考虑hold裕量时要考虑最小值。

我觉得系统时序设计是很复杂的,尤其是高速电路,需要综合很多因素,我也在学习。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-8-20 14:43:00 | 显示全部楼层
因为在实际的应用中,器件大部分基本上已决定,因此如Tco等参数已基本上确定。我们能够灵活处理的就剩下走线的长度了。在很多的Datasheet中有提到:某组高速信号线(包括一组数据线和时钟线)的走线长度差必须小于100mils等等。这“100mils”应该就是按时序的约束公式算出来的吧!
另外,请教一下,什么叫“源同步总线技术”?还有哪些技术?
回复 支持 反对

使用道具 举报

发表于 2002-8-20 15:20:00 | 显示全部楼层
你提到的走线长度差小于100mils应该是为了减小skew,以提高时序裕量,但这个100mils不是通过公式算出来的,是个靠经验或仿真确定的允许误差范围
因为确定最大flight时间时,不能只看一根信号线,而是取同组所有信号线中最长的
同样对于最小flight时间,也要取所有中最短的
保证同组信号之间的走线偏差可以减少相对误差,提高整体Margin,也有利于时序的调整。
对于Tco也是一样的,器件厂家提供的肯定不是一个固定值,所以也要在不同的情况取不同大小的值去计算。
源同步比较典型例子是现在DDR内存的数据总线,它不是直接由系统的Clock读取的,而是靠和数据线同步传输的数据指针(DQS,data strope)来进行读取,其实DQS也就相当于时钟的功能,优点是,和数据同步传输,在芯片内部进行延时处理,能保证精确的时序。如果仅仅是针对数据信号和源同步时钟来说,将不受时钟周期对建立时间时序的约束。不过是理想情况而已了。我对源同步现在也是一知半解,以后知道多一点再进一步讨论。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-8-20 16:36:00 | 显示全部楼层
我现在对Flight time的概念,被搞得越糊涂了!按照您上面的说法:
  “如果接收器的下一个时钟脉冲来了,但新的数据还没有传到,就会出现时序紊乱,这就是建立时间不够的情况,所以数据线长不能太长”,我的理解:这个最长的数据线长(时钟和数据长度差)就是Flight time(max)时间所传输的距离。
  “同时,数据不能来的太快,因为数据必须稳定存在一定的时间才能被正确接收,如果过早的传输到接收端,等时钟触发的之后,数据稳定存在的时间不足以让器件读取,这就是保持时间不够的问题。”,我的理解:这个最短的数据线长(数据和时钟长度差)就是Flight time(min)时间内传输的距离。
   不知以上理解是否正确?再举个简单的例子:一根时钟线和一根数据线,如果始终保持等长,从时序上来说(排除衰减等其他因素的影响),不管走多长,应该都是可以满足时序要求的。只有长度差超过以上所说的情况时,才导致时序问题。我的理解是这样的!
   再看看Cadence里的一个如下插图,对于Flight time max (即First Switch Delay)和Flight time min(即Final Settle Delay)两个概念就太难理解了!
   请阿鸣指教!谢谢!

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 22:04 , Processed in 0.158959 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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