静态时序分析——Timing borrow

Timing Borrow技术又称为cycle stealing技术,主要是利用latch的电平敏感特性,通过有效电平获取数据,通过无效电平保持被锁存的数据,主要用于解决路径时序不满足电路要求的情况。

通过TimingBorrow可以对电路进行加速,当路径延迟较大时,可以通过借用latch的部分时间实现数据的锁存从而可以提高设计运行的频率。采用TimingBorrow设计时,一定要注意前级电路借用时间与后级电路剩余时间之间的关系,某些情况下,timing borrow的错误理解会对综合和后端实现产生严重的时序问题,需要正确理解和规范使用。

我们先从锁存器说起:在一个锁存器中,时钟的一个沿之后,会使得锁存器变得透明(即这个时钟沿打开了锁存器,使得锁存器的输出与数据输入相同),我们把这个沿叫做opening edge;时钟的另一个沿之后,会关闭锁存器(即这个时候数据输入即使有任何变化,锁存器输出也不会改变),我们把这个沿叫做closing edge

一般来说,锁存器的输入数据应该在时钟有效沿之前准备好,但是由于锁存器在时钟有效电平时是透明的,因此,数据能在时钟有效沿之后到达,可以向下个时钟周期“借时间”(borrow time)。需要注意的是,一旦“借时间”,用于后级电路的时间会减少。

以上图为例,如果输入数据在B时刻到达,那么相当于向下一个时钟借了Tb时间。但是,这样减少了锁存器到下一个寄存器UFF2的时间,时间只剩下了Ta。

  • 如果数据在锁存器的opening edge之前到达,那么其行为与寄存器类似。opening edge会捕获数据并且opening edge作为下一时序路径的起点将数据传输出去。
  • 如果数据在opening edge与closing edge之间(锁存器透明)到达,那么会产生timing borrow。借出的时间会决定下一时序路径的起点。

对于Timing borrow的情况,我们会依据下图分为三种:

如果数据在negative slack到达,那么timing borrow技术也失效了,会导致时序违背(violation)。

我们来看看在positive slack的时序报告:

   

这里我们不需要进行time borrow。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253843.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

homebrew 常用命令

安装(需要 Ruby):ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/Go/install)" 搜索:brew search MySQL 查询:brew info mysql 主要看具体的信息,比如目前的版本&#xff0c…

从Mysql某一表中随机读取n条数据的SQL查询语句

若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i RAND() * (j – i 1))。例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机整数, 可使用以下语句: SELECT FLOOR(7 (RAND() * 6)); 以上摘…

基于MTD的NAND驱动开发(二)

基于MTD的NAND驱动开发(二) 基于MTD的NAND驱动开发(三) http://blog.csdn.net/leibniz_zsu/article/details/4977853 http://blog.csdn.net/leibniz_zsu/article/details/4977869 四、基于MTD的NAND 驱动架构 1 、platform_device 和platform_driver 的定义和注册 对于我们的…

静态时序分析——Data to data check

setup和hold的检查也有可能发生在任意两个数据端口,其中不包括时钟端口。 我们将其中一个端口(pin)设置为约束端口(constrainted pin),就像触发器中的数据端口;将另一个一个端口(pin…

开源数据库中间件-MyCa初探与分片实践

如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减…

【JAVA设计模式】外观模式(Facade Pattern)

一 定义 为子系统中的一组接口提供一个一致的界面。Facade模式定义了一个高层的接口,这个接口使得这一子系统更加easy使用。二 案例 一个子系统中拥有3个模块。每一个模块中都有3个方法。当中一个为client调用方法,其它两个则为各子模块间互相调用方法…

return的用处

#include "stdio.h" main() {int a,b1,c0;for(a1;a<5;a){ cca;}printf("%d",c);return ;printf("hello word"); } 输出结果是10并没有hello word&#xff1b;return将不会执行下面的语句。转载于:https://www.cnblogs.com/doublekai/p/6148…

静态时序分析——Clock Gating check

门控时钟是RTL级进行低功耗设计的最常用方法&#xff0c;能够有效降低动态功耗。在实际使用中&#xff0c;一般用ICG&#xff08;集成门控时钟单元&#xff09;来完成clock gating。ICG电路和时序如下&#xff1a; 通常来说&#xff0c;工艺库已经集成了ICG&#xff0c;在做门控…

U-boot中TFTP 解释

http://www.cnblogs.com/heaad/archive/2009/08/10/1542538.html

BlackHat Arsenal USA 2018 ToolsWatch黑客工具库

原文链接&#xff1a;https://medium.com/hack-with-github/black-hat-arsenal-usa-2018-the-w0w-lineup-7de9b6d32796 Black Hat Arsenal USA 2018 — The w0w lineup After the huge success of Black Hat Arsenal USA 2017, toolswatch has now announced the list of too…

SOA是什么

SOA是什么&#xff1f; SOA是面向服务的架构&#xff0c;是一个组件模型&#xff0c;它将应用程序的不同功能单元&#xff08;称为服务&#xff09;通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的&#xff0c;它独立于实现服务的硬件平台、操作…

redis 优化

系统优化echo "vm.overcommit_memory1" > /etc/sysctl.conf 0&#xff0c; 表示内核将检查是否有足够的可用内存供应用进程使用&#xff1b;如果有足够的可用内存&#xff0c;内存申请允许&#xff1b;否则&#xff0c;内存申请失败&#xff0c;并把错误返回给应…

IC设计常见设计思想

速度与面积互换原则 所谓速度&#xff0c;是指整个工程稳定运行所能够达到的最高时钟频率&#xff0c;它不仅和电路内部各个寄存器的建立时间、保持时间以及外部器件接口的各种时序要求有关&#xff0c;而且还和两个紧邻的寄存器间的逻辑延时&#xff0c;走线延时有关。所谓面…

DM365 u-boot启动分析

http://www.61ic.com/Article/DaVinci/DM644X/201009/27429.html

(十三)Hibernate高级配置

配置数据库连接池 配置C3P0连接池。先导入c3p0包。然后在hibernate.cfg.xml文件中 &#xff0c;使用下面代码配置连接池<property name"hibernate.connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>可以通过下面的…

eclipse中如何配置tomcat

1.打开eclipse上面的Windows选项&#xff0c;选择Preferences>Server>Runtime Environments>Add 2.选择你电脑中安装的tomcat的版本我的是8所以我选的是Apache Tomcat v8.0 3,Next>Browse选择Tomcat的安装目录&#xff0c;选择jdk 4.Finish>OK tomcat配置完成。…

jsp调试小技巧

console.log($("#toolbar")); 打印对象可知道这个对象的参数信息转载于:https://www.cnblogs.com/chenweida/p/6149342.html

数字IC验证学习(一)

一、数据类型 1、logic logic类型只能有一个驱动。使用wire和reg的地方均可使用logic&#xff0c;但如双向总线等有多个驱动的地方&#xff0c;则不可使用logic。 2、二值逻辑 对于二值逻辑变量与DUT中的四值逻辑变量连接时&#xff0c;如果DUT中产生了X和Z&#xff0c;会被…

SecureCRT 配置文件中 找密码

打开本地电脑如下路径 C:\Users\XXX\AppData\Roaming\VanDyke\Config\Sessions 找到配置文件。 运行命令&#xff1a;python SecureCRTDecrypt.py [配置文件名称] 例如&#xff1a;python SecureCRTDecrypt.py 192.168.1.249.ini ssh root192.168.1.249 # 123456 即可得到密…

刷题比赛

题目描述 给你四个数组A,B,C,D. 给出每个数组的初始值A[1] 1, B[1] 1, C[1] 1, D[1] 1 , A[2] 3, B[2] 3, C[2] 3, D[2] 3; 有以下的递推公式: (1) a[k2]p* a[k1]qa[k]b[k1]c[k1]r k^2t * k1d[k]; (2)b[k2]u* b[k1]vb[k]a[k1]c[k1]w^kd[k]; (3)c[k2]x c[k1]yc[k]a[k1]b[…