一看就懂的建立时间和保持时间

目录

前言

首先

画波形图分析

练习


前言


建立时间(set up time)和保持时间(hold time)一直是面试中的必考题,因为一直都不是很清楚明白的理解这两个概念,故在本文中通过一系列的分析来彻底搞懂这两个概念,力求看一遍就能在面试过程中侃侃而谈,对答如流。


首先


先上定义(来自维基百科):

建立时间时钟事件发生之前数据信号应保持稳定的最短时间,以便时钟能够可靠地对数据进行采样。 这适用于触发器的同步输入信号。

保持时间时钟事件发生之后数据信号应保持稳定的最短时间,以便时钟能够可靠地对数据进行采样。 这适用于触发器的同步输入信号。


这里面的时钟事件可以理解为:时钟信号的边沿触发事件。而同步设计是芯片设计的基础,如不考虑同步,那这些都将失去意义。接下来我们分析这两句话的意思。

都说建立时间和保持时间是触发器的固有属性,那么为什么会出现建立时间和保持时间这个概念,我的理解是因为在集成电路中存在着大量的基于同步设计的触发器,而由于时钟的漂移,和时钟源与每个触发器的远近不同所以抵达每个触发器的时间不同。由于这两个原因为同步设计造成了巨大的障碍,因此我们引入建立时间和保持时间这个概念,将电路中的不稳定因素全部考虑进去以确保设计的稳定性、可靠性。

上图是一个非常常见的两个触发器用组合逻辑相连的数据传输模型。我们知道,在真实电路中数据传输时处处都有延迟,在上图中,触发器在接收到有效的clk信号后,将数据从D端传输到Q端的所需要的时间为Tco。数据经过中间的组合逻辑时所需要的时间是Tcomb,在下一个clk到来之后,又需要一个Tco的时间才能将D2数据从D端传至Q端,经过这么长的路程,我们应该确保Q2还是最初的D1那一笔数据。

画波形图分析

接下来画波形图来直观的看到上面这么多延迟。

逐步分析这个波形图,在第一个clk上升沿的时候,将D1的数据传递到了Q1,触发器的延迟为Tco,接下来经过组合逻辑Tcomb,Q1变为了D2,随后在第二个clk上升沿,将D2的数据传递到了Q2。

回到最上面的定义,建立时间和保持时间的区别就在于处在时钟事件的前后,在波形图中,红色虚线就代表着时钟事件,而时钟事件之前,由于信号传输过程中的延迟,建立时间Tsu=Tclk - Tco - Tcomb保持时间Th=Tco + Tcomb。由上述公式我们可以推导出建立时间Tsu加上保持时间Th刚好等于一个Tclk。

由此可见,建立时间和保持时间并不是一个固定的数值,而是一种可以称之为裕量的存在。而且由于建立时间+保持时间等于一个clk周期,所以建立时间裕量越大那么保持时间裕量就越小,反之亦然。

那么在上述电路中,考虑到触发器延迟Tco的最大值和最小值,Tcomb的范围应该为:Th - Tco_max < Tcomb < Tclk - Tco_min - Tsu

但是一般触发器延迟不可控,我们只能去改变组合逻辑的大小来控制建立时间和保持时间,最常用的应用就是在两个触发器之间插缓存器(buffer)以此来满足保持时间的要求。

练习

下面我们来看一道计算题:

时钟周期为T,触发器D1的建立时间最大为T1max,最小为T1min。组合逻辑电路最大延迟为T2max,最小为T2min。问:触发器D2的建立时间T3和保持时间T4应满足什么条件?

通过上面公式和波形图都可以看到,计算第二个触发的建立时间和保持时间与第一个触发器没有关系。

本题默认触发器延迟为0,那么建立时间的最大值就应该是T3max = T - T2min ,所以T3 < T - T2min ;

保持时间的最大值就是T2max,所以T4 < T2max;

 

  • 27
    点赞
  • 308
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值