launch edge 和 latch edge 延迟

本文转自 http://www.cnblogs.com/inet2012/archive/2012/03/07/2384149.html

launch edge和latch edge分别是指一条路径的起点和终点,只是一个参考时间,本身没有什么意义,latch_edge-launch_edge才有意义。

1. 背景

静态时序分析的前提就是设计者先提出要求,然后时序分析工具才会根据特定的时序模型进行分析,给出正确是时序报告。

  进行静态时序分析,主要目的就是为了提高系统工作主频以及增加系统的稳定性。对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力。通过附加约束可以控制逻辑的综合、映射、布局和布线,以减小逻辑和布线延时,从而提高工作频率。

2. 理论分析
2.1 固定参数launch edge、latch edge、Tsu、Th、Tco概念
2.1.1 launch edge

  时序分析起点(launch edge):第一级寄存器数据变化的时钟边沿,也是静态时序分析的起点。

2.1.2 latch edge

  时序分析终点(latch edge):数据锁存的时钟边沿,也是静态时序分析的终点。

2.1.3 Clock Setup Time (Tsu)

  建立时间(Tsu):是指在时钟沿到来之前数据从不稳定到稳定所需的时间,如果建立的时间不满足要求那么数据将不能在这个时钟上升沿被稳定的打入触发器。如图3.2所示:

2.1.4 Clock Hold Time (Th)

  保持时间(Th):是指数据稳定后保持的时间,如果保持时间不满足要求那么数据同样也不能被稳定的打入触发器。保持时间示意图如图3.3所示:

2.1.5 Clock-to-Output Delay(tco)

  数据输出延时(Tco):这个时间指的是当时钟有效沿变化后,数据从输入端到输出端的最小时间间隔。

2.2 Clock skew

  时钟偏斜(clock skew):是指一个时钟源到达两个不同寄存器时钟端的时间偏移,如图3.4所示:

时钟偏斜计算公式如下:

Tskew = Tclk2 - Tclk1           (公式2-1)

2.2 Data Arrival Time

  数据到达时间(Data Arrival Time):输入数据在有效时钟沿后到达所需要的时间。主要分为三部分:时钟到达寄存器时间(Tclk1),寄存器输出延时(Tco)和数据传输延时(Tdata),如图3.5所示

数据到达时间计算公式如下:

   Data Arrival Time = Launch edge + Tclk1 +Tco + Tdata        (公式2-2)

2.3 Clock Arrival Time

  时钟到达时间(Clock Arrival Time):时钟从latch边沿到达锁存寄存器时钟输入端所消耗的时间为时钟到达时间,如图3.6所示

图3.6 时钟到达时间

时钟到达时间计算公式如下:

 Clock Arrival Time = Lacth edge + Tclk2              (公式2-3)

2.4 Data Required Time(setup/hold)

  数据需求时间(Data Required Time):在时钟锁存的建立时间和保持时间之间数据必须稳定,从源时钟起点达到这种稳定状态需要的时间即为数据需求时间。如图3.7所示:

图3.7 数据需求时间

(建立)数据需求时间计算公式如下:

         Data Required Time = Clock Arrival Time - Tsu            (公式2-4)

(保持)数据需求时间计算公式如下:

Data Required Time = Clock Arrival Time + Th     (公式2-5) 

2.5 Setup slack

  建立时间余量(setup slack):当数据需求时间大于数据到达时间时,就说时间有余量,Slack是表示设计是否满足时序的一个称谓。

图3.8 建立时间余量

  如图3.8所示,建立时间余量的计算公式如下:

          Setup slack = Data Required Time - Data Arrival Time        (公式2-6)

  由公式可知,正的slack表示数据需求时间大于数据到达时间,满足时序(时序的余量),负的slack表示数据需求时间小于数据到达时间,不满足时序(时序的欠缺量)。

3.1.7 时钟最小周期

  时钟最小周期:系统时钟能运行的最高频率。

  1.  当数据需求时间大于数据到达时间时,时钟具有余量;

  2. 当数据需求时间小于数据到达时间时,不满足时序要求,寄存器经历亚稳态或者不能正确获得数据;

  3. 当数据需求时间等于数据到达时间时,这是最小时钟运行频率,刚好满足时序。

  从以上三点可以得出最小时钟周期为数据到达时间等于数据需求时间,的运算公式如下:

Data Required Time = Data Arrival Time 


另附:图解Setup 与 Hold Slack

从上面图中可以清晰的看出Setup与Hold Slack的定义与计算方法:

Setup slack=latch edge+Tclk2-Tsu-(launch edge+Tclk1+Tco+Tdata)

=(latch edge-lanuch edge)+(Tclk2-Tclk1)-(Tsu+Tco+Tdata)

对于工具默认的单周期来说,latch edge-lanuch edge=T,如果不考虑时钟的skew,Tclk2-Tclk1=0,上式可以表达成:

Setup slack=T-(Tsu+Tco+Tdata),这就是为什么说源寄存器与目的寄存器之间延迟不能太长的原因,延迟越长,slack越小。

Hold slack=data arrival time – data required time
=(launch edge + Tclk1 + Tco + Tdata) – (latch edge + Tclk2 + Th)
=(launch edge – latch edge) – (Tclk2 – Tclk1) + (Tco + Tdata + Th)

注意,上式中的launch edge为next launch edge,即为latch edge,所以launch edge – latch edge=0,如果不考虑时钟的skew,Tclk2-Tclk1=0,上式可以表达成:

Hold slack=Tco + Tdata – Th,这就是为什么说源寄存器与目的寄存器之间延迟不能太短的原因,时间太短,slack越小。

setup slack 计算

hold slack 计算

时间: 2024-10-13 16:12:34

launch edge 和 latch edge 延迟的相关文章

ALTERA系列FPGA时序分析(一)

一. 约束的基本介绍 1.约束的分类 <1>.时序约束:主要用于规范设计的时序行为,表达设计者期望满足的时序条指导综合和布局布线阶段的优化算法等. 区域与位置约束:主要用于指定芯片I/O引脚位置以及指导实现工具在芯特定的物理区域进行布局布线. 其他约束:泛指目标芯片型号.接口位置,电气特性等约束属性. 2.时序约束的主要作用 <1>.提高设计的工作频率 通过附加时序约束可以控制逻辑的综合.映射.布局和布线,以减小逻辑和布线延时,从而提高工作频率. <2>.获得正确的时序

TimeQuest 静态时序分析 基本概论

静态时序分析 基本概念 [转载] 1.   背景 静态时序分析的前提就是设计者先提出要求,然后时序分析工具才会根据特定的时序模型进行分析,给出正确是时序报告. 进行静态时序分析,主要目的就是为了提高系统工作主频以及增加系统的稳定性.对很多数字电路设计来说,提高工作频率非常重要,因为高工作频率意味着高处理能力.通过附加约束可以控制逻辑的综合.映射.布局和布线,以减小逻辑和布线延时,从而提高工作频率. 2.   理论分析 2.1   固定参数launch edge.latch edge.Tsu.Th

FPGA时序分析原理图

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点.对于时序如何用FPGA来分析与设计,本文将详细介绍. 基本的电子系统如图 1所示,一般自己的设计都需要时序分析,如图 1所示的Design,上部分为时序组合逻辑,下部分只有组合逻辑.而对其进行时序分析时,一般都以时钟为参考的,因此一般主要分析上半部分.在进行时序分析之前,需要了

学习 altera官网 之 timequest

1.如果启动沿(launch)和锁存沿(latch)是同一时钟域则,latch比launch晚一个时钟周期. 2.数据到达时间 3.时钟到达时间.如果启动沿(launch edge)和锁存沿(latch edge)是同一时钟域则,latch edge比launch edge晚一个时钟周期.如果在不同的时钟域,launch edge和latch edge的时间差就根据具体的时间. 4.数据到达时间,建立时间 5.数据到达时间,保持时间 6.建立时间余量 7.保持时间余量 8.总结的时间余量公式 第

FPGA基础知识7(从芯片手册获取参数FPGA时序约束--“CMOS Sensor接口时序约束”)

需求说明:FPGA基本知识 内容       :如何确定时序约束数值 来自       :时间的诗 来源:http://www.61ic.com/Technology/embed/201304/48186.html FPGA工程的功能框图如图所示.上电初始,FPGA需要通过IIC接口协议对摄像头模块进行寄存器初始化配置.这个初始化的基本参数,如初始化地址和数据存储在一个预先配置好的FPGA内嵌ROM中.在初始化配置完成后,摄像头就能够持续输出RGB标准的视频数据流,FPGA通过对其相应的时钟.行

判断IE和Edge

//判断是否是IE浏览器,包括Edge浏览器function IEVersion() { var userAgent = navigator.userAgent; if (!!window.ActiveXObject || "ActiveXObject" in window) return "IE"; else if (userAgent.indexOf("Edge") > -1) { return "Edge" } e

&lt; meta http-equiv = &quot;X-UA-Compatible&quot; content = &quot;IE=edge,chrome=1&quot; /&gt;的意义

X-UA-Compatible是神马? X-UA-Compatible是IE8的一个专有<meta>属性,它告诉IE8采用何种IE版本去渲染网页,在html的<head>标签中使用.可以在微软官方文档获取更多介绍. 为什么要用X-UA-Compatible?  在IE8刚推出的时候,很多网页由于重构的问题,无法适应较高级的浏览器,所以使用X-UA-Compatible标签强制IE8采用低版本方式渲染. 使用下面这段代码后,开发者无需考虑网页是否兼容IE8浏览器,只要确保网页在IE6

edge box

先介绍一下matlab与c混合编程 主要步骤: 使用c语言编写函数 利用mexFunction()函数创建C与matlab接口 从Matlab中编译函数 # include <mex.h>: 为了实现matlab与c混合编程的接口 //例如实现一个 add函数在接口 #include "mex.h" double add(double x, double y) { return x+y; } 这个代码是算法真正实现的地方. 然后创建接口.mex函数库中的mexFunctio

Lesson 6 &ndash;exchange 2010 edge server

1-概述 边缘服务器是内部服务器和公网 smtp服务器间的一道安全屏障 主要作用:接受和发送公网邮件,防病毒,防垃圾邮件 部署条件: 1 工作组环境 2添加域后缀 3内部DNS添加A记录指向边缘服务器 (同时edge server的DNS指向内部DNS) 4 net 3.5 5 ADLDS (活动目录轻型目录服务) 6RSAT-ADDS (活动目录域管理工具) 边缘订阅: 主要让HUB server把域中的信息同步给edge上的adlds数据库 能够自动配置HUB,EDGE,和internet的