1 保持时间
在第一节里面有保持时间的定义,也就是采样沿到达后,数据应该保持的最小时间。
2 路径中的实际延迟考虑
保持时间分析
在时序分析基础(2)——建立时间分析一节中已经详细描述以及计算了数据的实际到达时间、数据的要求到达时间、采样时钟的实际到达时间。这里我们在此基础上继续计算一些其他的时间:数据的实际结束时间、数据要求的最早结束时间。
2.1数据实际结束时间
数据的在D端的保持的时间一般都是一个时钟周期,也就是说数据的实际结束时间=数据实际到达的时间+一个时钟周期,因此:
D
a
t
a
f
i
n
i
s
h
t
i
m
e
=
D
a
t
a
a
r
r
i
v
a
l
t
i
m
e
+
T
c
y
c
l
e
=
T
c
l
k
1
+
T
c
o
+
T
d
a
t
a
+
T
c
y
c
l
e
(2)
Data \;finish\;time=Data \;arrival\;time+T_{cycle}\\ \qquad\qquad\qquad\qquad=T_{clk1}+T_{co}+T_{data}+T_{cycle}\tag{2}
Datafinishtime=Dataarrivaltime+Tcycle=Tclk1+Tco+Tdata+Tcycle(2)
2.2数据要求的最早结束时间
数据要求的结束时间根据保持时间门限可知:数据要求的最早结束时间是采样沿到达后数据还需要保持
T
h
T_{h}
Th的时间,而采样沿到来的时间在;在时序分析基础(2)——建立时间分析也以及做出了计算。因此,数据要求的最早结束时间有:、
D
a
t
a
R
e
q
u
i
r
e
f
i
n
i
s
h
t
i
m
e
=
C
l
o
c
k
a
r
r
i
v
a
l
t
i
m
e
+
T
h
=
T
c
l
k
2
+
T
s
y
c
l
e
+
T
h
(3)
Data\;Require \;finish\;time=Clock \;arrival\;time+T_{h}\\ \,\\ \qquad\qquad\qquad\qquad\qquad=T_{clk2}+T_{sycle}+T_{h}\tag{3}
DataRequirefinishtime=Clockarrivaltime+Th=Tclk2+Tsycle+Th(3)
2.3保持时间裕量
与建立时间裕量同理,保持时间裕量是指数据要求的最早结束时间到来后,数据实际结束之间之前的一段时间。因此保持时间裕量=数据的实际结束时间—数据的要求最早结束时间。
H
o
l
d
S
l
a
c
k
=
D
a
t
a
f
i
n
i
s
h
t
i
m
e
−
D
a
t
a
f
i
n
i
s
h
r
e
q
u
i
r
e
f
i
n
i
s
h
t
i
m
e
=
T
c
l
k
1
+
T
c
o
+
T
d
a
t
a
+
T
c
y
c
l
e
−
(
T
c
l
k
2
+
T
s
y
c
l
e
+
T
h
)
=
T
c
l
k
1
+
T
c
o
+
T
d
a
t
a
−
T
c
l
k
2
−
T
h
(3)
Hold \;Slack=Data \;finish\;time-Data\;finishrequire \;finish\;time\\ \,\\ \qquad\qquad\qquad\qquad\qquad=T_{clk1}+T_{co}+T_{data}+T_{cycle}-(T_{clk2}+T_{sycle}+T_{h})\\ \,\\ \qquad=T_{clk1}+T_{co}+T_{data}-T_{clk2}-T_{h}\tag{3}
HoldSlack=Datafinishtime−Datafinishrequirefinishtime=Tclk1+Tco+Tdata+Tcycle−(Tclk2+Tsycle+Th)=Tclk1+Tco+Tdata−Tclk2−Th(3)
可以看出两个时间中的
T
c
y
c
l
e
T_{cycle}
Tcycle相互抵消。因此保持时间裕量与时钟无关。
保持时间裕量表示数据可以提前结束的时间。