tag 标签: 建立时间,保持时间

相关博文
  • 热度 18
    2016-4-22 22:29
    1005 次阅读|
    0 个评论
    3 、建立时间时序路径逐个解析 1 ) Path2: 从 DFF 的 clk pin 到另一个 DFF/D 端; 建立时间可以看成是最大的 delay 。 从上图的波形可以看出,要想让 uff1 稳定的采样到 uff0 的数据输出,也就是 uff1/d ,数据必须在红色箭头之前稳定,则根据上图的时序关系不难得出如下公式。 Tlaunch + Tlogic + Tsetup = Tcapture + Tcycle, 其中 Tlogic = Tck2q + Tdp,Tlanch-Tcapture = Tuncertainty ;上式变为 Tuncertainty + Tlogic + Tsetup = Tcycle 从上式可以看出,如果 Tlogic + Tsetup 一定的话, Tuncertainty 为负,实际上是有利于时序的。另外 delay 不能太大,否则不能满足 setup 的关系。 再变换公式有: Tlogic = Tcycle – Tsetup – Tuncertainty ; 如下面的时序分析路径: 2 ) Path1: 从 input port 端到 DFF/D 端,一般需要对 clk 和 rst 外的所有 input port 设置 input_delay, 通常情况下设置比较紧的时序时为 2T/3 (不知道 input_delay 是多少的时候给出的预估) , 也就是给 input port 端到 DFF/D 端留 T/3 的时间; 虚拟 clk 实际 clk 3 ) Path3 :从 DFF 的 clk pin 到 output port, 一般而言,需要对所有 output port 设置 output_delay, 通常情况下设置比较紧的时序时为 2T/3 (不知道 output_delay 是多少的时候给出的预估) , 也就是给 DFF 的 clk pin 到 output port 端留 T/3 的时间; 4 ) Path4: 纯组合逻辑,从 input port 到 output port ,一般而言其延时设置为 5T/3,( 减去 2T/3 的 input delay 和 2T/3 的 output delay ,也就是给组合逻辑留了 T/3 的时间 ) 。
  • 热度 16
    2016-4-22 22:24
    949 次阅读|
    0 个评论
    2、 为什么会有 setup (建立时间)和 hold (保持时间)(注:这部分参考了网上的资料) 建立时间粗略示意 保持时间简单示意 图 1 经典的上升沿 D 触发器内部结构 关于为什么会有建立时间和保持时间,我曾试图从触发器或锁存器内部的结构去分析和证实,但是看了许多资料,由于触发器的内部结构有很多,所以分析方法很多,说法也很多。下面针对上图比较经典的结构来分析一下建立时间和保持时间。 如上图 1 所示,这是一个上升沿触发的 D 触发器,需要注意的是,图中的 6 个与非门都是有延迟的,也就是在某一时刻输入组合逻辑的数据,在一段时间之后才能影响其输出,这是产生建立时间和保持时间要求的最根本原因。 首先,我们在假设所有的与非门的延迟为 0 ,叙述一下这个触发器的整体工作流程。 当 CLK=0 时,与非门 G3 和 G4 的输出均为 1 ,输出的 1 反馈到 G1 和 G2 作为输入,导致 G1 和 G2 的输出分别为 D 和 /D ,输出的 D 和 /D 又反馈到 G3 和 G4 ;而 G5 和 G6 在此期间一直锁存着之前的数据,不受输入影响。   图 2 CLK=0 时触发器内部信号详情 当 CLK=1 时,与非门 G3 和 G4 的输出变为 /D 和 D ,输出到 G5 和 G6 作为输入,根据锁存器的原理, G5 和 G6 最终会稳定的输出 Q 和 /Q 。     图 3 CLK=1 时触发器内部信号详情   然后我们把门电路的时延加上。设 G2 和 G1  的延迟为 T1 ,当 CLK=0 时,如果 D 在时钟跳变前的 T ( T )时间才从 d1 更新为 d2 ,那么 G1 和 G2 在时钟跳变时刻的输出值肯定是 d1 和 /d1 ,而不是 d2 和 /d2 ,进而影响到 G3 和 G4 的输出。如果要使得 G1 和 G2 的输出为 d2 和 /d2 ,就必须要求 D 起码在时钟跳变之前的 T1 时间内维持 d2 稳定不变。这个 T1 就是建立时间 Tsu 。 当 CLK=1 时, G3 和 G4 的延迟为 T2 ,当 CLK=1 时,如果 D 在时钟跳变之后的 T ( T )时间从 d2 更新为 d3 ,由于 G3 和 G4 的输出在 T 的时间内还保持为 1 ,所以 D 的更新会影响 G2 和 G1 的输出,进而影响 G3 和 G4 的输出,进而影响 G5 和 G6 的输出,造成输出 Q 和 /Q 不稳。