其他分享
首页 > 其他分享> > 静态时序分析(STA)概念 例题

静态时序分析(STA)概念 例题

作者:互联网

静态时序分析(Static Timing Analysis)记录

概念

  1. launch edge 发射沿

    时钟源第一个上升沿对应的时刻,数据发送沿。STA分析以该时刻为0时刻。

  2. latch edge 锁存沿

    时钟源第二个上升沿对应的时刻,数据接收沿。STA分析的结束时刻。

  3. Tsu 建立时间

    时钟上升沿到达寄存器时,数据应当稳定的时间,这是时间间隔。与寄存器本身有关。

在这里插入图片描述

  1. Th 保持时间

    数据稳定后应当保持的时间,这是时间间隔。与寄存器本身有关。时序分析的目的是为了检查是否满足Tsu Th

在这里插入图片描述

  1. Tco Clock to Output Delay 数据输出延时

    当时钟有效沿变化后,数据从输入端到输出端的最小时间间隔。与寄存器本身有关。

  2. TskewClock skew 时钟偏斜

    时钟源到达两个不同寄存器时钟端的时间偏移。
    T s k e w = T c l k 2 − T c l k 1 (6) T_{skew} = T_{clk2} - T_{clk1} \tag{6} Tskew​=Tclk2​−Tclk1​(6)
    在这里插入图片描述

  3. Data Arrival Time 数据到达时间

    数据从 launch edge => 第二级寄存器输入 所需的时间。
    D a t a   A r r i v a l   T i m e = L a u n c h   e d g e + T c l k 1 + T c o + T d a t a (7) Data\ Arrival\ Time = Launch\ edge + T_{clk1} +T_{co} + T_{data} \tag{7} Data Arrival Time=Launch edge+Tclk1​+Tco​+Tdata​(7)
    在这里插入图片描述

  4. Clock Arrival Time 时钟到达时间

    时钟从***latch edge*** => 第二级寄存器时钟输入 所消耗的时间。
    C l o c k   A r r i v a l   T i m e = L a c t h   e d g e + T c l k 2 (8) Clock\ Arrival\ Time = Lacth\ edge + T_{clk2} \tag{8} Clock Arrival Time=Lacth edge+Tclk2​(8)

    在这里插入图片描述

  5. Data Required Time 数据需求时间

    建立 数据需求时间:
    D a t a   R e q u i r e d   T i m e = C l o c k   A r r i v a l   T i m e − T s u (9.1) Data\ Required\ Time = Clock\ Arrival\ Time - T_{su}\tag{9.1} Data Required Time=Clock Arrival Time−Tsu​(9.1)
    保持 数据需求时间:
    D a t a   R e q u i r e d   T i m e = C l o c k   A r r i v a l   T i m e + T h (9.2) Data\ Required\ Time = Clock\ Arrival\ Time + T_{h}\tag{9.2} Data Required Time=Clock Arrival Time+Th​(9.2)

  6. Setup slack 建立时间裕量

    当数据需求时间大于数据到达时间时,就说时间有余量,Slack是表示设计是否满足时序的一个称谓。
    S e t u p   s l a c k = D a t a   R e q u i r e d   T i m e ( s e t u p ) − D a t a   A r r i v a l   T i m e = L a t c h   E d g e + T c l k 2 − T s u − ( L a u n c h   E d g e + T c l k 1 + T c o + T d a t a ) = T + T c l k 2 − T s u − T c l k 1 − T c o − T d a t a = T + T s k e w − T s u − T c o − T d a t a ≥ 0 (10) Setup\ slack = Data\ Required\ Time(setup) - Data\ Arrival\ Time \tag{10}\\ = Latch\ Edge + T_{clk2} - T_{su} - (Launch\ Edge + T_{clk1} + T_{co} + T_{data})\\ = T + T_{clk2} - T_{su} - T_{clk1} - T_{co} - T_{data}\\ = T + T_{skew} - T_{su} - T_{co} - T_{data} \ge 0\\ Setup slack=Data Required Time(setup)−Data Arrival Time=Latch Edge+Tclk2​−Tsu​−(Launch Edge+Tclk1​+Tco​+Tdata​)=T+Tclk2​−Tsu​−Tclk1​−Tco​−Tdata​=T+Tskew​−Tsu​−Tco​−Tdata​≥0(10)
    在这里插入图片描述

  7. Hold slack 保持时间裕量
    H o l d   s l a c k = D a t a   C h a n g e   T i m e − D a t a   R e q u i r e d   T i m e ( h o l d ) = L a t c h   E d g e + T c l k 1 + T c o + T d a t a − ( L a t c h   E d g e + T c l k 2 + T h ) = T c l k 1 + T c o + T d a t a − T c l k 2 − T h = T c o + T d a t a − T h − T s k e w ≥ 0 (11) Hold\ slack = Data\ Change\ Time - Data\ Required\ Time(hold)\tag{11}\\ = Latch\ Edge + T_{clk1} + T_{co} + T_{data} - (Latch\ Edge + T_{clk2} + T_{h})\\ = T_{clk1} + T_{co} + T_{data} - T_{clk2} - T_{h}\\ = T_{co} + T_{data} - T_{h} - T_{skew} \ge 0\\ Hold slack=Data Change Time−Data Required Time(hold)=Latch Edge+Tclk1​+Tco​+Tdata​−(Latch Edge+Tclk2​+Th​)=Tclk1​+Tco​+Tdata​−Tclk2​−Th​=Tco​+Tdata​−Th​−Tskew​≥0(11)

  8. 时钟最小周期

    建立时间裕量为0时,时钟频率达到最大。
    D a t a   R e q u i r e d   T i m e = D a t a   A r r i v a l   T i m e   L a t c h   e d g e + T c l k 2 − T s u = L a u n c h   e d g e + T c l k 1 + T c o + T d a t a L a u n c h   e d g e + T m i n + T c l k 2 − T s u = L a u n c h   e d g e + T c l k 1 + T c o + T d a t a T m i n + T c l k 2 − T s u = T c l k 1 + T c o + T d a t a Data\ Required\ Time = Data\ Arrival\ Time \\ Latch\ edge + T_{clk2} - T_{su} = Launch\ edge + T_{clk1} +T_{co} + T_{data}\\ Launch\ edge + T_{min} + T_{clk2} - T_{su} = Launch\ edge + T_{clk1} +T_{co} + T_{data}\\ T_{min} + T_{clk2} - T_{su} = T_{clk1} +T_{co} + T_{data}\\ Data Required Time=Data Arrival Time Latch edge+Tclk2​−Tsu​=Launch edge+Tclk1​+Tco​+Tdata​Launch edge+Tmin​+Tclk2​−Tsu​=Launch edge+Tclk1​+Tco​+Tdata​Tmin​+Tclk2​−Tsu​=Tclk1​+Tco​+Tdata​

    T ≥ T c o + T s u + T d a t a − T s k e w (12) T \ge T_{co} + T_{su} + T_{data} - T_{skew} \tag{12} T≥Tco​+Tsu​+Tdata​−Tskew​(12)

例题

  1. 给了reg的setup,hold时间,求中间组合逻辑的delay范围

    delay < T - setup-hold

    hold < delay < T - setup

  2. 时钟周期为T,触发器D1时钟沿到来至触发器输出Q变化的时间为Tco 最大为T1max,最小为T1min,逻辑组合电路的延迟时间最大为T2max,最小为T2min,问触发器D2的建立时间和保持时间应满足什么条件。

    即:已知第一个触发器Tco1和Tdata的范围求第二个触发器Tsu2 Th2范围。

    • 套用建立时间裕量不等式(10):

    T + T s k e w − T s u − T c o − T d a t a ≥ 0 (13) T + T_{skew} - T_{su} - T_{co} - T_{data} \ge 0 \tag{13} T+Tskew​−Tsu​−Tco​−Tdata​≥0(13)

    ​ 由前面推到可知:Tco 属于第一个寄存器的输出延时,即Tco1。Tsu属于第二个寄存器的建立时间,即Tsu2。改写式子(13):
    T ≥ T c o 1 + T s u 2 + T d a t a − T s k e w T s u 2 ≤ T − T c o 1 − T d a t a + T s k e w (14) T \ge T_{co1} + T_{su2} + T_{data} - T_{skew} \tag{14}\\ T_{su2} \le T - T_{co1} - T_{data} + T_{skew}\\ T≥Tco1​+Tsu2​+Tdata​−Tskew​Tsu2​≤T−Tco1​−Tdata​+Tskew​(14)
    ​ 不等式(14)右边是一个范围,由于需要小于这个范围,需要取这个范围中的最小值:
    T s u 2 ≤ T − T 1 m a x − T 2 m a x + T s k e w T_{su2} \le T - T1max - T2max + T_{skew} Tsu2​≤T−T1max−T2max+Tskew​

    • 套用 保持时间裕量不等式(11):
      T c o 1 + T d a t a − T h − T s k e w ≥ 0 T h ≤ T c o 1 + T d a t a − T s k e w T h ≤ T 1 m i n + T 2 m i n − T s k e w (15) T_{co1} + T_{data} - T_{h} - T_{skew} \ge 0\tag{15}\\ T_{h} \le T_{co1} + T_{data} - T_{skew}\\ T_{h} \le T1min + T2min - T_{skew} Tco1​+Tdata​−Th​−Tskew​≥0Th​≤Tco1​+Tdata​−Tskew​Th​≤T1min+T2min−Tskew​(15)
  3. 请计算下面逻辑中时钟clk可以达到的最小周期。(图中0.8/0.65/0.6分别为CT1、CT2、CT3的器件延时),3.8为CK1经过combinational logic到达DL2的D端上的传播延时、0.2为D触发器建立时间。

在这里插入图片描述

KaTeX parse error: No such environment: align at position 11: \begin{̲a̲l̲i̲g̲n̲}̲ T_{min} & =…

  1. 如下图,有一同步电路,module A有一个信号A输出给module B。时钟周期是2ns,DFF的setup time 为0.2ns,hold time为0.18ns,DFF的clk端延时为0.12ns,D1=0.6ns。考虑clock skew = 0.05ns,计算D2的最大值为多少?

在这里插入图片描述

建立时间裕量不等式:
T + T s k e w − T s u − T c o − T d a t a > 0 2 + 0.05 − 0.2 − D 1 − T d a t a > 0 T d a t a < 1.25 T + T_{skew} - T_{su} - T_{co} - T_{data} > 0\\ 2+0.05-0.2-D1-T_{data} > 0\\ T_{data} < 1.25 T+Tskew​−Tsu​−Tco​−Tdata​>02+0.05−0.2−D1−Tdata​>0Tdata​<1.25

  1. 如下图所示,假定反向器的最大/最小延迟分别为Tinv_max/Tinv_min,与门的最大/最小传输延迟时间分别为Tand_max/Tand_min,寄存器(DFF)的时序参数分别是:建立时间(Tsu),保持时间(Thold)和传输时间(Tpd)。

在这里插入图片描述

  1. 下图是某电路中的一条关键路径,其中DFF的参数如下:tco=1ns,tsu=2ns,thold = 1ns,Logic的最大延时为4ns,最小延时为3ns,clk的jitter为2ns,则电路最小的时钟周期为(A 7ns)

在这里插入图片描述

Tmin=Tco+Tdata+Tsu-Tskew+ Tjitter = 1+3+2-1+2=7ns。电路确实可以跑到7ns,但不是每一时刻都是安全的。如果按照 Logic的最大延时为4ns计算,周期为8ns,在8ns下电路保证安全,这题目表达不清。

  1. 如下图为某同步电路,DFF1和DFF2的setup,hold和output delay(clk->Q)时间为0.6,0.3,1.2(各时间参数均为ns),假设clk时钟频率为250MHZ,请问DFF2的setup时间和hold时间是否满足并说明其原因。

在这里插入图片描述

由题意可知:Tcyc=1/250M=4ns,
建立时间:Tcyc + Tskew -Tco - Tdata-Tsu = 4 + (0.8-1)-1.2-2.2-0.6=4-0.2-4=-0.2 <0,违例
保持时间:Tco+Tdata-Tskew-Th = 1.2+2.2-(0.8-1)-0.3=3.4-0.1=3.3,满足

  1. 已知Tsetup=1ns、Thold=1ns、Tclk->q = 1ns。请回答以下问题。
    (1)假设存在positive clock skew为1ns,问最高时钟频率为多少?
    (2)能容忍的最大positive clock skew为多少?(DFF2的clock比DFF1晚)
    (3)能容忍的最大negative clock skew为多少?(DFF2的clock比DFF1早)

在这里插入图片描述

(1)5条路径依次分析:Tcyc >= Tco+Tdata+Tsu-Tskew
DFF1->DFF2:1+(4+3+1)+1-1=9ns
DFF1->DFF2:1+(1+2+1)+1-1=5ns
DFF2->DFF1:1+(3+1)+1+1=7ns(这是一个负的Tskew)
DFF1->DFF1:1+(4+1)+1 = 7ns(DFF1到DFF1的时钟不存在Tskew)
DFF2->DFF2:1+(2+1)+1 = 5ns(DFF2到DFF2的时钟不存在Tskew)
最大时钟周期为9ns,所以最高时钟频率是1/9ns。

(2)时钟偏斜影响保持时间裕量,带入保持时间裕量不等式:
T c o + T d a t a − T h − T s k e w ≥ 0 T s k e w ≤ T c o + T d a t a − T h T_{co} + T_{data} - T_{h} - T_{skew} \ge 0\\ T_{skew} \le T_{co} + T_{data} - T_{h} Tco​+Tdata​−Th​−Tskew​≥0Tskew​≤Tco​+Tdata​−Th​
路径代入可得答案:

DFF1->DFF2:1+(4+3+1)-1=8ns
DFF1->DFF2:1+(1+2+1)-1=4ns
DFF2->DFF1:-(1+(3+1)-1)=-4ns(这是一个负的Tskew)
DFF1->DFF1:0ns(DFF1到DFF1的时钟不存在Tskew)
DFF2->DFF2:0ns(DFF2到DFF2的时钟不存在Tskew)
出现一个负的Tskew,这是不能取的,因此最大positive clock skew答案为4ns

例题引用源
概念引用源

标签:STA,Tdata,Tskew,时序,Tco,Time,例题,data,时钟
来源: https://blog.csdn.net/z951573431/article/details/117411885