(D)触发器的建立时间和保持时间

1. 建立时间和保持时间
建立时间:
时钟有效沿到来之前的某段时间内,数据必须稳定,否则触发器锁存不住数据,这段时间成为建立时间,用Tsetup或者Tsu表示,也就是说要锁存的数据比上升沿早来的时间必须大于建立时间。
保持时间:
时钟有效沿到来之后的某段时间内,数据也必须稳定,否则触发器锁存不住数据,这段时间成为保持时间,用Thold或者Th表示。也就是说,要锁存的数据,在上升沿到来之后,还要停留比保持时间大的时间。
如下图所示:
在这里插入图片描述
在第二个时钟上升沿的时候,要锁存住输入端D的高电平,D1是满足了建立时间和保持时间的情况;而D2则是建立时间没有满足,因此不能成功锁存住输入的高电平;D3保持时间不满足,也不能成功锁存输入的高电平。

2.理解建立时间保持时间

1)D触发器门级结构:

在这里插入图片描述
D触发器在(上升)边沿进行锁存数据的,即clk从在0→1的时候锁存数据:
假设原来数据是1(即:从锁存器锁存的数据是1),然后要锁存的数据是0。理解建立时间和保持时间的:  
首先,要让时钟上升沿之后Q输出为0,就是要让从锁存器输出为0,即是要主锁存器在时钟上升沿之后稳定地锁存住0,换个角度看:在上升沿到来以及到来之后,主锁存器负责锁存数据,而从锁存器则负责传输主锁存器所锁存好的数据;这样一来,我们的研究重点就放在了主锁存器

2)主锁存器

在这里插入图片描述
在时钟上升沿到来后,我们要让Q输出0。假如数据的建立时间不足,会发生什么呢,也就是数据(0)相对于时钟上升沿来得太晚了会怎么样呢?
  假设在T=0ns的时候,clk从0变成1(为方便分析,假设时钟是理想的,没有跳变延时)。我们假设一个数据D1=0在T=-0.7ns(即比时钟上升沿提前0.7s)的时候到达数据的端口,然后另一个数据D2=0在T=-0.3ns的时候才来到数据端口(也就是说,D1来得早,而D2来得比较晚即建立时间不足)。然后D1这个0翻山越岭越过了反相器,变成1,经过了与门(由于与门的另一个输入为1)变成了1,经过或非门之后,使输出Q变成了0,也就是变成了从锁存器要锁存的0值。然后主锁存器Q刚输出0的时候,还不稳定,需要通过反馈使得自己的或非门的输入为1就是需要t1+t2+t3的时间(如下图所示)进行维持Q的稳定。
  在这里插入图片描述
  然后我们再看看D2数据翻山越岭,刚刚翻到与门那里,时钟沿就来了,它都没有成功到达或非门输入。于是D2就肯定达不到目标了,也就是变不成了从锁存器要锁存的0值,这就是建立时间不足的引起锁存不住值的问题。
  接着我们看一下保持时间,还是从主锁存器这边看。加入0时刻时钟clk发生0→1的上升沿跳变时候,clk的1信号首先需要经过反相器(inst10)变成0信号后传到后面的与门(inst13和inst14)。信号从时钟端口到达与门需要经过t1的延迟时间(如下图所示)即他t1时刻与门的输入就为低电平0。那么在这个t1时刻之前,与门的输入端clk始终保持高电平1;在t1时刻之前,如果输入端D发生跳变,也就是从0变成1(也就是低电平0这个信号保持得不够久,由于某些原因被冲成了高电平1),变换后的数据端高电平1经过t2延时之后,到达与门的另一个输入端。当t2<t1的时候(由于时钟需要经过反相,一般情况下t1是大于t2的),与门的输出就为1,也就是S=1,这就导致Q’=0。而R是为0的(不管D改变前还是改变后),从而导致Q的输出就为1,这个时候,锁存的数据就是1,而不是我们要求的0了,即输出错误了。

保持时间不足会发生什么问题?
在这里插入图片描述
看保持时间,还是从主锁存器这边看。假如0时刻时钟clk发生0→1的上升沿跳变时候,clk的1信号首先需要经过反相器(inst10)变成0信号后传到后面的与门(inst13和inst14)。信号从时钟端口到达与门需要经过t1的延迟时间(如上图所示)即:t1时刻与门的输入就为低电平0。那么在这个t1时刻之前,与门的输入端clk始终保持高电平1;在t1时刻之前,如果输入端D发生跳变,也就是从0变成1(也就是低电平0这个信号保持得不够久,由于某些原因被冲成了高电平1),变换后的数据端高电平1经过t2延时之后,到达与门的另一个输入端。当t2<t1的时候(由于时钟需要经过反相,一般情况下t1是大于t2的),与门的输出就为1,也就是S=1,这就导致Q’=0。而R是为0的(不管D改变前还是改变后),从而导致Q的输出就为1,这个时候,锁存的数据就是1,而不是我们要求的0了,即输出错误了。

发布了12 篇原创文章 · 获赞 0 · 访问量 276

猜你喜欢

转载自blog.csdn.net/dxz44444/article/details/104554391