文章目录
建立时间和保持时间
1. 建立时间和保持时间的概念
-
建立时间tsu:所谓建立时间就是说为了保证D触发器的输出是稳定的,数据必须在时钟上升沿tsu时间之前保持稳定,否则D触发器的输出就是不稳定的。
-
保持时间thold:所谓保持时间就是说为了保证D触发器的输出是稳定的,数据必须在时钟上升沿来之后继续保持thold时间的稳定,否则D触发器的输出就是不稳定的。
2. 建立时间和保持时间如何约束时序电路
第一张图展示的是基本的数字时序电路的组成,基本延时由两部分组成。一部分是tc-q,指的是触发器从时钟上升沿到数据稳定输出的延时;第二部分是tcomb logic,就是两级触发器之间的组合逻辑的延迟。
2.1 建立时间约束
- 建立时间约束:从上面的时序图可以看出,一个时钟周期可以分为三部分:第一部分是tc-q,第二部分是组合逻辑的延时tcomb logic,第三部分是触发器的建立时间tsu。三者要满足以下的关系:
2.2 保持时间约束
- 保持时间约束:在如图标识的时钟的上升沿会同时发生D1和D2的传输,由于D2数据有保持时间的要求,所以需要D2在时钟的上升沿之后仍需保持一段时间,但同时D1也在传输,并且经过tc-q+tcomb logic就会追上D2,我们要保证D2不被冲刷掉,所以我们的保持时间约束如下:
3. 为什么触发器会有建立时间和保持时间
上图展示的是一个最基本的利用双稳态结构做成的正沿触发器内部结构。只有了解了其内部结构才能搞清楚为什么会存在建立时间和保持时间。
3.1 为什么会存在建立时间
- 所谓的建立时间,就是说在时钟上升沿来之前数据必须稳定的时间,如果数据没有稳定,那么我的触发器将采不到这个数据。
- 当我们的时钟上升沿还没来到的时候,时钟处于低电平,传输们T1被打开,对于前一级锁存器来说,其对数据D建立双稳态的时间为I1+T1+I3+I2的延时,即三个反相器的延时tpd_inv加上一个传输们的延时tpd_tx,然后当时钟上升沿来了之后,时钟变为高电平,传输们T2被打开,输入数据D成功到达QM,此即为成功采样数据D。
- 换言之,当输入数据D在时钟上升沿来之前没有到达传输们T2,那么当时中上升沿来之后,第一级的双稳态就不能建立起来,那么此时QM采样的数据将会是不确定的,也就是说此次采样数据D失败。
- 所以,该寄存器的建立时间就是tsu = 3 x tpd_inv + tpd_tx
3.1 为什么会存在保持时间
- 所谓维持时间,就是说时钟上升沿之后输入数据仍需保持稳定一段时间,否则数据也会采样失败。
- 在这里的情形下,当时钟变为高电平时,传输们T1关断。由于D输入和CLK在到达T1之前都需要经过一个反相器,所以在时钟变为高电平之后输入上的任何变化都不会影响输出。所以维持时间是0。
- 但是如果clk后面跟了三个反相器,那么clk变为高电平之后,其需要经过三个反相器延时才能关断传输们T1,而数据D则经过一个反相器延时就到达了T1,所以如果此时输入数据D变化的话其实是可以直接通过传输们T1被后级电路采样的。所以这种情况下在时钟上升沿来之后输入数据D仍需要保持两个反相器的延时2 x tpd_inv。即该寄存器的保持时间为thold = 2 x tpd_inv。