一文解决关于建立时间和保持时间的困惑

公众号【TechDiary】,专注技术分享,手把手教你成为技术大神
在这里插入图片描述

之前介绍数字电路复位信号设计的文章中有提到过很多次建立时间、保持时间的概念,事实上建立/保持时间(setup time & hold time)是同步电路设计中基石一般的存在,因此也成为各大IC公司笔面试当中的必考题。当然刚入门FPGA方向的同学可能对这个概念陌生一点,但是如果想要在FPGA方向有所研究的话,处理建立保持时间违例(Vivado中体现的变量名为WNS & TNS & WHS & THS)是最最基础的操作。

本篇文章将从底层原理讲起介绍建立保持时间的概念由来以及时序要求,一文解决关于建立保持时间的大部分困惑。

  • 什么是建立时间、保持时间

  • 为什么会有建立时间、保持时间

  • 建立保持时间对于电路时序的影响


什么是建立保持时间

触发器(Flip-flop)是数字电路当中一个最基本的电路单元,而建立时间和保持时间正是触发器中的一个概念 ,以下引自Wiki百科:

Setup time is the minimum amount of time the data input should be held steady before the clock event, so that the data is reliably sampled by the clock.

Hold time is the minimum amount of time the data input should be held steady after the clock event, so that the data is reliably sampled by the clock.

建立时间(通常表示为 t s u t_{su} tsu)指在时钟上升沿来临之前信号保持稳定的最小时间。

保持时间(通常表示为 t h d t_{hd} thd)指在时钟上升沿来临之后信号保持稳定的最小时间。

下图直观地表示了建立时间与保持时间相对于时钟上升沿的位置:
在这里插入图片描述
简而言之,触发器上升沿采样的前后一段时间内数据必须保持稳定,否则采样出的数据将会出现未知态,也就是我们常常说的“亚稳态”。数字电路中的亚稳态现象是威胁电路稳定工作的罪魁祸首,因此我们需要研究建立时间、保持时间的规律,尽可能避免亚稳态现象的产生。


为什么会有建立时间、保持时间

我们了解了建立时间、保持时间的概念后,可能心中有这样的疑问:为什么电路中会有建立时间、保持时间呢?影响建立时间、保持时间长短的因素有哪些?当我们在触发器层次无法解答这些问题时,就需要深入下去,从触发器的内部结构去探究这个问题。
在这里插入图片描述
一个简单的CMOS上升沿触发器可以看作是由上面的几个基本元件组成的,其中T1、T2、T3、T4为传输门,I1、I2、I3、I4为反相器。

在这里补充一下传输门的相关知识,传输门实际由一对N沟道和P沟道的MOS管并联构成,NMOS的gate为高时导通,PMOS的gate为低时导通。上面的表示符号带非端的连接口即为PMOS的gate端,对面的为NMOS的gate端。当PMOS端为低电平,NMOS端为高电平时传输门导通,反之传输门关断。因此可以简单的理解传输门是一个电路开关。以图中的传输门为例:

  • 当clk为低电平时红色传输门导通,蓝色传输门关断
  • 当clk为高电平时红色传输门关断,蓝色传输门导通

我们将整个过程分为clk为低电平、高电平、上升沿三个阶段分析:

1.clk为低电平时

根据上面的分析,T1、T4为导通状态,我们可以将其看作是一个具有延时效应的连线,T2、T3为关断状态,我们可以去除掉相关电路元件。此时,电路被划分为了两截,如下所示:
在这里插入图片描述
容易分析出,此时左边部分的电路 Q m ‾ \overline{Q_m} Qm将会随着D变化而延时变化,极性与D相反。右边部分的电路,由于T3传输门关断,右边部分的信号将会维持上一时态的 Q ‾ \overline Q Q不变,两个并联的方向相反的反相器起到了一个锁存的作用,此时电路的输出将仍旧保持上一个状态 Q Q Q

2.clk为高电平时

clk为高电平时,分析方法与低电平时相似,可以得到下面的图:
在这里插入图片描述
此时左半部分的电路起到锁存信号的作用,锁存过程之后信号 Q m ‾ \overline {Q_m} Qm处于稳定状态,Q也将会随着 Q m ‾ \overline {Q_m} Qm的稳定趋于稳定。

3.clk上升沿时

当clk上升沿时,即clk由低电平变为高电平的过程。此时我们来分析建立时间与保持时间具体是由什么原因产生的:

  • 建立时间

当时钟处于低电平时, Q m ‾ \overline {Q_m} Qm将随着D输入的变化而变化,时钟高点平时将会对 Q m ‾ \overline {Q_m} Qm进行锁存。我们需要意识到的是,数据信号通过传输门以及反相器是需要消耗时间的,因此触发器的建立时间指的是数据通过T1、I1至 Q m ‾ \overline {Q_m} Qm的时间。这时建立时间的存在意义就大白天下了,我们需要在进入时钟高电平阶段前将稳定的数据送入到锁存处,由于电路延时的原因,才需要建立时间的存在。当然,上面的结论是忽略了时钟本身的偏移的,事实上建立时间也有时钟偏移的影响,因此也会出现负建立时间的情况

  • 保持时间

当时钟进入高电平后, Q m ‾ \overline {Q_m} Qm进行锁存,并经过T3、I3后输出到Q端,因此保持时间本质上是数据通过T3、I3的时间,保持时间过后,数据才能保证稳定。同样的,上面的结论也是忽略了时钟本身偏移的,只是保持时间发生于时钟沿之后,因此锁存时时钟沿必须到达,因此不会出现负的保持时间(即在时钟沿到达前数据稳定),最小的保持时间为0。

总结一下:

  • 建立时间是在时钟上升沿来临之前将数据锁存的时间
  • 保持时间是在时钟上升沿来临之后将锁存的数据输出的时间

建立保持时间对于电路时序的影响

有了建立时间和保持时间的要求,整个电路系统中每一个触发器都需要满足这个时序的约束条件。如此庞大的工作量现在已经由EDA软件代替计算,但是我们仍需要了解建立保持时间对于其他电路参数的约束,才能在出现违例的情况下修改电路结构,完成既定要求的设计。

我们考虑下面这个常见的情形:
在这里插入图片描述
我们对后一个触发器进行时序分析,两个触发器之间有一段组合逻辑电路,组合逻辑延时我们暂称为 T c o m b T_{comb} Tcomb;D触发器输出与输入会有一定的器件延时,用 T c q T_{cq} Tcq表示;时钟偏移用 T s k e w T_{skew} Tskew表示,此外我们用 T c l k T_{clk} Tclk表示时钟周期。

我们以第一个触发器的时钟clk为基准,可以推导出下图所示的时序关系:
在这里插入图片描述
其中clk_skew为时钟偏移 T s k e w T_{skew} Tskew后得到的,clk上升沿至第一个触发器输出Q1的时间为 T c q T_{cq} Tcq,Q1至D2的延时为组合逻辑延时,最后D2的到达时间相对于第二个clk_skew上升沿的时刻可以用下式表示:
T a r r i v e = T c q + T c o m b − T s k e w T_{arrive} = T_{cq} + T_{comb} - T_{skew} Tarrive=Tcq+TcombTskew
由于到达时间需要满足第二个时钟沿的保持时间要求,因此有下式成立:
T a r r i v e > T h d T_{arrive} > T_{hd} Tarrive>Thd
且到达时间同时需要满足第三个时钟沿的建立时间要求,因此有下式成立:
T c l k − T a r r i v e > T s u T_{clk}-T_{arrive} > T_{su} TclkTarrive>Tsu
整理上面的式子,我们就能得到下面两个常见的约束式:
T h d < T c q + T c o m b − T s k e w T_{hd} < T_{cq} + T_{comb} - T_{skew} Thd<Tcq+TcombTskew

T s u < T c l k + T s k e w − T c q − T c o m b T_{su} < T_{clk}+T_{skew}-T_{cq}-T_{comb} Tsu<Tclk+TskewTcqTcomb

上面两个式子就是同步时序电路中的经典时序约束,对应公式我们可以得到当建立时间或者保持时间违例时需要调整电路的哪些参数:

对于建立时间违例,我们可以采取的措施有:

  • 增大 T c l k T_{clk} Tclk:大时钟周期,即降低时钟频率

  • 增大 T s k e w T_{skew} Tskew:在时钟路径上加缓冲器(buffer),让时钟更晚到来

  • 减小 T c q T_{cq} Tcq:更换具有更小器件延时的触发器

  • 减小 T c o m b : T_{comb}: Tcomb组合逻辑优化,例如将串行的组合逻辑优化为并行逻辑,或是在其中插入触发器(即流水线设计)

对于保持时间违例,我们可以采取的措施有:

  • 增大 T c q T_{cq} Tcq:更换具有更大器件延时的触发器
  • 增大 T c o m b : T_{comb}: Tcomb增加组合逻辑运算时间
  • 减小 T s k e w T_{skew} Tskew:优化时钟路径,让时钟更早到来

可以看到保持时间与时钟周期无关,剩余的参数与建立时间恰好相反,建立时间和保持时间的关系如同博弈一般。芯片世界中的最大规律就是“我全都要”是不可能的,在夹缝中生存,协调两者的关系才是常态。恐怕这也是现实生活里的规则吧~


TechDiary】,专注原创技术分享

  • 21
    点赞
  • 157
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
### 回答1: ESD(Electrostatic Discharge,静电放电)是一种瞬时放电现象,通常是由人体或设备上积累的静电电荷引起的。一般来说,ESD会导致电子设备损坏或误操作,因此必须采取措施来避免ESD。 在设计中,ESD保护应该开始于PCB的物理设计。一个好的物理设计将使ESD泄放的能量尽可能地均匀地分散到整个电路板上。这种物理设计包括有效的接地,涂覆和排列PCB层。同时,这也需要考虑到整个系统的电缆结构、机箱接地和隔离等因素,从而最大限度地提高整个系统的耐ESD能力。 此外,在设计电路时,还需要考虑到ESD保护措施。主要的保护措施包括使用可靠的ESD保护器件,如TVS器件、瞬变压抑器和热释电器件,以保护线路免受ESD的影响。此外,在设计输入、输出和供电接口时,还应该采用合适的线路过滤器和电容器,以进一步提高系统的ESD耐受性。 最后,测试是ESD保护设计的重要环节。ESD测试可以验证保护设计的有效性,并排除措施上的缺陷。通常,测试人员会使用标准ESD模拟器来模拟真实的ESD事件。在测试过程中,应注意对设备进行预处理,如去静电和适当的人体模拟。此外,还应该制定合适的检验标准以确保测试的准确性和可重复性。 总之,ESD保护设计至关重要,因为它能够保护电子设备免受静电放电的损害。为了实现可靠的ESD保护,这需要考虑物理设计和电路设计,以及有效的测试工具。最后,只有将所有这些因素合理结合,才能实现有效的ESD保护设计。 ### 回答2: ESD(Electrostatic Discharge,静电放电)指的是在两个带有不同电荷的物体接触或者靠近时,电荷之间发生放电的现象。这种放电可以对各种电子元器件和电路造成损害,从而影响设备的性能和寿命。 ESD的原理可以通过三种方式传递:空气中的放电、直接接触和电感耦合。在实际应用中,ESD对硅芯片、存储器、晶体管等电子元件的损害是非常严重的,这些元件的特性和结构容易受到ESD的影响。 为了防止ESD对电子元件和电路的损坏,需要在设计中采用一些专门的技术,比如在元器件和电路板上增加ESD保护电路、在设备外壳上增加处理工艺等。对于集成电路芯片而言,可以采用对基底和指的进行控制,以及在芯片电路设计过程中合理选择元器件和适当布局等。 总之,ESD保护是电子元器件和电路设计中非常重要的一环,需要采用针对性的技术来减缓和防止ESD对设备的影响,从而保证设备的长期稳定性和可靠性。 ### 回答3: ESD全程为静电放电,是由于静电在两者之间产生的高电压放电引起的电感和电容的相互作用。在现代电子系统中,由于设备的电路越来越小,因此更容易受到静电干扰,人们不得不在设计中考虑如何避免或降低这种静电干扰。本文将从ESD的原理出发,简要介绍如何在电路设计中考虑防止ESD干扰。 ESD的产生是由于静电的积累导致的高电压放电,因此防止ESD干扰的基本原则是减小静电的积累。在电路设计中,静电主要通过两个方面来进行干扰:一是直接放电干扰,即静电直接放电到电路中,导致电路损坏;二是间接放电干扰,即静电放电到设备的金属外壳等部位,导致电磁场干扰影响电路的正常工作。因此,在设计中,需要采用一些措施来减小这些干扰。 1. 选择合适的元器件:在元器件的选择上,要选择一些抗ESD干扰的元器件,如采用ESD保护二极管等,能够减小ESD对电路的影响。 2. 优化电路结构:在电路设计中,要优化电路结构,减少电路间的交叉干扰,避免电路产生高电位差,这样能够减少静电的积累和ESD的辐射。 3. 采用ESD保护电路:在设计电路时,引入一些ESD保护电路,能够有效地减小ESD对电路的影响。例如采用Zener二极管、TVS二极管等保护电路。 在总体设计中,需要综合以上措施,采用一些适合的方案来消除ESD对电路的干扰。同时,在实际使用中,也需要对电路进行定期维护和检测,保证电路的正常运行。在电子技术的快速发展中,ESD防护的问题只会越来越重要,只有对其进行深入的研究和应用,才能更好地保证电子设备的稳定运行。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值