数字IC设计中的建立时间和保持时间

描述

引言

  本文主要介绍了建立时间和保持时间。

一、建立时间(Setup Time)

  建立时间是指 D 触发器的时钟信号上升沿到来之前,数据保持稳定不变的时间。

  输入信号应该提前时钟上升沿(如上升沿有效)Tsu 时间到达芯片,这个 Tsu 就是建立时间。如果不满足建立时间要求,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器,或者说,该数据就会被永久 “跳过” 而未被 “采样”。举个例子,坐火车时需要提前到站检票安检,而不是一到火车站就可以乘坐,必须的提前到站的时间就是建立时间。

  如果数据信号在时钟沿触发前的持续时间超过了建立时间 Tsu,那么这个时间间隔就叫做建立时间裕量。

  SDC 约束命令为 set_max_delay。

二、保持时间(Hold Time)

  保持时间是指 D 触发器的时钟信号上升沿到来之后,数据保持稳定不变的时间。

  数据保持不变以便能够稳定读取,如果保持时间不满足的话,那么数据便不能被有效读取并转换为输出。

  如果数据信号在时钟沿触发后的持续时间超过了保持时间 Th,那么这个时间间隔就叫做保持时间裕量。

  SDC 约束命令为 set_min_delay。

总结(Summary)

  建立时间和保持时间这两个时序参数是测试芯片对输入信号和时钟信号之间的时间要求,也就是它们表征了时钟边沿触发前后数据需要在触发器的输入持续时间,是芯片本身的特性;其实,这期间其实还涉及到竞争 - 冒险的问题,也就是毛刺,建立保持时间的存在既是触发器内部的特性又在屏蔽毛刺方面起到了一定的作用;

延伸(Extend)

  • 恢复时间(Recovery Time)是指 D 触发器的时钟信号上升沿到来之前,低电平复位信号或者高电平清零信号保持稳定不变的时间。
  • 移除时间(Removal Time)是指 D 触发器的时钟信号上升沿到来之后,低电平复位信号或者高电平清零信号保持稳定不变的时间。
  • 传播延时(Propagation Delay)是指一个数字信号从器件(一般是 DFF,符号表示为 Tcq)的输入端到输出端所需的时间。通常在 FPGA 中是指时钟上升沿之后延时 Tcq 的时间,数据才到达寄存器 Q 端。区别于门传播延时,表示为信号通过该门所经历的时间,定义为输入信号和输出信号波形在 50% 翻转点之间的时间;
  • 组合逻辑延时(Combinational Logic Delay)是指两级寄存器之间的输出端 Q 到输入端 D 之间的组合逻辑延时,符号表示为 Tlogic。
  • 传播延时是同一个寄存器的输入到输出的延时,组合逻辑延时是不同寄存器的输出到输入的延时。

  主从式上升沿触发寄存器的案例分析(Case Analysis),如下:

  • 从电路分析可知,在时钟上升沿到来之前数据必须要被送到第一级电路的锁存器里面,即 M 端。
  • 为什么呢?因为如果时钟上升沿到来时,数据没有被送到 M 端,而当时钟上升沿一来,此时 T2 右端与 M 端的信号就会不一致,M 端为旧数据,T2 右端为新数据,那么旧数据可能会将新数据冲刷替代掉(这种情况是不确定的,处于亚稳态)。

触发器

主从式上升沿触发寄存器

  • 对于建立时间 Tsu,在 clk 上升沿到来时,数据要被传到 M 端,需经过 I1,T1,I3,I2。故在时钟上升沿到来前 Tsu = TI1 + TT1 + TI3 + TI2 时间数据 D 就必须送到寄存器输入端,这个时间就是三个反相器加一个传输门的延时;
  • 对于保持时间 Th,从电路可以看到,当时钟上升沿一来,T1 就关闭了,就算关闭具有延迟,上升沿一到,数据立即就变化了,还是要经过一个反相器 I1 才能传到 T1,故不担心数据会被送进去,因此保持时间可以为零,Th = 0;当然这是对于这个主从式结构的寄存器而言,其他的寄存器的保持时间不一定为零;
  • 对于传输延时 Tcq,从电路分析,当时钟上升沿来了之后,数据还需要经过 T3,I6 才能传到 Q 端,故这个寄存器的传输延时 Tcq = TI6 + TT3。
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分