【转载】about slack
About Slack
slack is the difference b/w the REQUIRED TIME and the ARRIVAL TIME.
1.WHAT IS SLACK WITH RESPECT TO SETUP?
Ans.
a)Take the maximum delay values along the data path and min delay values along the clock path.
b)ARRIVAL TIME is always calculated along the data path.
c) ARRIVAL TIME =Propogation delay of the flip flop+propogation delay of the combinational logic+latency.
d)REQUIRED TIME is always calculated along the clock path.
e)REQUIRED TIME=Clock period + skew(differnce in arrival of clock b/w two flip flop)+latency-setup time of the flip flop.
SLACK(setup) =REQUIRED TIME - ARRIVAL TIME.
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Slack is difference between desired arrival time and actual arrival time for a value on a signal
slack can be zero , negative , positive
if zero then the design is said to be working on critical frequency
if the slack is postive, then design can be impoved
if the slack is negative then design fails to achieve the timings and volations will be there
poitive slack is what is required
Introduction
slack英文本身的意思是鬆弛,若setup time/hold time slack為正值,表示目前滿足setup time/hold time需求,並且還有多餘的時間,若slack為負值,表示目前已經不滿足setup time/hold time的需求,並且不足多少時間。
要詳細知道slack怎麼算出來的之前,須先了解一些專有名詞。
Launch Edge & Latch Edge
Launch Edge:產生data的register 1所使用的clock rising edge。
Latch Edge:接收data的register 2所使用的clock rising edge,會delay Lauch Edge 1個clk。
Setup Time & Hold Time
Setup Time:在clk rising edge之前,data必須穩定的最短時間,若不滿足setup time,data無法敲進register。
Hold Time:在clk rising edge之後,data必須穩定的最短時間,若不滿足hold time,data無法敲進register。
Setup Time與Hold Time必須同時滿足,資料才可順利敲進register。
Data Arrival Time
Data Arrival Time:data實際到達register 2的input D時的時間。
所以從Lauch Edge開始,經過Tclk1 (register 1的clock skew),再加上Tco(register 1的clock to output delay),再加上Tdata(組合邏輯本身的delay),即為Data Arrival Time。
Clock Arrival Time
Clock Arrival Time:clock實際到register 2 input的時間。
所以從Latch Edge開始,經過Tclk2(register 2的clock skew),即為Clock Arrival Time。
Data Required Time (Setup)
Data Required Time (Setup):為了讓資料能敲進register,最遲須在何時能準備好資料。
所以從Clock Arrival Time開始(Latch Edge + Tclk2) 減掉 Tsu ,在扣掉一下額外的不確定值,即為Data Required Time (Setup)。
Data Required Time (Hold)
Data Required Time (Hold):為了讓資料能敲進register,資料至少需維持到何時。
所以從Clock Arrival Time開始(Latch Edge + Tclk2)加上Th,再加上一些額外的不確定值,即為Data Required Time (Hold)。
Setup Slack
講了這麼久,總算要進入主題Slack啦,先講Setup Slack,定義很簡單,只要將Data Required Time (Setup)減掉Data Arrival Time即可,也就是符合Setup Time的margin。
上面的Timing圖看起來很複雜,事實上以Lauch Edge為首導出來的只是Data Arrival Time,之前已經講過,而以Latch Edge為首導出來的是Data Required Time,之前也講過,現在只是將所有的timing都畫在一起而已。
若Setup Slack為正,表示Data Required Time在Data Arrival Time之後,所以一定滿足Setup Time,反之若Setup Slack為負,則表示Data Arrival Time在Data Required Time之後,所以一定無法滿足Setup Time。
Hold Slack
接下來講Hold Slack,定義也很簡單,只要將Data Arrival Time減掉Data Required Time (Hold)即可,也就是符合Hold Time的margin。
上面的timing圖比較特殊些,主要是Data Arrival Time部分,因為要找Hold Slack,所以從Next Launch Edge開始,一樣加上Tclk1 + Tco + Tdata,而從Latch Edge開始加上Tclk2時為Data Required Time (Hold),這與之前講的一樣。
若Hold Slack為正,表示Data Arrival Time在Data Required Time之後,所以一定滿足Hold Time,反之若Hold Slack為負,則表示Data Required Time在Data Arrival Time之後,所以一定無法滿足Hold Time。
Reference
Altera Quartus II Software Design Series:Timing Analysis
【转载】about slack的更多相关文章
- 使用Xamarin实现跨平台移动应用开发(转载)
刚在朋友圈看到张善友,转发的一条分享“使用Xamarin实现跨平台移动应用开发”,写的确实很详细得体,从收费到开源,这段时间xamarin受到不少质疑,如此文http://blog.csdn.net/ ...
- iOS动画进阶 - 教你写 Slack 的 Loading 动画
(转载自:http://blog.csdn.net/wang631106979/article/details/52473985) 如果移动端访问不佳,可以访问我的个人博客 前几天看了一篇关于动画的博 ...
- FPGA静态时序分析——IO口时序(Input Delay /output Delay)(转载)
转载地址:http://www.cnblogs.com/linjie-swust/archive/2012/03/01/FPGA.html 1.1 概述 在高速系统中FPGA时序约束不止包括内部时钟 ...
- Slack 开发入门之 Incoming Webhooks:往 Slack 的 Channel 中发消息
一个工程师团队使用 Slack 进行团队协作比 QQ / 微信流的效率高多啦.除了基本的 IM 之外,它的扩展性也是非常重要的一点. 本文介绍 Slack 的开发入门:Incoming Webhook ...
- 海量的超赞 Linux 软件 (转载)
海量的超赞 Linux 软件 作者: VoLuong 译者: LCTT Mo | 2016-08-24 16:01 评论: 27 收藏: 38 这个仓库收集了对任何用户/开发者都超赞的 Linux ...
- Crystal Clear Applied: The Seven Properties of Running an Agile Project (转载)
作者Alistair Cockburn, Crystal Clear的7个成功要素,写得挺好. 敏捷方法的关注点,大家可以参考,太激动所以转载了. 原文:http://www.informit.com ...
- RTP与RTCP协议介绍(转载)
RTSP发起/终结流媒体.RTP传输流媒体数据 .RTCP对RTP进行控制,同步.RTP中没有连接的概念,本身并不能为按序传输数据包提供可靠的保证,也不提供流量控制和拥塞控制,这些都由RTCP来负责完 ...
- 《Walking the callstack(转载)》
本文转载自:https://www.codeproject.com/articles/11132/walking-the-callstack Download demo project with so ...
- [转载]MVVM模式原理分析及实践
没有找到很好的MVVM模式介绍文章,简单找了一篇,分享一下.MVVM实现了UI\UE设计师(Expression Blend 4设计界面)和软件工程师的合理分工,在SilverLight.WPF.Wi ...
随机推荐
- 重温CSS:Border属性
边界是众所周知的,有什么新的东西吗?好吧,我敢打赌,在这篇文章中,有很多你不看永远不知道的东西! 不仅可以用CSS3来创建圆角,使用原有CSS一样可以显示自定义图形.这是正确的(有待考究):在过去,没 ...
- java的WebService实践(cxf)
Java发布WebService,结合Spring,通过cxf的方式 难点:1.引用什么jar包: 1.创建接口 源码如下: package com.nankang; import javax.jws ...
- word文档中的字号和磅的对应关系
字号 磅 初号 42 小初 36 一号 26 小一 24 二号 22 小二 18 三号 16 小三 15 四号 14 小四 12 五号 10.5 小五 9 六号 7.5 小六 6.5 七号 5.5
- Solaris的vi
进入输入模式i: 在光标之前插入a: 在光标之后插入o: 在下面新建一行输入I: 光标移动到本行首插入A: 光标移动到本行末尾插入O: 在上面新建一行输入 移动光标M:移到屏幕中间一行的行首L:移到屏 ...
- 第四章_PHP基本语法(2)
1.常量的声明 在PHP中,定义常量使用define()函数来实现 2.魔术常量 名称 作用 __LINE__ 返回文件中的当前行号 __FILE__ 返回该文件的完整路径和文件名 __DIR__ 返 ...
- 在WP8项目中使用ARMASM
由于之前项目中某些密集运算优化的需要,涉及到ARMASM相关的内容, 所以有幸可以在此分享一下自己的经验. 先铺垫一些知识: 1. ARM处理器有两种指令ARM.THUMB, 在WP8下默认是THUM ...
- jquery 读取xml
<script type="text/javascript" src="jquery/jquery-1.11.3.min.js"></scri ...
- 【转】一个高端.NET技术人才的2014年度总结
[转]一个高端.NET技术人才的2014年度总结 本人在一家公司做技术负责人.主要从事的是.net方面的开发与管理,偏重开发. 弹指一挥间,时间飘然而过,转眼又是一年. 回顾2014年,是我人生中最 ...
- nginx报file not found错误
查看错误日志 [:q2013/10/20 18:41:40 [error] 27151#0: *106117 FastCGI sent in stderr: "Primary script ...
- PHP CURL访问HTTPS使用详解
三年前写过一篇<一个简陋的支持HTTPS的PHP CURL封装函数>,当时只是知其然不知其所以然,今天来详细梳理一下. https服务器post数据 代码如下 复制代码 function ...