建立时间和保持时间关系详解
图 1
建立时间( setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立
时间不够,数据将不能在这个时钟上升沿被打入触发器;
保持时间( hold time)是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持
时间不够,数据同样不能被打入触发器。
如图 1 。数据稳定传输必须满足建立和保持时间的要求,当然在一些情况下,建立时间和保持时
间的值可以为零。 PLD/FPGA 开发软件可以自动计算两个相关输入的建立和保持时间。
个人理解:
1、建立时间 ( setup time)触发器在时钟沿到来之前, 其数据的输入端的数据必须保持不变的时间;
建立时间决定了该触发器之间的组合逻辑的最大延迟。
2、保持时间( hold time)触发器在时钟沿到来之后,其数据输入端的数据必须保持不变的时间;
保持时间决定了该触发器之间的组合逻辑的最小延迟。
关于建立时间保持时间的考虑
华为题目:时钟周期为 T,触发器 D1 的建立时间最大为 T1max,最小为 T1min 。组合逻辑电路最大
延迟为 T2max,最小为 T2min 。问:触发器 D2 的建立时间 T3 和保持时间 T4 应满足什么条件?
分析:
Tffpd :触发器输出的响应时间, 也就是触发器的输出在 clk 时钟上升沿到来之后多长的时间内发生变
化并且稳定,也可以理解为触发器的输出延时。
Tcomb:触发器的输出经过组合逻辑所需要的时间,也就是题目中的组合逻辑延迟。Tsetup:建立时间 Thold:保持时间Tclk:时钟周期
建立时间容限:相当于保护时间,这里要求建立时间容限大于等于 保持时间容限:保持时间容限也要求大于等于
0。
0。
-可编辑修改 -
由上图可知,建立时间容限= Tclk-Tffpd(max)-Tcomb(max)-Tsetup ,根据建立时间容限 ≥0,也就是
Tclk-Tffpd(max)-Tcomb(max)-Tsetup ≥0,可以得到触发器 D2 的 Tsetup≤Tclk-Tffpd(max)-Tcomb(max) ,由于题目没有考虑 Tffpd ,所以我们认为 Tffpd = 0,于是得到 Tsetup≤T-T2max。
由上图可知,保持时间容限 +Thold = Tffpd(min)+Tcomb(min) , 所 以 保 持 时 间 容 限 =
Tffpd(min)+Tcomb(min)-Thold ,根据保持时间容限 ≥0,也就是 Tffpd(min)+Tcomb(min)-Thold ≥0 可以得到触发器 D2 的 Thold ≤Tffpd(min)+Tcomb(min) ,由于题目没有考虑 Tffpd ,所以我们认为 Tffpd = 0,于是得到 Thold ≤T2min 。关于保持时间的理解就是,在触发器 D2 的输入信号还处在保持时间的时候,如果触发器 D1 的输出已经通过组合逻辑到达
D2 的输入端的话,将会破坏
D2 本来应该保持的数据
-可编辑修改 -
建立时间与保持时间
时钟是整个电路最重要、最特殊的信号,系统内大部分器件的动作都是在时钟的跳变沿上进行
, 这就要求时钟信号时延差要
非常小 , 否则就可能造成时序逻辑状态出错;因而明确 的稳定性有非常重要的意义。
建立时间与保持时间
FPGA 设计中决定系统时钟的因素,尽量较小时钟的延时对保证设计
建立时间( Tsu: set up time)是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立的时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入触发器;保持时间(
Th: hold time)是指数据稳定后保持的时间,如果保持时间不满
1 所示。
足要求那么数据同样也不能被稳定的打入触发器。建立与保持时间的简单示意图如下图
图 1 保持时间与建立时间的示意图
在 FPGA 设计的同一个模块中常常是包含组合逻辑与时序逻辑,为了保证在这些逻辑的接口处数据能稳定的被处理,那么对建立时间与保持时间建立清晰的概念非常重要。下面在认识了建立时间与保持时间的概念上思考如下的问题。举一个常见的例子。
图 2 同步设计中的一个基本模型
图 2 为统一采用一个时钟的同步设计中一个基本的模型。图中
Tco 是触发器的数据输出的延时; Tdelay 是组合逻辑的延时;
Tsetup 是触发器的建立时间; Tpd 为时钟的延时。如果第一个触发器 D1 建立时间最大为 T1max,最小为 T1min,组合逻辑的延时最大为 T2max,最小为 T2min。问第二个触发器 D2 立时间 T3 与保持时间 T4 应该满足什么条件,或者是知道了
T3 与 T4 那
么能容许的最大时钟周期是多少。这个问题是在设计中必须考虑的问题,只有弄清了这个问题才能保证所设计的组合逻辑的延 时是否满足了要求。
-可编辑修改 -