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的更多相关文章

  1. CRPR/CPPR

    S CRPR  clock reconvergence pessimism removal C CPPR  clock path pessimism removal 剔除公共clock path上的悲 ...

  2. STA之OCV

    Timing sign-off Corner = library PVT +RC Corner + OCV 针对每个工艺结点,foundry都会给出一张类似的timing sign-off表格,定义了 ...

  3. 普通交叉验证(OCV)和广义交叉验证(GCV)

    普通交叉验证OCV OCV是由Allen(1974)在回归背景下提出的,之后Wahba和Wold(1975)在讨论 了确定多项式回归中多项式次数的背景,在光滑样条背景下提出OCV. Craven和Wa ...

  4. 一个基于OCV的人肉选取特征点程序

    基于OpenCV写了一个交互式获取图片上的人肉选取的特征,并保存到文件的小程序. 典型应用场景:当在一个精度不高的应用需求中,相机分辨率差或者变形严重,某些棋盘点通过代码检测不出,就可以通过手工选取的 ...

  5. clock sense和analysis mode

    PrimeTime会自动track clock tree中的inverter和buffer,从而得到每个register的clock sense. 如果clock tree中,只有buffer和inv ...

  6. 论STA | 工艺、工具、分析的本与末

    人类从漫长的蒙昧中觉醒之后,不再依靠着奇装异服的巫师通灵来指导生活,巫师进化成了科学家,他们试图对周遭的一切进行概括.分类.抽象,于是有了化学.物理.数学等基科.比如一粒沙,它的化学组成是什么,物理特 ...

  7. CTS 如何处理 gating clock 和 generated clock

    1. CTS 时会将 ICG cell 作为 implicit nostop pin 处理,直接穿透,以 ICG cell 后面的 sink 点作为真正的 sink 来长 tree 2. CTS 时会 ...

  8. 机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA

    本文转自:自己的微信公众号<集成电路设计及EDA教程> <机器学习在IC设计中的应用(二)--根据GBA时序结果来预测PBA> AOCV AOCV全称:Advanced OCV ...

  9. 论STA | POCV/SOCV 对lib 的要求 (4)

    在芯片制造过程中的工艺偏差由global variation 和local variation 两部分组成. 在集成电路设计实现中,global variation 用PVT 跟 RC-corner ...

随机推荐

  1. Codeforces841B

    B. Godsend time limit per test:2 seconds memory limit per test:256 megabytes input:standard input ou ...

  2. POJ2778(SummerTrainingDay10-B AC自动机+矩阵快速幂)

    DNA Sequence Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17160   Accepted: 6616 Des ...

  3. 【转】android系统常用URI

    android系统管理联系人的URI如下:ContactsContract.Contacts.CONTENT_URI 管理联系人的UriContactsContract.CommonDataKinds ...

  4. span元素文字自动换行

    <span>加上display:inline-block,成功实现了想要的效果.但又有一个问题,纯连续字母和数字不会换行,最后加上word-wrap: break-word强制自动换行搞定 ...

  5. IE9+下如何让input的placeholder样式生效

    :-ms-input-placeholder.el-input__inner { color: #97a8be;}:-ms-input-placeholder.el-textarea__inner{ ...

  6. 从浏览器地址栏输入URL到浏览器呈现数据全过程解析

    一.输入设备(或粘贴)输入 URL,按下 Enter键 或其他按钮开始请求. 二.浏览器开始解析 URL 关于 URL 到相关知识点:什么是URI,URL以及URN,你真的理解了吗. 1.URL 是否 ...

  7. 活字格Web应用平台学习笔记 7 - 导出 Excel

    活字格一直强调和Excel的兼容,可以导入导出Excel,今天终于学到这一课了. 课程目标: 好吧,就是这么快,已经加了一个“导出到Excel”的按钮了 我以为多高深呢,原来人家都给写好逻辑了,直接选 ...

  8. 通用视图-分开处理GET、POST请求

    1.编辑urls.py: url(r'^vmmgmt-vms/$', views.vmmgmt,{'model':models.hvvms,'GET': views.vmmgmt_get_view,' ...

  9. gnome-shell 使用 notify-send 发送桌面消息

    什么是notify-send? notify-send - a program to send desktop notifications 怎么使用? NAME notify-send - a pro ...

  10. win10桌面显示我的电脑设置

      首先,我们可以看到桌面上面没有我的电脑.   我们在桌面空白处点击右键,选择“个性化”.   然后选择“更改桌面图标”,如图示.   在如图示位置,将“计算机”勾选,然后点击“应用”--" ...