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的原因,延迟增加到最大。此时,对保持时间的检查最为严苛。我们进行同样的分析,可以看到基本相同的结果。

其时序报告如下:

静态时序分析——On-chip Variation相关推荐

  1. STA静态时序分析——学习笔记

    STA静态时序分析--学习笔记 静态时序分析简介及基本知识 PT流程以及分步骤讲解 2.1 设计STA环境 2.2 指定STA库文件 2.3 读取Netlist文件 2.4 读取SPEF文件 2.5 ...

  2. 免费课程推荐|数字集成电路静态时序分析基础

    讲师介绍: 邸志雄 博士,硕士研究生导师,西南交通大学信息学院电子工程系副系主任.CCF会员.中国图象图形学学会军民融合专委会成员.新工科联盟"可定制计算"专委会成员.研究方向为高 ...

  3. Prime time官方教程笔记(静态时序分析) (一)

    来自Synopsys 客户培训服务 适用于prime time 2019.03-sp3及以下版本 使用primetime完成static timing analysis和signal integrit ...

  4. 《静态时序分析实用方法》翻译

    第1章 引言 解释了什么是静态时序分析以及它如何用于时序验证.还描述了功率和可靠性方面的考虑. 概述了纳米设计的静态时序分析程序.本章解决了诸如什么是静态时序分析.噪声和串扰的影响是什么.如何使用这些 ...

  5. PT静态时序分析 第一课 第二课

    绪论 目录: 第一到第四课比较重要 第一课 STA原理 静态时序分析是一种穷尽分析方法,用以衡量电路性能. STA主要有三个步骤: 1.设计被分解为时序路径(timing path) 2.计算所有路径 ...

  6. 静态时序分析(STA)

    静态时序分析 STA-1. 从一个反向器开始说时序 静态时序分析(Static Timing Analysis, 以下统一简称STA)是验证数字集成电路时序是否合格的一种方法,其中需要进行大量的数字计 ...

  7. 翻译不是一个有效的路径_【第一章:绪论】静态时序分析圣经翻译计划

    本文由知乎赵俊军授权转载,知乎主页为https://www.zhihu.com/people/zhao-jun-jun-19 众所周知,静态时序分析是IC工程师必备知识点,也是秋招中笔试面试的高频考点 ...

  8. 静态时序分析-OCV和time derate

    文章目录 基础概念 分析模式 如何选取path? 建立时间的OCV分析 保持时间检查的OCV 基础概念 OCV(on-chip variation) 是指在同一个芯片上,由于制造工艺和环境等原因导致芯 ...

  9. 静态时序分析 第五章 延迟计算

    延迟计算 第五章 延迟计算 5.1概述(Overview) 5.1.1延迟计算的基础( Delay Calculation Basics) 5.1.2带有互连线的延迟计算( Delay Calcula ...

  10. java时序图工具_每日学习:静态时序分析入门面面观

    关注并标星大同学吧 每天1次,打卡学习 积累1个新知识,增1分职场底气 作者称谓:Jack xu 个人介绍:不断学习的数字后端工程师 微信公众号:志芯 半导体知识分享第41期 技能升级,从这里开始 本 ...

最新文章

  1. 信息安全系统设计基础 实验四:外社驱动程序设计 20135327郭皓 20135329 李海空...
  2. QMainWindow多线程demo
  3. source insight 添加行号
  4. java定时任务,每天定时执行任务
  5. android 实现微信分享多张图片的功能
  6. 应用服务关闭时eureka客户端会向server发送销毁请求
  7. java天气app_MVP+RxJava2+Retrofit2 实况天气app
  8. web前端已经不行了?千万不要信
  9. 华为 HarmonyOS2.0(鸿蒙OS) 开发者beta公测招募的报名流程
  10. Express 项目结构最佳实践(上)
  11. Android编程之Intent源码详解
  12. hdu 5901 Count primes 素数计数模板
  13. 对于Typora(markdown)的基本使用
  14. 计算机学术会议英语作文,计算机专业资料——重要国际学术会议
  15. Oracle的表使用plsql导出excel文件
  16. C语言汉字在内存中如何存储
  17. yigo基础学习笔记1
  18. ME525做网络收音机和学外文用了……(安卓4.4.4系统,20190817更新)
  19. 使用PowerShell替代WinDbg在高分辨率笔记本下调试、排错
  20. win7系统如何关闭广告弹窗操作方法教学

热门文章

  1. Cache替换算法:LRU与LFU的区别
  2. C++ share_prt 简单设计和实现
  3. MySQL找出锁等待
  4. window.parent和window.opener区别
  5. 【DI专题】在 DI 脚本文件中调用存储过程
  6. 事情在不断的解决中,想念巫英才和张国振
  7. 数据可视化(BI报表的开发)第三天
  8. 数据库系统原理(第四章:SQL与关系数据库基本操作 )
  9. centos6.5和centos7.5统一字符集为zh_CN.UTF-8解决系统和MySQL数据库乱码问题
  10. [ActionScript 3.0] NetConnection建立客户端与服务器的双向连接