信号之建立时间和保持时间

这篇文章讨论的对象是数字设计或FPGA设计中一对重要概念——信号的建立时间和保持时间。

最初考虑写这篇文章仅是因为在建模PCF851(一款AD-DA芯片)时,由于笔者没有考虑到这方面的时序要求,虽然整体时序框架正确,但细节部分(具体的信号时序,如上升沿到来前信号的到来时间)没有注意,最终导致花了很长时间才找到问题所在。而后,逐渐了解到时序约束、STA等概念,其实在面试相关工作岗位时,有关建立时间(下文Tsu)和保持时间(下文Thd)的相关计算问题会是一道非常经典的面试题。

好,回归正题,本文主要从以下几方面进行阐述。

一、何为Tsu和Thd?

二、在典型同步电路分析中,Tsu和Thd应该满足什么要求?

信号之建立时间和保持时间_第1张图片

图1 典型同步电路示意图

NOTE:本文相关概念英文缩写如下表

表1 相关概念中英文对照

概念

英文缩写

建立时间

Tsu

保持时间

Thd

FF输出延迟时间(又Tcq,即从时钟边沿开始到数据从Q端稳定输出的时间)

Tco

组合逻辑消耗时间(又称延迟时间)

Tdelay(Tcomb)

时钟延迟时间

Tpd

时钟周期

Tclk

一、何为TsuThd

如下图所示,1bit数据宽度为一个时钟周期,则:

建立时间(Tsu):时钟上升沿到来之输入端数据已经到来并稳定持续的时间间隔。

保持时间(Thd):时钟上升沿到来之输入端数据继续保持稳定并持续的时间间隔。

Tsu、Thd、Tclk三者的数学关系:Tsu+Thd=Tclk.

信号之建立时间和保持时间_第2张图片

NOTE1:Tsu和Thd都是针对FF的输入端而言的,分别对应时钟沿的前和后,Tsu表示“预先准备”,Thd表示“事后不变”;对应地,Tco(后文出现)是针对FF的输出端而言的,特此声明。

NOTE2:由上图可知,触发器FF在上升沿稳定采集(采样)输入端的数据,这样一定能够读取到稳定的D1,而后FF会输出数据;故,数据稳定传输必须满足Tsu和Thd要求(芯片手册给出),但,Tsu和Thd能不能随意增大或减小呢?答:不能,这个问题的具体分析见第二节。

二、在典型同步电路分析中,TsuThd应该满足什么要求?

如上图1,为一个典型的采用同一个时钟的同步电路模型。图注中相关名称的意义见第一节表格。具体的:Tsu_max=T1max、Tsu_min=T1min;Tdelay_max=T2max、Tdelay_min=T2max;设FF2的建立时间T3和保持时间T4应该满足什么要求?(或者知道T3、T4,则该电路容许的最大时钟周期是多少?)

 

第一步,画出图1电路对应的时序图如下:

信号之建立时间和保持时间_第3张图片

第二步,Tsu时序约束分析:

如上图,T3不能过大,若满足Tclk-Tdelay-Tco+Tpd≥T3,意思就是除去组合逻辑电路延时、Tco和Tpd之和,剩下的时间若大于T3(留下的时间裕量比建立时间要大),那么就能满足建立时间。取Tdelay_max,则T3Tclk+Tpd-T2max-Tco

第三步,Thd时序约束分析:

对T4(保持时间),如上图,要满足T4+Tpd≤Tco+Tdelay,就是说FF1的输出经过组合逻辑电路达到FF2的输入端的时间如果小于FF2的保持时间和Tpd之和(即要等到D2保持完毕,Q1的数据才能送到D2),就会出现保持时间约束违反。取Tdelay_min,则T4Tco+T2min-Tpd

如下,标注出T3、T4分析所在的时序范围。(上述标红式子为分析结果)

信号之建立时间和保持时间_第4张图片

补充部分:

这里采用另一种分析思路,也可以得到同样的结论,不过角度有所不同。引入时间线Timing_path、数据通路data_path和时钟通路clk_path三个概念。

PART1:建立时间

这种情况两个通路时间的关系如下要满足:

T3+Tdata_path≤Tclk_path+Tclk

就是说,对FF2,数据要比时钟“走得快”。

 

PART2:保持时间

要满足:Tdata_path-T4≥Tclk_path。

意思是说,防止FF1的输出太快到达FF2输入端而覆盖掉原来FF2该保持的数据。

 

你可能感兴趣的:(数字电路设计)