静态时序分析——On-chip Variation

OCV(on-chip variation)是指在同一个芯片上, 由于制造工艺和环境等原因导致芯片上各部分特征不能完全一样,从而造成偏差,对时序分析造成影响。这些偏差对互联线和cell的延时都是有影响的。

由于OCV对延时有影响,那么我们在进行时序分析时需要将这些OCV效应考虑进来。在STA中,通过对不同的时序路径添加derate系数,来完成对OCV的建模,将OCV效应纳入分析。

我们以下图电路为例进行说明:

进行setup check时,最差的情况为:launch clock path 和data path由于OCV的原因,延迟增加到最大;于此同时,capture clock path 由于OCV的原因,延迟减小到最小。此时,对建立时间的检查最为严苛。

如过我们不考虑OCV的影响,进行setup check,则情况如下:

arrival time = 1.2+0.8+5.2=7.2ns

required time = 1.2+0.86-0.35+clock_period=1.71+clock_period

那么由于required time-arrival time>=0则clock_period>=5.49,即最小时钟周期为5.49ns。

接下来我们将OCV纳入考虑,为路径和cell设置不同的derate系数。

我们可以通过set_timing_derate来设置derate系数

set_timing_derate -early 0.9
set_timing_derate -late 0.9
set_timing_derate -cell_delay -late 0.9
set_timing_derate -net_delay -late 0.9

长路径延时如setup check 中的launch clock path和data path,hold check中的capture clock path可以使用-late选项来设置

短路径延时如setup check 中的capture clock path,hold check中的launch clock path和data path可以使用-early选项来设置

使用-net_delay和-cell_delay来设置线网和cell的延时

为launch clock path和max data path增加系数1.2,为UFF1增加系数1.1,为capture clock path 增加系数0.9,这样,我们再看看setup check:

arrival time = (1.2+0.8+5.2)*1.2=8.64ns

required time = (1.2+0.86)*0.9-0.35*1.1+clock_period=1.469+clock_period

那么由于required time-arrival time>=0则clock_period>=7.171,即最小时钟周期为7.171ns。可以看到,在加入最差情况的OCV后,电路能运行的时钟频率明显下降了。

        但是在上面的计算中,我们还是可以发现一个问题,即common clock path即属于launch clock path,也属于capture clock path,所以在计算中,我们对其使用了不同的derate系数进行计算:在计算arrival time中,系数为1.2;在计算required time中,系数为0.9,这样会让我们的分析更为悲观,电路性能更差。而在真实的情况中,common clock path的PVT只有一个,不可能同时有两个derate系数,所以我们会进行CPPR操作。

CPPR(Clock Path Pessimism Removal)或者CRPR(Clock Reconvergence Pessimism Removal),中文名“共同路径悲观去除”。它的作用是去除clock path上的相同路径上的悲观计算量,即我们上面提到的问题。我们将common point定义为时钟树上共同部分最后一个cell的output pin。则定义CPP因子为:

CPP=LatestArrivalTime@CommonPoint-EarliestArrivalTime@CommonPoint

我们进行CPPR后再来进行一次计算:

LatestArrivalTime@CommonPoint=1.2*1.2=1.44ns

EarliestArrivalTime@CommonPoint=1.2*0.9=1.08ns

CPP=1.44-1.08=0.36ns

则clock_period=7.171-0.36=6.811ns

可以看到,电路的运行时钟频率变好了一点,但对于未考虑OCV来说,整个运行时钟频率还是降低了。

我们可以来看看时序报告

      

 

说完setup check,我们来看看OCV对hold check的影响。

进行hold check时,最差的情况为:launch clock path 和data path由于OCV的原因,延迟减小到最小;于此同时,capture clock path 由于OCV的原因,延迟增加到最大。此时,对保持时间的检查最为严苛。我们进行同样的分析,可以看到基本相同的结果。

其时序报告如下:

   

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

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

相关文章

Exception和RuntimeException的区别

1.Exception表示程序运行过程中可能出现的非正常状态 RuntimeException表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。 Java编译器要求方法必须声明抛出可能发生的费运行异常,但是并不要求必须声明抛出未被捕获的运行时异常, 即…

[转载]IIS7报500.23错误的解决方法

原文出处: 原文作者:pizibaidu 原文链接:http://pizibaidu.blog.51cto.com/1361909/1794446 背景:今天公司终端上有一个功能打开异常,报500错误,我用Fiddler找到链接,然后在IE里打开&#xff0c…

关于用户空间和内核空间

当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(内核态)。在内核态下,CPU可执行任何指令。当进程在执行用户自己的代码时,则称其处于用户运行态(用…

kaggle中zillow比赛中模型融合的方法及其代码

在机器学习这个领域,尤其是做多媒体(声音、图像、视频)相关的机器学习方法研究,会涉及很多特征、分类模型(分类任务)的选择。以声音识别为例,常见的特征有MFCC、LPCC、spectrogram-like feature…

静态时序分析——Timing borrow

Timing Borrow技术又称为cycle stealing技术,主要是利用latch的电平敏感特性,通过有效电平获取数据,通过无效电平保持被锁存的数据,主要用于解决路径时序不满足电路要求的情况。 通过TimingBorrow可以对电路进行加速,当路径延迟较…

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>可以通过下面的…