2019-08-28

reg2reg 路径的时序分析

一般的时序分析可以从数据路径和时钟路径来分析。

数据路径就是数据在整个传说起点到传输终点所走过路径,时钟路径是指时钟从源端到达各个寄存器输入端的路径。


Data Arrival Time

  数据到达时间(Data Arrival Time):输入数据在有效时钟沿后到达所需要的时间。主要分为三部分:时钟到达寄存器时间(Tclk1),寄存器输出延时(Tco)和数据传输延时(Tdata)


 Data Required Time(setup/hold)

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


Clock Arrival Time

  时钟到达时间(Clock Arrival Time):时钟从latch边沿到达锁存寄存器时钟输入端所消耗的时间为时钟到达时间。


Clock skew

  时钟偏斜(clock skew):是指一个时钟源到达两个不同寄存器时钟端的时间偏移。




 表示时钟到原寄存器reg1所经过的时钟网络延时

 表示时钟源到目的寄存器reg2所经过的时钟网络延迟

 表示数据在被锁存后在寄存器内所经过的延迟

 表示数据从上一级寄存器(源寄存器)的输出端到下一级寄存器(目的寄存器)的输入端所经过的延时

 目的寄存器建立时间

 目的寄存器的保持时间

reg2reg的详细路径分析



launch egde:时序分析的起点;

latch edge :时序分析的终点;

Setup slack

  建立时间余量(setup slack):当数据需求时间大于数据到达时间时,就说时间有余量,Slack是表示设计是否满足时序的一个称谓。


Setup slack = Data Required Time - Data Arrival Time


建立时间余量的计算公式


Setup slack=latch edge+Tclk2-Tsu-(launch edge+Tclk1+Tco+Tdata)

 =(latch edge-lanuch edge)+(Tclk2-Tclk1)-(Tsu+Tco+Tdata)

对于工具默认的单周期来说,latch edge-lanuch edge=T,如果不考虑时钟的skew,Tclk2-Tclk1=0,上式可以表达成:

Setup slack=T-(Tsu+Tco+Tdata),这就是为什么说源寄存器与目的寄存器之间延迟不能太长的原因,延迟越长,slack越小。




hold slack


时序图


保持余量的计算公式


Hold slack=data arrival time – data required time

 =(launch edge + Tclk1 + Tco + Tdata) – (latch edge + Tclk2 + Th)

 =(launch edge – latch edge) – (Tclk2 – Tclk1) + (Tco + Tdata + Th)

注意,上式中的launch edge为next launch edge,即为latch edge,所以launch edge – latch edge=0,如果不考虑时钟的skew,Tclk2-Tclk1=0,上式可以表达成:

Hold slack=Tco + Tdata – Th,这就是为什么说源寄存器与目的寄存器之间延迟不能太短的原因,时间太短,slack越小。

你可能感兴趣的:(2019-08-28)