公众号【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.

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

保持时间(通常表示为thdt_{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为关断状态,我们可以去除掉相关电路元件。此时,电路被划分为了两截,如下所示:

容易分析出,此时左边部分的电路Qm‾\overline{Q_m}Qm​​将会随着D变化而延时变化,极性与D相反。右边部分的电路,由于T3传输门关断,右边部分的信号将会维持上一时态的Q‾\overline QQ​不变,两个并联的方向相反的反相器起到了一个锁存的作用,此时电路的输出将仍旧保持上一个状态QQQ。

2.clk为高电平时

clk为高电平时,分析方法与低电平时相似,可以得到下面的图:

此时左半部分的电路起到锁存信号的作用,锁存过程之后信号Qm‾\overline {Q_m}Qm​​处于稳定状态,Q也将会随着Qm‾\overline {Q_m}Qm​​的稳定趋于稳定。

3.clk上升沿时

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

  • 建立时间

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

  • 保持时间

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

总结一下:

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

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

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

我们考虑下面这个常见的情形:

我们对后一个触发器进行时序分析,两个触发器之间有一段组合逻辑电路,组合逻辑延时我们暂称为TcombT_{comb}Tcomb​;D触发器输出与输入会有一定的器件延时,用TcqT_{cq}Tcq​表示;时钟偏移用TskewT_{skew}Tskew​表示,此外我们用TclkT_{clk}Tclk​表示时钟周期。

我们以第一个触发器的时钟clk为基准,可以推导出下图所示的时序关系:

其中clk_skew为时钟偏移TskewT_{skew}Tskew​后得到的,clk上升沿至第一个触发器输出Q1的时间为TcqT_{cq}Tcq​,Q1至D2的延时为组合逻辑延时,最后D2的到达时间相对于第二个clk_skew上升沿的时刻可以用下式表示:
Tarrive=Tcq+Tcomb−TskewT_{arrive} = T_{cq} + T_{comb} - T_{skew} Tarrive​=Tcq​+Tcomb​−Tskew​
由于到达时间需要满足第二个时钟沿的保持时间要求,因此有下式成立:
Tarrive>ThdT_{arrive} > T_{hd} Tarrive​>Thd​
且到达时间同时需要满足第三个时钟沿的建立时间要求,因此有下式成立:
Tclk−Tarrive>TsuT_{clk}-T_{arrive} > T_{su} Tclk​−Tarrive​>Tsu​
整理上面的式子,我们就能得到下面两个常见的约束式:
Thd<Tcq+Tcomb−TskewT_{hd} < T_{cq} + T_{comb} - T_{skew} Thd​<Tcq​+Tcomb​−Tskew​

Tsu<Tclk+Tskew−Tcq−TcombT_{su} < T_{clk}+T_{skew}-T_{cq}-T_{comb} Tsu​<Tclk​+Tskew​−Tcq​−Tcomb​

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

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

  • 增大TclkT_{clk}Tclk​:大时钟周期,即降低时钟频率

  • 增大TskewT_{skew}Tskew​:在时钟路径上加缓冲器(buffer),让时钟更晚到来

  • 减小TcqT_{cq}Tcq​:更换具有更小器件延时的触发器

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

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

  • 增大TcqT_{cq}Tcq​:更换具有更大器件延时的触发器
  • 增大Tcomb:T_{comb}:Tcomb​:增加组合逻辑运算时间
  • 减小TskewT_{skew}Tskew​:优化时钟路径,让时钟更早到来

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


TechDiary】,专注原创技术分享

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

  1. FPGA中建立时间和保持时间不满足如何解决

    问题: 建立时间和保持时间不满足如何解决 回答一: setup violation 主要就是设法剪掉critical path的delay,要么pipeline,要么retiming,要么把combi ...

  2. 解决建立时间与保持时间不满足的问题

    文章目录 基本概念 建立时间和保持时间的检查 解决建立时间和保持时间不满足的情况 1.建立时间不满足 2.保持时间不满足 基本概念 建立时间:即setup time,时钟上升沿之前数据要保持稳定的时间 ...

  3. 【亚稳态、建立时间和保持时间】亚稳态的产生原因、危害及解决方法

    一.亚稳态的产生原因 如图所示,当 sys_clk 时钟信号上升沿踩到 Rx 信号的变化间隙时,此时输出的 Rx_reg1 信号就会出现亚稳态,其输出信号就会出现震荡.毛刺或者固定在某一电压值,而不是 ...

  4. (8)FPGA面试题触发器满足建立时间和保持时间的原因

    1.1 FPGA面试题触发器满足建立时间和保持时间的原因 1.1.1 本节目录 1)本节目录: 2)本节引言: 3)FPGA简介: 4)FPGA面试题触发器满足建立时间和保持时间的原因: 5)结束语. ...

  5. 静态时序分析-建立时间和保持时间违例分析

    文章目录 单一分析模式 setup公式 hold公式 1.建立时间分析 2.保持时间分析 单一分析模式 时序分析模式分别为:单一分析模式(single mode).最好-最坏分析模式(BC_WC mo ...

  6. 寄存器建立时间与保持时间分析

    首先先介绍几个概念: 建立时间(Tsu):即时钟有效沿到来前数据应该保持的稳定的时间. 保持时间(Th):即时钟有效沿到来后数据应该保持的稳定的时间. 建立时间余量(Tsu_slack):数据要求到达 ...

  7. 【综合】数字IC设计需要考虑的时序参数;Race Hazard;同步系统时序要求;建立时间、保持时间;偏斜;抖动;毛刺、竞争冒险;亚稳态

    [综合]数字IC设计需要考虑的时序参数:Race Hazard:同步系统时序要求:建立时间.保持时间:偏斜:抖动:毛刺.竞争冒险:亚稳态 数字设计时需要考虑的时序参数 传播延迟 propagation ...

  8. 关于建立时间与保持时间的本质

    建立时间与保持时间的概念? 建立时间:触发器在时钟上升沿到来之前,其数据输入端的数据必须保持不变的最小时间.保持时间:触发器在时钟上升沿到来之后,其数据输入端的数据必须保持不变的最小时间. 建立时间裕 ...

  9. IC/FPGA笔试/面试题分析(七)建立时间和保持时间类型考题汇总分析

    自从召集2020届校招同行加入新建立的"IC/FPGA校招笔试面试交流群",见识到了很多关于建立时间和保持时间分析的题目,在为别人解答疑惑,以及别人为自己解答疑惑的同时,自己对于知 ...

最新文章

  1. 不妨对苹果保持一点宽容
  2. 重磅推荐几个接私活的利器!
  3. [转]布隆过滤器详解
  4. iview的走马灯嵌套在模态框中,宽度为0的解决方案
  5. 如何构建一个真实的推荐系统?
  6. 512M内存编译php出错
  7. 免费体验,阿里云智能LOGO帮你解决设计难题
  8. 利用RTMP或RTSP实现跨平台一对一互动功能
  9. 风行网否认收购暴风TV 称双方纯属业务合作
  10. 搭建网站常见返回码40X 50X等错误的原因及解决方案
  11. c语言发票的编码,关于增值税发票中商品税收分类编码对应的简称
  12. 4矩阵键盘c语言程序,4×4矩阵键盘数码管显示按键值程序
  13. ffmpeg 音频转amr
  14. Java 获取本机IP地址
  15. WIN7打开远程桌面连接设置
  16. FPGA之道(11)FPGA芯片的供电系统
  17. vue和 element ui下载到本地后引入
  18. 那些年啊,那些事——一个程序员的奋斗史 ——21
  19. Tue Sep 03 2019 00:00:00 GMT+0800 (中国标准时间)怎么变成时间戳
  20. java for循环如何优化_java for循环及其优化

热门文章

  1. 817考研c语言程序设计,2017年沈阳航空航天大学计算机学院817程序设计[专业硕士]考研题库...
  2. 论文(二)YOLOv2详解(翻译、总结和思考)
  3. ipad触摸测试软件,平板电脑屏幕灵敏度测试:iPad系列最出色
  4. IDM短信发送接口设计说明
  5. 层次softmax (hierarchical softmax)理解
  6. JETT(二)-Java简单实现
  7. ps保存图片logo背景透明
  8. Mybatis注解开发笔记
  9. win10系统改win7设置bios方法图文教程
  10. 神经生物学博士就业前景,神经网络硕士就业前景