博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
建立时间保持时间方程及其影响
阅读量:5924 次
发布时间:2019-06-19

本文共 1592 字,大约阅读时间需要 5 分钟。

(注:本文翻译自:)

在深入了解建立时间保持时间方程及其影响之前,先让我们简单的了解一下什么事建立时间和保持时间。

建立时间:建立时间定义为为了使数据正确的锁存,其在时钟有效沿到来前必须稳定的最小时间。任何这一时间的违例将会导致数据捕获错误并产生建立时间违例。

保持时间:保持时间定义为时钟有效沿后数据必须保持稳定的最小时间。这一时间的违例将导致数据锁存错误,并产生保持时间违例。

建立时间保持时间方程

  首先定义clock-to-Q延时(Tclock-to-Q),在一个上升沿触发的触发器中,输入信号在时钟的上升沿捕获,并在一小段延时之后(Tclock-to-Q)产生对应的输出。为了使触发器能正确的完成上述任务,其输入端的数据必须在时钟上升沿之前保持一段时间(Tsetup)及之后保持一段时间(Thold)。此外,时钟信号通过时钟树的微小差异称为时钟扭斜(Skew)。

  从图-1我们可以得到建立时间和保持时间的方程。

图-1 讨论2个触发器的情况

  在上图中,在0时刻,FF1处理D2FF2处理D1。数据D2传播到FF2需要一段时间,从FF1的时钟端开始计时,很明显时间=Tc2q+Tcomb.为了让FF2正确的锁存数据,D2必须在时钟树的第2个上升沿到FF2之前在FF2的D端保持稳定一段时间(setup);因此,为了满足建立时间,方程如下:

Tc2q + Tcomb + Tsetup ≤ Tclk + Tskew ------- (1)

  为了更好的理解建立时间和保持时间,可以看看下面的时序图:

图-2 建立时间保持时间时序图

  为了避免保持时间违例,数据在时钟上升沿之后还需要保持一段时间(hold)。满足保持时间的方程如下:

Tc2q + Tcomb ≥ Thold + Tskew ------- (2)

  从上述两个方程可以很容易的看出,时钟的正扭斜对建立时间有好处对保持时间则反之。有效输入窗如下:

图-3 有效输入窗

 

建立时间保持时间例子分析

  考虑图-4的两个D触发器,基于详细的时序信息,我们可以计算出没有时序违例情况下的电路的最大时钟频率。

  

图-4 两个D触发器的详细时序信息

  时钟插入延时对每个D触发器都是相同的,它不会约束给定的最大时钟工作频率。从上图可看出,其不会违反保持时间约束。考察建立时间有:

(Time available for data to travel from FF1 to FF2) ≥ (Time needed for data to travel from FF1 to FF2)Tclk + Tskew ≥ Tc2q + Tcomb + Ts2Tclk + 0.25ns ≥ 0.1ns + 5ns + 3nsTclk ≥ 7.85ns

  最小的时钟周期为7.85ns,最大的频率为127.4MHz.

  从上面的例子可以看出,改善最大时钟频率可以采用如下3种方式:

  1、减小组合逻辑延迟。

  2、如果可以的话,增大时钟扭斜。

  3、用更快的D触发器(更小的Tc2q和Tsetup)。

时钟到Q端延时对建立时间保持时间约束的影响

  因为触发器内部的锁存电路是两个背靠背的反相器(图-5),其IO特性如图-6。

  为了方便解释,假设0V对应逻辑0,5V对应逻辑1;从图-6可以看出,如果背靠背反向器的输入不是正确的0V,5V,它需要一定的锁存周期来产生稳定的反相器输出,这段延时称之为时钟到Q端延迟(Tclock-to-Q)。

图-5 锁存用背靠背反向器

图-6 反向器IO特性

  如果上述延时在触发器之间累加的话,可能会发生数据信号在期望捕获的时钟沿miss掉。

  (全文完)

转载于:https://www.cnblogs.com/lkiller/p/3308305.html

你可能感兴趣的文章
原生开发移动web单页面(step by step)3——App对象
查看>>
如何维护名誉?区块链取证了解一下
查看>>
开启Python3自带的http服务
查看>>
WPF获得全局窗体句柄,并响应全局键盘事件
查看>>
业务中台如何提升研发效率
查看>>
BeetlSQL 2.11.1 发布,Java Dao 工具
查看>>
Flutter 07: 图解基础【登录】页面并学习相关 widget
查看>>
智库说 | 杨滔:未来城市要靠信用和计算能力驱动
查看>>
Dos Attack Windows CVE-2017-0166
查看>>
Java各种常用时间操作方法
查看>>
Android应用开发—RecyclerView绘制蒙层
查看>>
plsqldev工具自动提交
查看>>
使用myeclipse构建maven项目报错:No goals have been specified for this build
查看>>
iOS objc_msgSend尾调用优化详解
查看>>
通过HTTP/2通道实时获取IoT设备状态和数据
查看>>
Scrapy框架--通用爬虫Broad Crawls(下,具体代码实现)
查看>>
如何使项目能够使用 CocoaPods
查看>>
scrapy的安装
查看>>
suse12安装详解
查看>>
[译] 所有你需要知道的关于完全理解 Node.js 事件循环及其度量
查看>>