ocv & derate & crpr
OCV: on-chip-variation 是指芯片在制造工艺P、工作电压V、环境温度T 等参数的局部变化情况下导致的 cell &net delay 变化,比如假设从clk 到两个reg D端的走线长度相同,RC 参数相同,xtalk 情况也相同,两个reg的size也相同,理论上来说这两条path 上的delay应该相同,但是由于两条path 的PVT参数的偏差,实际的delay 值也会有所偏差,这种偏差就称之为 ocv 。
对于APR tool 来说,ocv 是无法精确计算的,但是在先进工艺制程中,ocv 的影响又不能忽略,一般通过设置 timing derate 参数来估算ocv 带来的影响。
在 set_operating_condition 时,需要设置 analysis type,一般分为 bc_wc 和 ocv 两种
bc_wc:在 wc 条件下 check setup (launch path :wc, latch path:wc),
在 bc 条件下 check hold (launch path :bc,latch path:bc)
但是设想一种情况:在wc条件下,ocv 导致 latch path 出现偏差,latch path delay 比原来小,此时就可能出现 setup violation,所以bc_wc 模式是偏乐观的;
ocv: 在 wc 条件下 check setup (launch path:wc,latch path:ocv_ wc)
在 bc 条件下 check hold (launch path:bc,latch path:ocv_bc )
这样才能比较准确的考虑到芯片实际工作时的情况。但是这里也存在一个问题:wc corner bc corner 都是由 db 来描述的,如果采用ocv模式来分析timing的话,就需要一套 ocv_wc / ocv_bc 的 db 库,这个会比较麻烦,所以实际在使用ocv模式时,是直接用derate参数来分析的
举个栗子:
foundry 给出的signoff 要求中的 DRT_H 如下:
那么在创建这个scenario时就需要这样设置:
set_timing_derate -cell_delay -early 0.954 -clock
set_timing_derate -net_delay -early 1 -clock (这行可删去)
set_timing_derate -cell_delay -late 1.046 -clock
set_timing_derate -net_delay -late 1.085 -clock
这里只设置了clock derating, 如果foundry 也给出了 data derating,DATA_DRT_H,就将 data 也设置一遍
所以,对比 BC_WC 和 OCV 区别如下图:
一般在90nm以上的工艺,ocv 影响较小,直接用 bc_wc 分析即可;而到了90nm以下,如 u55 / u40 等等,都需要设置 derating 参数。
那么如何开启 OCV,参考以下脚本:
create_scenario func_wc_cmax
set_operating_condition \
-analysis_type on_chip_variation \
-max wc -min wc
set_timing_derate -cell_delay -early 0.954 -clock
…………
CRPR:
实际上,ocv 模式有时也会太悲观,比如如果 launch 和 capture 有 common path,那么这段 common path 的 ocv 就是一样的,此时就不再需要用 early-drt 和 late-drt 来修正,所以开启了ocv 模式后,需要同时开启 crpr (clock reconveregence pessimism removal),开启方法:
set_app_var timing_remove_clock_reconvergence_pessimism true
ocv & derate & crpr的更多相关文章
- CRPR/CPPR
S CRPR clock reconvergence pessimism removal C CPPR clock path pessimism removal 剔除公共clock path上的悲 ...
- STA之OCV
Timing sign-off Corner = library PVT +RC Corner + OCV 针对每个工艺结点,foundry都会给出一张类似的timing sign-off表格,定义了 ...
- 普通交叉验证(OCV)和广义交叉验证(GCV)
普通交叉验证OCV OCV是由Allen(1974)在回归背景下提出的,之后Wahba和Wold(1975)在讨论 了确定多项式回归中多项式次数的背景,在光滑样条背景下提出OCV. Craven和Wa ...
- 一个基于OCV的人肉选取特征点程序
基于OpenCV写了一个交互式获取图片上的人肉选取的特征,并保存到文件的小程序. 典型应用场景:当在一个精度不高的应用需求中,相机分辨率差或者变形严重,某些棋盘点通过代码检测不出,就可以通过手工选取的 ...
- clock sense和analysis mode
PrimeTime会自动track clock tree中的inverter和buffer,从而得到每个register的clock sense. 如果clock tree中,只有buffer和inv ...
- 论STA | 工艺、工具、分析的本与末
人类从漫长的蒙昧中觉醒之后,不再依靠着奇装异服的巫师通灵来指导生活,巫师进化成了科学家,他们试图对周遭的一切进行概括.分类.抽象,于是有了化学.物理.数学等基科.比如一粒沙,它的化学组成是什么,物理特 ...
- CTS 如何处理 gating clock 和 generated clock
1. CTS 时会将 ICG cell 作为 implicit nostop pin 处理,直接穿透,以 ICG cell 后面的 sink 点作为真正的 sink 来长 tree 2. CTS 时会 ...
- 机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA
本文转自:自己的微信公众号<集成电路设计及EDA教程> <机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA> AOCV AOCV全称:Advanced OCV ...
- 论STA | POCV/SOCV 对lib 的要求 (4)
在芯片制造过程中的工艺偏差由global variation 和local variation 两部分组成. 在集成电路设计实现中,global variation 用PVT 跟 RC-corner ...
随机推荐
- 如何高效的使用-Notepad++
Notepad++功能比 Windows 中的 Notepad(记事本)强大,除了可以用来制作一般的纯文字说明文件,也十分适合编写计算机程序代码.Notepad++ 不仅有语法高亮度显示,也有语法折叠 ...
- Python标准库--UUID
UUID(Universally Unique Identifier)是128位通用唯一识别码,通常由32字节的字符串表示.它可以保证时间和空间的唯一性,也称为GUID,全称为:UUID —— Uni ...
- django rest_framework Serializers 序列化组件
为什么要用序列化组件 当我们做前后端分离的项目~~我们前后端交互一般都选择JSON数据格式,JSON是一个轻量级的数据交互格式. 那么我们给前端数据的时候都要转成json格式,那就需要对我们从数据库拿 ...
- 如何将在线电子书保存为pdf格式
网上有很多免费的在线电子书籍,没有pdf格式,不方便离线阅读,也不方便做记录,所以找了几个将在线内容制作成pdf文件的方法. 一.如果网站上的书籍内容没有分页,所有内容都直接显示出来了,最简单,直接将 ...
- Android Studio离线打包5+SDK
dcloud官网下载最新版5+SDK 解压后,Android Studio导入HBuilder-Hello,选择From eclispe 修改assets/data/dcloud_control.xm ...
- python 版本升级
python 版本升级 升级python 查看python的版本 python -V Python 2.6.6 下载新版本 wget https://www.python.org/ftp/python ...
- Apache,PHP,MySQL独立安装
最近在工作中常常接触到PHP,自己也写过一些简单的PHP页面.我们知道PHP是在服务器端运行的脚本语言,因此我们需要配置服务器环境.之前为了省事直接使用的是wamp集成环境,但是突然某一天领导要求我们 ...
- Session["Write"] = "Write";
Session["Write"] = "Write"; 将Session使用起来,建立起回话,这样才能保证会话中保持SessionID不变,否者,如果你直接使用 ...
- Visual Studio 2010详细安装过程
Visual Studio 2010在目前看来,应该是使用得比较多的一款微软的软件开发工具集合了,因为它具有以下优点:(1)启动速度快:在相同环境下,相比于Visual Studio 2015来说,2 ...
- centos7安装mysql5.7修改设置密码策略
centos7操作系统在安装mysql5.7社区版之后会有默认密码,通过grep命令在mysqld.log文件中即可找到,如下所示: 标识位置即在初始化安装时mysql的默认密码,然后通过mysql ...