STA系列 - 芯片的鲁棒性OCV之set_time_derate

标签: 数字IC系列  DFT  tessent  

背景

芯片制造过程中,MOS间差异必然存在。library中的cell delay是在某个固定的PVT(operating condition)下仿真得出的。而实际上在芯片内部由于工艺偏差、电压降、温度变化,cell的delay并不是一个固定值,而是一个随机值,遵循高斯分布或门特卡洛分布,在STA中用OCV来模拟这一特征。OCV全称on chip variation,用于描述不同管子间由于工艺偏差、电压降、温度变化引起的delay变化,也用于描述工艺偏差引起的net厚度宽度的变化从而导致net的RC变化。
————————————————
(on-chip variation) 是指在同一个芯片上,由于制造工艺和环境等原因导致芯片上各部分特征不能完全一样,从而造成偏差,对时序分析造成影响。这些偏差对互连线和cell的延时都是有影响的。 由于 OCV 对时钟和数据路径的影响可能不同,时序验证可以通过使发射和捕获路径的 PVT 条件略有不同来模拟 OCV 效应。 STA 可以通过 减免(derate) 特定路径的延迟来包含 OCV 效应,也就是说,通过使这些路径更快或更慢,然后使用这些变化来验证设计的行为。单元延迟或线延迟或两者都可以降额以模拟 OCV 的影响。

time derate(时序增减因子),在芯片生产过程中,由于刻蚀,不同点的温度,金属不均匀,串扰,晶体管沟道长度等影响因素,导致片上各个位置单元延迟不一样。因此我们需要一个缩放因子来让设计更加严格。
timing derate 是计算OCV的一种简单方法,在某单一条件(BC-WC)下,把指定path的delay放大或者缩小一些,这个比率就是derate
best-case worse-case简称BC WC mode。
需要注意的是:考虑time derate需要在某个单一条件下,比如说BC或者WC条件下,把指定path的延迟再放大或者缩小一点,要么是BC,要么是WC,不要把BC和WC混在一起,再OCV,那样太过于悲观。
————————————————

在这里插入图片描述

例子

在这里插入图片描述
如上图所示,因为在芯片中,由于工艺制成,有可能绿色路径的buffer延时有一些不可控的变动因素,在棕色的路径中的延时也有一些不可控的变动因素,所以为了和实际吻合,我们在分析setup的时候,在同一个工艺库中,绿色的部分,用最大的延时,而在棕色部分,用最小的延时。这样对setup的check也是非常严苛的。

如何实现

在这里插入图片描述
如上图所示,使用

set_timing_derate -early 0.8
set_timing_derate -late 1.1

也就是说,0.8代表缩小20%,late代表增加10%
在这里插入图片描述

什么是early?什么是late?

如何选取path?
对于setup Analysis:

  • Launch clock : late path
  • Data path : late path
  • Capture clock : early path

因为launch clock+Data path 我们都希望为latest(越晚OCV越糟糕)
而capture clock越early越糟糕(越early OCV越糟糕)

对于hold Analysis:

  • Launch clock : early path
  • Data path : early path
  • Capture clock : late path
    ————————————————
    因为launch clock+data path 我们都希望越early(越早OCV越糟糕)
    而capture clock 越latest越糟糕

建立时间的OCV分析

derating因素可以应用到net delay上或者cell delay上
分别使用-cell_delay-net_delay
另外-cell_check 指的是检查Tseup的时间(library setup的时间需要放大1.1倍)

set_timing_derate -cell_delay -early 0.9
set_timing_derate -cell_delay -late 1.2
set_timing_derate -late 1.1 -cell_check

如下图所示:
在这里插入图片描述
setup check一般工作在WC PVT条件下,因此不需要在late path 上,即lauch clock path以及data path上再加time derate, 因为在WC条件下,launch clock path 以及data path上的延迟已经是所有条件下最差的delay了,没有必要再加大延迟,但是WC条件下capture clock path 上的delay肯定不是最小的,因此需要加快。
所以上面的timing path做setup check,time derate只需要这样设置

set_timing_derate -early 0.9
set_timing_derate -late 1.0

————————————————
此外:
对于公共路径进行同时放大和缩小,这是不符合常理的。
为了让芯片不过于悲观,叫做CPP,common path pessimism,我们应该移除掉这种悲观。
在这里插入图片描述
如上图所示,为了不过于悲观,从上图可以看到,我们有0.36ns是多算进去的。
所以我们需要减去0.36ns,因此最小的周期可以到达6.811ns。

OCV for hold check

在这里插入图片描述
数据到达时间 即data path和launch clock path需要使用-early 选项,使得路径变快
数据要求时间 即capture clock path需要使用 -late选项,使得路径变慢
实际上Hold check一般在BC条件下,因此,launch clock path与data path不需要再进一步减小delay,因为已经是最小delay,但是BC条件下的capture clock path需要derate,可以使用如下设置

set_timing_derate -early 1.0
set_timing_derate -late 1.2
Launch clock path = 0.85 * 1.0 = 0.85
Min data path = 1.7 * 1.0 = 1.7
Capture clock path = 1.0 * 1.2 = 1.2
slack=0.85+1.7-1.2-1.25=0.1

参考文章

参考了以下文章
参考文章1
OCV/AOCV/SOCV介绍
CPPR详解

版权声明:本文为ciscomonkey原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ciscomonkey/article/details/127418901

智能推荐

STA30222

STA302 Final Report "Towards the prediction of admission rates in different universities" Jiayi YANG (1004244212) Introduction When I applied to the universities in the past, I noticed that ...

第三方库PNChart的使用

PNChart 是一个强大的带动画的图表库   要是用这个库可以使用pods,也可以直接将库导入项目中,必须引入"PNChart.h"头文件   下面我们来看一下代码!      转载于:https://www.cnblogs.com/aeronfay/articles/4929223.html...

LeetCode刷题笔记(10)-BFS广度优先搜索

LeetCode刷题笔记(10)-BFS广度优先搜索 127、单词接龙 给定两个单词(beginWord 和 endWord)和一个字典,找到从 beginWord 到 endWord 的最短转换序列的长度。转换需遵循如下规则: 每次转换只能改变一个字母。 转换过程中的中间单词必须是字典中的单词。 输入: beginWord = “hit”, endWord = &ldqu...

线性筛选素数的方法及基于线性筛选素数的欧拉函数筛选莫比乌斯函数筛选

欧拉筛法线性求素数 回忆一下经典的埃式筛法求素数。时间复杂度是为O(nloglogn)(我之前一直以为是O(n))O(nloglogn)(我之前一直以为是O(n)) 显然,当一个数是素数的时候,那么他的倍数肯定是合数,筛选标记即可 我们来举个列子 筛选2-10的素数 首先2是素数,然后把其倍数删去,我们标记下删去的次数用一个斜杠表示删去了一次 之后3是素数,继续删去倍数,这个时候发现6被重复删去两...

JEECG 页面多个用户选择器只显示最后一个

在一个页面当中,我们可能会需要有多个的用户选择器进行快速的录入,此时会发现所有的输入都会在最后一个用户选择器的地方显示 查看页面代码当中的ID也是不一致: 查看通过标签生成之后的源码,可以发现所有的用户选择器都会生成一个 点击输入框调用的js方法都是一样的,看到这里也就可以明白为什么都是只有最后一个用户选择输入框当中有数据了。 因此我们对后台当中标签代码生成部分进行改造,让其支持多个用户选择器: ...

猜你喜欢

力扣47 全排列ii 回溯加剪枝

 这题难点在于先排序,然后重复的数字112 used[i-1]= fase 代表之前我用过了,就是我俩 1前面的用过了现在这一个我就直接跳过去    ...

arp协议

arp协议叫做地址解析协议,通常与ip地址共同使用,将ip地址转换成硬件地址(MAC地址)。arp既可以放在网络层,也可以放在数据链路层,因为它做了两层的工作。 当一个主机向另一个主机发送数据报时,通过arp协议,向局域网中发送arp请求,所有在局域网中的主机都可以收到,但会在网络层丢弃,只有一台符合目的ip的主机会发送给源主机arp响应包含自己mac地址,因此源主机就可以向目的主机发送报文。 l...

模拟登陆改版后的知乎(最新版)

今天,想着看看视频,把模拟登陆这一块学习学习,以后弄把梯子,去爬爬FaceBook什么的。就拿知乎练练手吧,可曾想,知乎竟然改版了!!之前的教程书籍对现在的知乎来说,都是扯淡,连页面都找不到了。下面一起谈谈改版后的纸糊的模拟登陆吧。 页面分析 抓包 首先,打开页面:https://www.zhihu.com/signup?next=%2F(登录网址都变了…),F12,输入账号密码(记...

干货分享——比微信域名防封防举报更牛逼的防封方案

从微信兴起到现在,微信的流量就一直居高不下,在淘宝时代和传统的电商时代,只要把广告打出去,别人通过搜索就可以找到我们,所以,移动互联网的到来,在微信爆棚的今天,都想在微信里面推广自己的产品,借力微信,达到客户沉淀,营销宣传,传播影响的目的,可以由于微信种种机制,有人腾讯要维护自身的利益,也有人说是微信要营造一个健康的生态圈,种种限制,比如分享次数过多,域名会被微信拦截屏蔽封杀,还比如微信中的链接不...

mysql的事务提交(java)

个人理解的一个事务:是一个Connection一系列的操作过程,如果是两个Connection连接在操作,那就是两个事务。 事务的前提:数据库的存储引擎是innodb。 事务的目的:保证数据的安全性。 事务安全:  1.自动提交事务:每执行一条sql语句,就同步到数据库中。  2.手动提交事务:执行一系列的sql语句后一起同步到数据库中。 事务的四大特性:  A(at...