静态时序分析

常用的静态时序分析结构图:

时序图如下:

红色虚线之间的是建立时间和保持时间,在这段时间内数据应保持稳定不变。

其中clk1是前一级触发器的时钟,clk2是后一级触发器的时钟。clk2相对于clk1存在一定的偏斜Tclk_skew。

我们在在后一级触发器的第一个时钟上升沿分析保持时间,在后一级触发器的第二个时钟上升沿分析建立时间。首先来分析建立时间。

事件1到事件2之间的时间为Tcko,即D触发器开始采样瞬间到D触发器采样的数据开始输出的时间。

事件2到事件3之间的时间为Tlogic,即两级触发器之间组合逻辑的延时。

事件3到事件4之间的时间为Tnet,即走线的延时。

事件5到事件6即clk2的第二个时钟上升沿之间的时间为Tsetup,即触发器的建立时间。

事件1到事件6之间的时间为一个时钟周期Tperiod+两级时钟之间的偏斜Tclk_skew。

事件1到事件6之间剩下的时间即事件4到事件5之间的时间为建立时间余量Tslack,setup。

事件4其实就是数据改变所发生的时刻。

因而寄存器建立时间余量公式为:Tslack,setup = Tperiod - (Tcko + Tlogic + Tnet + Tsetup - Tclk_skew)。

当建立时间余量小于零时,说明数据的改变会发生在建立时间之后,可能会导致亚稳态现象。当然如果延迟特别大,发生在保持时间之后,则会漏采数据。

接下来分析保持时间。

由上分析,数据会在事件4发生改变,因而,事件7到事件4之间的时间即为保持时间余量Tslack,hold。

寄存器保持时间余量公式为:Tslack,hold = Tcko + Tlogic + Tnet - Thold - Tclk_skew。

当保持时间余量小于零时,说明数据的改变会发生在保持时间之前,可能会导致亚稳态现象。(有时候我们会看到保持时间余量小于零是正常现象的情况,那是因为分析的东西不同,把其他一些东西也包含进去了)。

将建立时间余量和保持时间余量公式作个转换,如下:

Tperiod > Tcko + Tlogic + Tnet + Tsetup - Tclk_skew

Tcko + Tlogic + Tnet > Thold + Tclk_skew

以上两个公式是比较全面的公式。由于Tnet和Tclk_skew通常较小,可以暂且忽略,如下为简化的公式:

Tperiod > Tcko + Tlogic + Tsetup

Tcko + Tlogic > Thold

第一个公式可以理解为,数据从第一个触发器采样时刻传到第二个触发器采样时刻,不能超过一个时钟周期,假如数据传输超过一个时钟周期,那么就会导致第二个触发器开始采样的时候,想要的数据还没有传过来。对于第二个公式,我们可以在不等式两边同时加上Tsetup,如下:

Tcko + Tlogic + Tsetup > Thold + Tsetup

再结合之前的公式:

Thold + Tsetup < Tcko + Tlogic + Tsetup < Tperiod

Tcko + Tlogic + Tsetup是指数据从第一级触发器采样瞬间开始,传输到第二级触发器并被采样的传输延时。我们简称为数据传输延时。

Tcko + Tlogic + Tsetup <  Tperiod :约定数据传输延时不能太大,如果太大(超过一个时钟周期),那么第二级触发器就会在采样的时刻发现数据还没有到来。

Thold + Tsetup  < Tcko + Tlogic + Tsetup:约定数据传输延时不能太小。Thold+Tsetup是一个触发器的采样窗口时间,我们知道,D触发器并不是绝对的瞬间采样,它不可能那么理想。在D触发器采样的瞬间,在这瞬间之前Tsetup时间之内,或者这瞬间之后Thold时间之内,如果输入端口发生变化,那么D触发器就会处于亚稳态。所以采样是有窗口的,我们把Thold + Tsetup的时间宽度叫做触发器的采样窗口,在窗口期内,D触发器是脆弱的,对毛刺没有免疫力的。假如数据传输延时特别小,那么就会发现,当第二级触发器开始采样的时候,第一级触发器的窗口期还没有结束!也就是说,如果这个时候输入端数据有变化,那么不仅第一级触发器处于亚稳态,第二级触发器也将处于亚稳态!(即第二级触发器的第一个沿就采第一级触发器第一个沿产生的数据)

综上,我们就可以知道,数据传输延时既不能太大以至于超过一个时钟周期,也不能太小以至于小于触发器采样窗口的宽度。这就是静态时序分析的终极内涵

参考:https://blog.csdn.net/verylogic/article/details/14261989?reload

 

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值