DC概论四之setup time 与 hold time 之三

注明:如需转载,请注明作者出处,谢谢~,Author:pythonlong

 以下根据资料和个人体会整理,如果错误,疑问欢迎请指正,讨论!!

有了上篇的知识http://bb2hh.blogbus.com/logs/20756952.html,

下面开始正式分析时间余量slack。其实有了上面的知识,只要稍微说明下大家都会很明白。

在介绍slack之前,我们要先了解一下要求时间(required time)和达到时间(arrive time)的概念以及计算方法。

 

 

如果没有特殊说明,黑色clock代表没有影响因素的理想时钟,红色(粉色)clock代表收到latency影响的时钟。蓝色clock代表同时受到latencyskewuncertainty)影响的时钟。

 

对于建立时间(setup time)的到达时间和要求时间。

 

在分析前,记住,建立时间是分析路径中的考虑到各种最不利因素的最大延迟,打个比方:

前面一级用尽最大程度向后推(最大的延迟),本级就近打力气向前顶(最大不确定因素)。

然后看中间有没有漏气(slack为负,时序违规)。

1,  输入端口到时序器件的数据端口。

上图中

要求时间=T2+Tlatency-Tuncertainty_setup-Tsetup

到达时间=T1+Tlantency+Tinput_delay+Tlogic2

2,  时序器件的输出管脚到输出端口

上图中:

要求时间=T2+Tlatency-Toutput_delay-Tuncertainty_setup

到达时间=T1+Tlatency+Tcell+Tlogic5

3.时序器件到时序器件

上图:

要求时间=T2+Tlatency-Tuncertainty_setup-Tsetup

到达时间=T1+Tlatency+Tcell+Tlogic

4,输入端口到输出端口

如上图:

要求时间=T2+Tlatency-Tuncertainty_setup-Toutput_delay

到达时间=T1+Tlatency+Tinput_delay+Tlogic

 

我们再来看下保持时间,保持时间的到达时间和建立时间的到达时间是一样的。只是保持时间的要求时间不一样而已.

保持时间类似于龟兔赛跑:

系统要求时间就是尽可能的向后,而线上信号延迟时间还要比要求时间向后,如果延迟时间追上了,就没问题,追不上问题就有了。

说明:红色和粉色表示受latency影响,蓝色表示受uncertainty影响。

1. 输入端口到时序器件的数据端口。

到达时间:Tarrive=T1+Tlatency+Tinput_delay+Tlogic

要求时间:Trequire=T2+Tlatency+Tuncertainty_hold+Thold

2. 时序器件的输出管脚到输出端口

到达时间:Ta=T1+Tlatency+Tcell+Tlogic

要求时间:Tr=T2+Tlatency+Tuncertainty_hold+Thold-Toutput_delay

3时序器件到时序器件

到达时间:Ta=T1+Tlatency+Tcell+Tlogic

要求时间:Tr=T2+Tlatency+Tuncertainty_hold+Thold

4,输入端口到输出端口

到达时间:Ta=T1+Tlatency+Tinput_delay+Tlogic

要求时间:Tr=T2+Tlatency+Tuncertainty_hold+Thold-Toutput_delay

 

Slack计算:

对于建立时间:

Slack=要求时间-到达时间

对于保持时间

Slack=到达时间-要求时间

原文地址:https://www.cnblogs.com/liuokay/p/2005676.html