《建立时间和保持时间(setup time 和 hold time).docx》由会员分享,可在线阅读,更多相关《建立时间和保持时间(setup time 和 hold time).docx(3页珍藏版)》请在第一文库网上搜索。
1、建立时间和保持时间(setuptime和ho1dtime)建立时间和保持时间贯穿了整个时序分析过程。只要涉及到同步时序电路,那么必然有上升沿、下降沿采样,那么无法避免SetUP-time和ho1d-time这两个概念。1 .什么是setup-time和ho1d-time不论是在输入,输出或是寄存器-寄存器之间,只要设计到时钟上升沿/下降沿的采样,就会提到setuptime和ho1dtime0这两个指标说明器件本身不是理想的(时延等),正是这个不理想的特性,限制了工作时钟等。Setuptimeistheminimumamountoftimethedatasigna1shou1dbehe1dste
2、adybeforethec1ockeventsothatthedataisre1iab1ysamp1edbythec1ock.Thisapp1iestosynchronousinputsigna1stothef1ip-f1op.Ho1dtimeistheminimumamountoftimethedatasigna1shou1dbehe1dsteadyafterthec1ockeventsothatthedataarere1iab1ysamp1ed.Thisapp1iestosynchronousinputsigna1stothef1ip-f1op.上文是维基百科中的解释,这里很清楚的解释了这
3、两个概念,但是不够具体化。也就是说,这里并没有提及这个值到底等于多少。Xi1inx文档UG612Page65提到了这两个等式SetupTime=DataPathDe1ay+SynchronousE1ementSetupTime-C1ockPathSkewHo1dTime=C1ockPathSkew+SynchronousE1ementHo1dTime-DataPathDe1ay这两个等式告诉我们的是需求值,SetupTime是时钟上升沿之前的数据所需要的(最小)有效时间,Ho1dTime是时钟上升沿之后的数据所需要的(最小)有效时间。SynchronousE1ementSetupTime和Sy
4、nchronousE1ementHo1dTime可以看作是触发器的固有属性。那么,如何理解这两个式子呢?以SetUPtime为例,ho1dtime具有同样的性质。首先回到维基百科的解释,其中涉及到CIatasigna1和c1ockevent,这两个到底指的是什么?对于一个触发器来说,对与直接输入到其内部的c1。CkJn和data_in来说,这个建立时间是SynchronousE1ementSetupTime。这表明了该曲发器的属性。回到UG612定义的式子,这应该用下图来解释。datasigna1:datac1ockevent:e1kevent那么对于这一种情况,data和CIk延时候到达触发
5、器内部,所以SetUPTime发生了变化。有SetupTime=SynchronousE1ementSetupTime+DataPathDe1ay-C1ockPathSkewTsetSynchronousE1ementS2 .如何理解S1aCk再谈一个Xi1inX公司的术语:S1ackoS1aCk的中文意思是“松弛的”,可以简单的理解为设计余量。即如果SIaCk是正数,那么设计满足要求,否则不满足要求。对于setuptime的s1ack,有S1ack=Requirement-(DataPath-C1ockPathSkew+C1ockUncertainty)S1ack=Requirement-(
6、C1ockPathSkew+C1ockUncertainty-DataPath)这里DataPath=DataPathDe1ay+SynchronousE1ementSetupTime0而C1ockUnCertainty正如其字面意思,时钟不可能完美,时钟的不确定性会使得S1aCk变小,这是符合我们感知的。这里最值得注意的是ReqUirement,UG612中的各种require把我彻底绕晕了好几次。这里的ReqUirement来源于约束,即这个设计中能提供的数据在时钟沿之前有效时间的值是多少。而“DataPath-C1ockPathSkew”实际上就是上节中提到的Setuptime,这是一个
7、最小值,如果大于这个最小值,那么SIaCk大于0,对应的就是满足要求了。这里没有考虑CIoCkUnCertainty,CIOCkUnCertainty如下图所示,带来的影响总是不好的,所以最终的S1aCk还要剪掉这个值。下图是一个时序图示例,CIk和data对应的是节1图中的信号,c1k_in和datain是到达触发器内部的信号。CIk和data之间的相位关系表明requirement为一个时钟周期。SetUPnIargin是在这一个例子中的S1aCk,由于时钟的不确定性,这个SetUPmargin还需要减去一个CIOCkUncertaintyo123CIkJ|f|TC1kJn|-S1ack:-0.865ns(requirement-(c1ockarriva1+c1ockpath+datapath+uncertainty)Source:OutD7(FF)Destination:0utD(PAD)SourceC1ock:c1ock3_std_bufgrisingat0.OOOnsRequirement:3.000nsDataPathDe1ay:3.405ns(1eve1sof1ogic=1)C1ockPathDe1ay:0.280ns(1eve1sof1ogic=3)C1ockUncertainty:0.180ns