保持时间与建立时间

保持时间和建立时间----------我的个人见解  
在描述保持时间和建立时间之前我们首先需要了解为什么需要保持时间和建立时间,通俗的说就是在时钟信号来临之前,传输给寄存器的信号必须保持稳定,有效,才可以打入触发器,称为建立时间;时钟沿来了之后,信号必须维持稳定一段时间,使得信号能够正确被打入触发器;    

下面我们就经典的D触发器来解释这一现象:  


首先描述一下触发器的原理,便于我们理解之后的说明;  当CLK=0时,图5.7.4中G3,G4,输出的都为1,则G5,G6,输出分别为D,D’, G1,G2则维持原来的值保持不变,所以我们可以看出寄存器在时钟上升沿到来之前所锁存的值为上一次的值;
         当CLK=1,D=0时,则G6输出为1,G5输出为0,G3输出为1,G4输出为0,最后Q=0;       当CLK=1,D=1时,则G6输出为0,G5输出为1,G3输出为0,G4输出为1,最后Q=1;  我们可以看到为了得到G3和G4的值,则在CLK =1,之前,必须先得出G5,G6的值,也就是说在时钟上升沿来临之前,D值必须经过G6,G5,也就是所谓的建立时间;   


那么保持时间就是:在时钟来临之后,D值不能改变,必须维持原来的值,直到G4输出值返回给G6的输入端之后,D值才允许改变,此时即使D改变也不会影响G3,G4的输出;  以上描述是基于触发器层面上的,下面我们在通过寄存器层次来描述建立时间和保持时间;    

首先先看一张同步设计的基本模型图


我们假设T1,T2寄存器是一条路径上的相连的两个寄存器,数据输入到T1经过1个clk之后,传输到T2;  Tco为经过寄存器T1的传输延时; Tdelay为经过组合逻辑的传输延时; Tsetup为T2的建立时间;  Tpd为时钟到T1和T2的偏差; 在一个时钟周期T之内,数据从寄存器T1传出,需要经过延时Tco,然后经过组合逻辑,需要经过延时Tdelay,最后到达寄存器T2,然后在寄存器T2建立起来,需要经过延时Tsetup(这个延时我们在之前已经讲解过为什么了),那么可以得出建立时间的要求:    

 Tsetup <= Tpd+ T – Tco(max)-Tdelay(max); 

这里我们需要注意的是max,因为经过寄存器和组合逻辑有一个最大延迟和最小的延迟,对于建立时间来说,考虑到最恶劣的情况就是必须考虑到这些最大的延迟;之所以需要加上Tpd是因为时钟也有可能存在着传输的偏移;  

保持时间Thold,我们在上面已经描述过了为什么需要保持时间,现在我们知道T2的输入在时钟上升沿来之后必须保持一段时间的稳定,也就是说输入值不能发生改变,此时T1寄存器的值经过Tco,经过组合逻辑Tdelay,才到达T2,那么可以得出保持时间的要求:    

Thold <= Tco(min) + Tdelay(min);  

这里为什么是min,因为我们需要考虑到下一个信号最快传输到T2的情况,那么最小的延时也就是代表着最快的传输;    



参考文献: 

 1. 数字电子技术基础.(阎石,第五版)

 2. ~~~建立时间与保持时间(两个寄存器的详细分析) - yuedx的个人空间 - 中国电子顶级开发网(EETOP)-电子设计论坛、博客、超人气的电子工程师资料分享平台 - Powered by X-Space.htm 

3. 建立时间和保持时间关系详解 - Ethan的日志 - 网易博客.htm 

4. 建立时间、保持时间和时序约束条件 - 第1页 - 东大小小的数字世界 - EDN China电子设计技术.htm





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章