简述建立时间(setup time) 和 保持时间(hold time)

本文是根据参考了网上多篇帖子和书籍,对于有关建立时间和保持时间知识点讲解的基础上进行归纳总结,如有错误敬请批评指正!

一、概念

        建立时间和保持时间都是基于触发器而言,所以在了解建立时间和保持时间之前,需要对触发器进行分析,本文从D触发器(D-FF)结构原理上进行简述建立时间和保持时间,因为FPGA内部常用D触发器作为时序逻辑电路的记忆元件。

        D触发器(D-FF):一种在时钟的上升沿(或下降沿)将输入信号的变化传送至输出的边沿触发器,如图1-1所示。x为不定态,即任何值。

DCLKQQN
0时钟上升沿01
1时钟上升沿10
×0last Qlast QN
×1last Qlast QN

图1-1 D触发器

建立时间(Tsu:setup time):是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿被稳定的打入触发器,Tsu就是指这个最小的稳定时间。

保持时间(Td:hold time):是指在触发器的时钟信号上升沿到来以后,数据稳定不变的时间,如果保持时间不够,数据同样不能被稳定的打入触发器,Th就是指这个最小的保持时间。

二、D-FF的原理

     CMOS工艺下的D-FF结构如图1-2所示,先由两个传输门和两个反相器组成一个循环电路( 锁存器),再由前后两级锁存器按主从结构连接而成。这里的传输门起开关的作用,随着CLK的状态变化切换开关。只看输出的话,前级锁存器的值会将时钟输入的变化井然有序地传入后级锁存器。为了防止时钟信号变化时输入信号发生冒险,从而使稳定的输入信号进入前级锁存器,前级锁存器的时钟相位应该与产生输入信号的电路时钟反向。图1-3为D-FF的原理图。

图1-2  D-FF的电路结构图

图1-3  D-FF的原理

        当CLK=0(主锁存器工作)时,位于前级的主锁存器将输人D的值保存进来,后级的从锁存器则维持上一时钟周期的数据。由于此时前级和后级反相器环路之间的传输门是关闭状态,所以前级的信号不会传到后级。当CLK=1 (从锁存器工作)时,前级反相器环路中保存的数报会传输到后级,同时输人D的信号会被隔离在外。此时如果前级反相器环路中的信号没有循环一圈以上,就会出现如图1-4所示的在0和1之间摇摆的中间电位,这就是所谓的亚稳态( metastable ) 。由于亚稳态时间比延迟时间长,在该阶段读取数据可能会引人错误,所以我们引入建立时间( setup time)来约束在时钟上升沿到来前,输入D保持稳定的时间。

        当CLK=1时,如果输人D在传输门关闭前就发生变化,那么本该在下一周期读取的数据就会提前进入锁存器,从而引起反相器环路振荡或产生亚稳态。因此在CLK=1之后也需要输入D维持一定的时间,我们称之为保持时间( hold time )约束。

        为了正确地从输人读取数据,并正确地将数据输出,FPGA 内所有的FF都要遵守建立时间和保持时间等时序上的约束。

图1-4   建立时间和保持时间

 参考资料

     [1] FPGA原理和结构-天野英晴主编-赵谦译

  • 32
    点赞
  • 162
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值