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

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

概念

  1. launch edge 发射沿

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

  2. latch edge 锁存沿

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

  3. Tsu 建立时间

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

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

  1. Th 保持时间

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

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

  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)
    静态时序分析(STA)概念 例题

  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)
    静态时序分析(STA)概念 例题

  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)

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

  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)
    静态时序分析(STA)概念 例题

  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触发器建立时间。

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

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的最大值为多少?

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

建立时间裕量不等式:
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)。

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

  • 请解释寄存器(DFF)的3个典型的时序

    建立时间Tsu:在触发器的时钟上升沿到来之前,数据保持稳定不变的时间。
    保持时间Th:在触发器的时钟上升沿到来之后,数据保持稳定不变的时间。
    Tpd:当时钟有效沿变换后,数据从输入端到输出端的最小时间间隔。

  • 基于上述电路所给的参数,请分析该电路能正常工作的最大频率。如果需要的未给定的参数,请给自行定义并说明。
    T ≥ T c o + T s u + T d a t a − T s k e w T \ge T_{co} + T_{su} + T_{data} - T_{skew} T≥Tco​+Tsu​+Tdata​−Tskew​
    我认为 最大频率由最差的一条路径决定,图中的第一个DFF到第三个DFF。
    KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ T_{min} &= T_{…

  • 请在图上表示可能的时序关键路径,并列举至少两种可能的方法来改善其数据路径的延时

    关键路径:通常是指同步逻辑电路中,组合逻辑延时的最大的路径。也就是说关键路径是对设计性能起决定性作用的时序路径。所以从图上找组合逻辑最长的那一条。

    对同步逻辑常用的时序优化方法包括(1)插入寄存器(2)并行化设计(3)逻辑展平(4)均衡设计(5)优化路径

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

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

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时间是否满足并说明其原因。

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

由题意可知: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早)

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

(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

例题引用源
概念引用源

上一篇:POJ 1185 炮兵阵地


下一篇:二叉树的重要遍历问题