热度 4| |||
寄存器能够稳定的把数据锁存起来,需要满足2个时间参数,一个是setup time,另外一个是hold time。setup time数据提前时钟沿到达的最小时间,hold time是时钟沿后数据保持的时间。如图4.1.1是集成电路中最常见的组合关系,Tco为从时钟上升沿处开始到寄存器输出端Q处有数据输出之间的时间间隔,Tdelay为组合电路,以及走线延时。
图4.1.1
探讨的问题:
数据data从A点开始到达C点,满足什么条件才能保证ff2稳稳的锁存住数据?
clk_a和clk_b没有时钟skew:
建立时间:
如图4.1.2所示,data从第一个时钟上升沿也即t0时刻,传到C,需要经过ff1以及delay模块,耗时分别是Tco和Tdelay,在时刻t1到达C。第2个时钟上升沿在t2时刻才能到达。t2-t1为data先于第2个时钟上升沿到达的时间,建立时间要求data要至少先于第2个时钟上升沿Tsu时间到达,t2-t1-Tsu为建立时间余量用Tsu_r表示,根据图4.1.2黄色区域可得如下公式:
上式中建立时间余量Tsu_r一定不能小于0,因此,
<span .="mso-spacerun:'yes';font-family:华文楷体;mso-ascii-font-family:'Times New Roman'; mso-hansi-font-family:'Times New Roman';mso-bidi-font-family:'Times New Roman';font-size:12.0000pt; mso-font-kerning:1.0000pt;position:relative;top:16.0000pt; mso-text-rAIse:-16.0000pt;">
保持时间:
如图4.1.1所示,data要传到C,需要经历ff1以及delay模块,耗时分别是Tco和Tdelay.
现在关注图4.1.3所示的第2个时钟上升沿p2,p2时刻ff2锁存住C上面的数据1,根据保持时间知识,ff2寄存的数据C要保持至少Thd。p2时刻ff1锁存住的新数据0到达C所用的时间为Tco+Tdelay要比Thd大才能保证ff2输出稳定。
图4.1.3黄色区域可得如下公式:
其中Thd_r为保持时间余量,一定不能小于0,因此,
clk_a和clk_b之间有skew:
建立时间:
图4.1.4
时钟无skew:
因此,对比可知当有时钟skew时,建立时间空余量更大,因此更能满足建立时间的要求。
保持时间:
图4.1.5
对于ff1,p3时刻锁存的新的数据0,传到C端的所用时间依然是Tco+Tdelay,对于ff2,相对于ff1的p3其要过skew时间,p4才能锁存住数据1,依然要求C端数据1稳定的时间至少是Thd。根据黄色区域有如下公式:
无skew:
因此,对比可知当有时钟skew的时,保持时间空余量变小,因此不利于保持时间的满足。