静态时序分析(Static Timing Analysis)记录
概念
-
launch edge 发射沿
时钟源第一个上升沿对应的时刻,数据发送沿。STA分析以该时刻为0时刻。
-
latch edge 锁存沿
时钟源第二个上升沿对应的时刻,数据接收沿。STA分析的结束时刻。
-
Tsu 建立时间
时钟上升沿到达寄存器时,数据应当稳定的时间,这是时间间隔。与寄存器本身有关。
-
Th 保持时间
数据稳定后应当保持的时间,这是时间间隔。与寄存器本身有关。时序分析的目的是为了检查是否满足Tsu Th 。
-
Tco Clock to Output Delay 数据输出延时
当时钟有效沿变化后,数据从输入端到输出端的最小时间间隔。与寄存器本身有关。
-
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) -
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) -
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) -
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) -
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) -
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) -
时钟最小周期
建立时间裕量为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+TdataLaunch edge+Tmin+Tclk2−Tsu=Launch edge+Tclk1+Tco+TdataTmin+Tclk2−Tsu=Tclk1+Tco+TdataT ≥ 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)
例题
-
给了reg的setup,hold时间,求中间组合逻辑的delay范围。
delay < T - setup-hold
hold < delay < T - setup
-
时钟周期为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−TskewTsu2≤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−TskewTh≤T1min+T2min−Tskew(15)
-
请计算下面逻辑中时钟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} & =…
- 如下图,有一同步电路,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
- 如下图所示,假定反向器的最大/最小延迟分别为Tinv_max/Tinv_min,与门的最大/最小传输延迟时间分别为Tand_max/Tand_min,寄存器(DFF)的时序参数分别是:建立时间(Tsu),保持时间(Thold)和传输时间(Tpd)。
-
请解释寄存器(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)优化路径
- 下图是某电路中的一条关键路径,其中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下电路保证安全,这题目表达不清。
- 如下图为某同步电路,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,满足
-
已知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