07-建立时间和保留时间

建立时间和保留时间

首先,我们必须有一个观点,就是对任何一种触发器在时钟触发沿儿前后的一个小的时间窗口内,输入的信号必须稳定。这样的作用,也就是说我们时钟沿而来的时候,我们捕获的数据也是稳定的值,也就是确定的值。那如果不稳定呢,如果数据变化在这个时钟沿,那请问你这个时钟捕获的数据到底是什么样的值呢?你说不出来。或者说不清楚。那这样的电路的工作是极不可靠或者极不稳定的。
setup time 触发器的时钟信号上升,沿到来以前数据稳定不变的时间就setup time。我们以这个电路图为例,给大家讲一下。这是我们有两个寄存器ff 1和ff 2,它们的接的时钟都是c2k。ff 1上升沿。锁存了以后,经过逻辑以后,比如经过11纳秒以后才稳定下来。ff 2的clk是在这个位置。那么,这个时钟上升沿儿要捕获这个数据d。那么,它们之间的距离就成为set up time。一般呢,器件有一个自己的setup time的要求数据的到来的时间这个差一定要大于这个寄存器要求的setup time的时间要求。这样就可以使寄存器打出的数据是正确的。如果你这个数据到来违背了这个setup time。也就是说你这个数据可能在这时候还变化,那么,在这个时刻时钟打数据的时候,有可能打的是不正确的数据。

保持时间hold time。保持时间是指触发器的时钟信号上升沿儿到来以后数据稳定不变的时间。还是刚才那图在这个地方。时钟沿到来以后,这个阶段我们也要稳定。保持time不够的话,同样数据同样不能被正确的打入这个寄存器。
这个波形在实际工作中,我们这个clk的这个时钟并不是一个放波,这个时钟变化是一个缓慢变化的过程。那么,同样数据的变化呢?也是一个缓慢变化过程。那么,如果hold time没有满足的话,那就有可能这个上升沿数据也在变化,那这时候你这个时钟到底打入的是哪个数据呢?不确定。所以如果你违背了set up time以及hold time的时间,violation的话极有可能导致数据捕获是错误的。

posted @ 2023-10-15 15:22  Icer_Newer  阅读(30)  评论(0编辑  收藏  举报