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

在芯片制造过程中的工艺偏差由global variation 和local variation 两部分组成。
在集成电路设计实现中,global variation 用PVT 跟 RC-corner 来模拟;local variation 用 OCV/ AOCV/ SOCV 来模拟。
在40nm 之前OCV 被广泛采用,但是OCV 对同一条path 上的所有cell 都设同一个derate 值,如果设的太严则过于悲观,如果设得太松又会导致过多的path 过于乐观,进入28nm 之后尤其是16nm 之后,OCV 模型越来越"力不从心",于是有了AOCV 模型。
- AOCV 模型不再是一个简单的derate 值,而是跟cell 所在path 的逻辑级数和物理位置相关,AOCV table 通常是基于Monte-Carlo 模型仿真得到的(对此有兴趣的驴友可以研究一下Virtuoso Variety),它的index 是逻辑级数或distance. 但是AOCV 有两缺点,
- 其一:AOCV derate 值跟cell 的输入transition 和输出load 无关,所以不能考虑这部分因素;
- 其二,GBA 模式下计算得到的逻辑级数和distance 过于悲观,而PBA 模式下可以得到精确的逻辑级数和distance 但是runtime 又不可接受。于是又进一步引入了SOCV 。
- SOCV 可以很好的解决精度和runtime 的问题,本质上,SOCV 是在某个特定PVT 下的SSTA, 即单参数SSTA, 它不再依赖于逻辑级数和distance, 所以也就避免了GBA 模式下计算得到的逻辑级数和distance 过于悲观;同时SOCV 模型考虑了输入transition 跟输出load 的影响,更贴合实际
做精确的SOCV 分析,需要特别的库支持,在库里要有针对每一个cell 每一条timing arc 的cell delay, output transition, timing check 的sigma table, table 的两个index 分别是输入transition 和输出load.
这个特别的库,就是本文的主题,即:LVF ( Liberty Validation Format ),
OpenSource Liberty Version 2013.12 开始支持LVF; 从2017 年开始,LTAB ( Liberty Advisory Board ) 批准了对LVF 的扩展,以提供先进的moment-based 模型。
传统LVF 中有对cell delay, output transiton, timing check 的ocv_sigma_* table, 这些值表示与相关NLDM表中包含的标称值的偏差,该值用1-sigma 表示。在表中用关键词 "sigma_type" 来表示是用于early path 还是late path 的分析,但timing check variation 的table 是不分early 跟late 的。

16nm 及以下的先进工艺结点和超低电压会产生强非高斯分布 (Strongly non-Gaussian ), 表现出均值偏移 ( mean-shift ) 和偏斜效应 ( skewness effects ). 于是从2017 年起新引入了3个moment-based 模型,用于对已有 ocv_sigma_* 模型的矫正。

这三个moment-based 分别是:mean-shift, Standard Deviation, Skewness.


在没有LVF 时,可以用AOCV table 抽取一个SOCV sigma 值用于简单非精确分析,除此之外对于SOCV 如果使用Cadence 工具也可以使用SOCV library format, 其格式如下:

论STA | POCV/SOCV 对lib 的要求 (4)的更多相关文章
- SOCV / POCV 模型 (3)
STA无疑是数字集成电路设计实现方法学中最『漂亮』的模型之一,但是随意着工艺进步,local varition 的随机性及重要性增加,传统STA 的局限性日渐突出.大概在十五年前,SSTA成了一个研究 ...
- CRPR/CPPR
S CRPR clock reconvergence pessimism removal C CPPR clock path pessimism removal 剔除公共clock path上的悲 ...
- 论STA | SOCV / POCV 之 variation (2)
芯片制造涉及到许多复杂重复的过程,如:光刻.蚀刻.离子注入.扩散.退火.而且都是原子级操作,尽管控制非常严格,但偏差不可避免. 工艺偏差会导致芯片物理参数偏差,如:线宽.沟道掺杂浓度.线厚.临界尺寸. ...
- SOCV/POCV 开篇 (1)
1.功能:模拟工艺偏差对芯片性能的影响 2. 40nm之前 flat derate模型可以基本覆盖大部分情况 3.AOCV (Adance OCV) 考虑distance 和depth的影响. AOC ...
- STA分析(四) lib model
library中的一个cell可以是一个standard cell,IO buffer,或者一个complex IP.其中包含area,functionality,timing,power等相关的信息 ...
- STA之OCV
Timing sign-off Corner = library PVT +RC Corner + OCV 针对每个工艺结点,foundry都会给出一张类似的timing sign-off表格,定义了 ...
- 关于 RTL8723BS 同时开启 STA/AP 模式
最近接到一个调试 wifi 驱动的任务,使用的是 rtl8723bs 芯片组.要求是让无线设备工作在 station 模式的时候同时开启一个 ap 热点.简单来讲就是连接其他 wifi 的同时发出一个 ...
- 8188EU 在AM335X MC183上以AP+STA工作
[目的] 8188EU 在AM335X MC183上以AP+STA工作. [环境] 1. Ubuntu 16.04发行版 2. linux-3.2.0-psp04.06.00.11 3. MC1 ...
- STA分析(六) cross talk and noise
在深亚微米技术(deep submicron)中,关于crosstalk和noise对design的signal integrate的影响越来越大.主要表现在glitch和对delay的影响. 1)m ...
随机推荐
- redis的linux安装
1.下载安装包 [root@localhost opt]# yum install wget [root@localhost opt]# wget http://download.redis.io/r ...
- 找不到getter/setter——没有安装lombok插件
项目pull后的问题: import lombok.Getter; import lombok.Setter; @Setter @Getter public class ConcreteEntity ...
- jQuery jqgrid
1.写div <div class="ibox-content"> <div class="jqGrid_wrapper"> <! ...
- Codeforces Round #615 (Div. 3) A-F简要题解
contest链接:https://codeforces.com/contest/1294 A. 给出a.b.c三个数,从n中分配给a.b.c,问能否使得a = b = c.计算a,b,c三个数的差值 ...
- Git push 报错error: failed to push some refs to 'git@github.com'
出错原因 当我们在github版本库中发现一个问题后,你在github上对它进行了在线的修改:或者你直接在github上的某个库中添加readme文件或者其他什么文件,但是没有对本地库进行同步.这个时 ...
- MySQL判断数据是否为空
IFNULL(expr1,expr2)函数,这个函数只能判断是否为空 SELECT CONCAT(first_name,',',last_name,',',job_id,IFNULL(commissi ...
- Vue(二)
---恢复内容开始--- 1.vue条件指令 可以运行加减运算 可以进行if判断 <!DOCTYPE html> <html> <head> <meta ch ...
- 2.11 webdriver中使用 FileUtils ()
http://snkcxy.iteye.com/blog/1845862 ex: 比较网页截图图片与预期是否一致 File screenshot=((TakesScreenshot)driver ). ...
- 10day 系统的selinux服务程序优化
selinux服务对root用户权限进行控制 很多企业中:selinux服务默认关闭 centos6==centos7 临时关闭: 检查确认: getenforce --- 确认selinux服务是否 ...
- Java中怎么把科学计数法显示出全部数字
如果想去除科学计数法显示可以用如下方法处理: /** * 把科学计数法显示出全部数字 * @param d */ public static String object2Str(Object d) { ...