首页 > 代码库 > 数字电路-保持与建立时间
数字电路-保持与建立时间
首先:建立时间和保持时间都是器件要求的特性。其中建立时间是器件输入端在时钟信号有效沿到来前,要求输入信号稳定不变的时间。保持时间是器件输入端要求输入信号在时钟信号有效沿到来后保持稳定不变的时间。如果输入信号不满足建立时间和保持时间的要求,就可能导致数据锁存错误。
延迟时间是器件本身或布线的物理特性,其含义是信号从器件或布线经过所需的时间。
这里主要讨论器件的延迟时间。通常器件的延迟时间由两部分组成。一个是触发器输出响应时间(tffpd)。可以理解为触发器输出在clk有效沿到来后的时间内发生变化, 之后稳定,也可以理解输出延迟。另一个触发器输出的变化经过组合逻辑元件所需的附加时间,一般是组合逻辑延迟(tcomb)。
如下图所示:
再来解释两个概念:
建立时间容限和保持时间容限。
所谓建立时间容限是指器件允许的安全的建立时间长度范围。同样保持时间也就是器件允许的安全的保持时间长度范围。一般来说建立时间容限和保持时间容限都大于等于0。
根据这个要求,如上图所示,就有以下约束:
tclk = tffpd + tcomb + 建立时间容限 + tsetup
所以建立时间容限 = tclk - tffpd(max) - tcomb(max) - tsetup >=0
tsetup <= tclk - tffpd (max)- tcomb(max)
再来看保持时间容限
首先对于数据接收端来说,任何时钟沿采样的数据,都是发送端前一时钟周期发送的数据。发送端可能每个时钟周期都要发送数据,那么对于接收端来说,任何一个时钟沿后一段时间,数据线上的数据都会被发送端第二次发送的数据改变,所以保持时间容限其实是由于下一个时钟节拍上的数据引起的。
有效数据在tffpd + tcomb之后到达触发器,如果tholdup > tffpd + tcomb,则下一个有效数据到达后,tholdup仍然没结束,但前一个数据已经被破坏,所以必须tholdup <= tffpd + tcomb。
信号在时钟信号有效沿跳变,但真正到达输入端的的跳变发生在时钟信号有效沿后的tffpd + tcomb时刻。根据器件的保持时间要求,输入必须保持一定时间的稳定,所以tholdup <= tffpd + tcomb。保持时间容限则 = tffpd(min) + tcomb(mix) - tholdup。
如下图所示:
e.g:题目:时钟周期为T,触发器D1的建立时间最大为T1max,最小为T1min。组合逻辑电路最大延迟为T2max,最小为T2min。问,触发器D2的建立时间T3和保持时间应满足什么条件。
Tffpd:触发器输出的响应时间,也可以理解为触发器输出在clk上升沿到来后的时间内发生变化, 之后稳定,也可以理解输出延迟。
Tcomb: 触发器输出的变化经过组合逻辑元件所需的附加时间,也就是题目中的组合逻辑延迟
tsetup:建立时间
thold:保持时间
tclk: 时钟周期
建立时间容限:这里用容限的概念是为了数学推导方便,时间容限仅仅是一个概念,在这里我们对建立时间容限的要求是大于0,当然有的地方可能就是小于0了。
同样保持时间容限也是需要大于0的。
从图中,我们可以很清楚的看出,建立时间容限=tclk-tffpd(max)-tcomb(max)-tsetup
这里应该理解到,tffpd和tcomb都是要考虑最大值的(为什么?不需要解释了吧,我很笨都理解了喔,相信你想想也能理解的:))那么根据建立时间容限>=0
推导出tsetup<=tclk-tffpd(max)-tcomb(max)
这里,我们是不是很清楚了理解了建立时间的要求是<=T-T2MAX,因为题目中没有考虑
tffpd。
同理,保持时间容限tffpd(min)+tcomb(min)-thold,这里是要取最小值,那么根据保持时间容限>=0推导出thold<=tffpd(min)+tcomb(min)
因为题目中没有考虑tffpd,而tcomb就是t2min,所以thold<=t2min。取最小值的原因就是在延时最小的情况下都应该满足保持时间。否则触发器输入无效。
在这里我们应该发现,从数学上看,虽然既有max又有min,但是thold,和tsetup都是小于最小值,因为tsetup<t-t2max,注意t2max前的负号!这就很符合物理上的思想,对与触发器来说,我们希望它越快越好!也就是建立保持时间越短越好!越不容易进入亚稳态!
数字电路-保持与建立时间