NavyC

天空没有留下鸟的痕迹 但我已飞过

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

1.静态时序分析的前提就是设计者先提出要求,然后时序分析工具才会根据特定的时序模型进行分析,给出正确是时序报告。进行时序分析的目的使系统性能更加性以及提高工作主频。对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。接下来将分别给大家介绍静态时序分析的基本概念,分析的模型以及计算公式,最后用实例说明静态时序分析。

 

2.静态时序分析的常用的基本概念

2.1 lanuch edge和latch edge

时序分析的起点(launch edge):源寄存器发送数据对应的时钟沿,时序分析的起点。

时序分析的终点(latch edge):目的寄存器锁存数据的时钟沿,是时序分析的终点。

 

2.2 时钟抖动和时钟偏斜(Tskew)

2.2.1时钟抖动 (Clock Jitter)

时钟抖动(Clock Jitter):是指时钟边沿变化不确定的时间。因此建立时间是Tsu+T1,保持时间是Th+T2。但在实际应用中为了计算方便是将时钟抖动的大小忽略。

2.2.2时钟偏斜(Clock skew)

时序分析的起点是源寄存器(reg1 ),终点是目标寄存器(reg2 )。时钟和

其它信号的传输一样会有延时的。下图中,时钟信号从时钟源传输到源寄存器的

延时定义为Tc2s ,传输到目标寄存器的延时定义为 Tc2d。

时钟偏斜(Clock skew): 是指时钟源到达源寄存器和目的寄存器的时间偏移。

时钟偏斜的计算公式:Tskew = Tc2d Tc2s。

 

2.3 建立时间(Tsu)和保持时间(Th)

建立时间(setup time): 是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立的时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入触发器。

保持时间(hold time):是指时钟沿到来之后数据稳定保持的时间,如果保持时间不满足要求那么数据同样也不能被稳定的打入触发器。

2.4 Data Arrival Time

数据实际到达的时间(Data Arrival Time): 输入数据在有效时钟沿后到达所需要的时间。主要分为三部分:时钟到达源寄存器时间(Tc2s),寄存器输出的延时(Tco)和源寄存器到目的寄存器数据传输的延时(Tr2r),如下图:

因此,Data Arrival Time = launch edge + Tc2s + Tco + Tr2r

 

2.5 Data Required Time

数据需求时间(Data Required Time): 在时钟锁存的建立时间和保持时间之间数据必须稳定,从源时钟起点达到这种稳定状态需要的时间即为数据需求时间。如下图:

因此,(建立)Data Required Time = latch edge + Tc2d Tsu;

(保持)Data Required Time = latch edge + Tc2d + Th;

而习惯用Clock Arrival Time (时钟到达时间)= latch edge + Tc2d

 

2.6 建立时间余量(Setup Slack)

                                建立时间余量

由上图可知建立时间余量的公式为

    Setup Slack = Data Required Time Data Arrival Time

若Setup Slack 为正,表示Data Required Time在Data Arrival Time之后,满足Setup Time ;反之若Setup Slack 为负,则表示Data Arrival Time在Data Required Time之后,无法满足Setup Time 。

 

2.7 保持时间余量(Hold Slack)

由上图可知保持时间余量的公式为:

    Hold Slack = Data Arrival Time – Data Required Time

若Hold Slack为正,表示Data Arrival Time在Data Required Time之后,满足Hold Time;反之若Hold Slack为负,则表示Data Required Time在Data Arrival Time之后,无法满足Hold Time。

 

3.总结

从Setup Slack和Hold Slack两个公式中可以将之前的公式带入计算化简

1.Setup Slack = Data Required Time – Data Arrival Time

             = latch edge + Tc2d Tsu –(launch edge + Tc2s + Tco + Tr2r)

             = (latch edge – launch edge)+(Tc2d – Tc2s)-(Tsu+Tco+Tr2r)

对于单周期来说latch edge – launch edge = T(一个时钟),如果不考虑时钟的偏斜,Tc2d-Tc2s=0,则上式为Setup Slack = T- (Tsu + Tco + Tr2r),

这说明了源寄存器到目的寄存器之间延迟不能太长,延迟越长,建立时间余量越小,成反比。

 

2.Hold Slack = Data Arrival Time – Data Required Time

         = launch edge + Tc2s + Tco + Tr2r – (latch edge + Tc2d + Th)

         =(launch edge – latch edge) + (Tc2s – Tc2d) + Tco + Tr2r – Th

上式中的launch edge – latch edge = 0, 如果不考虑时钟的偏斜,Tc2d-Tc2s=0,则上式为Hold Slack = Tco + Tr2r – Th

这说明了源寄存器到目的寄存器的之间延迟不能太短,延迟越短,保持时间余量越小,成正比。

posted on 2013-08-26 23:23  NavyC  阅读(521)  评论(0编辑  收藏  举报