论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, 其格式如下:
原文地址:https://www.cnblogs.com/lelin/p/11397497.html
- Java内存管理
- python基础知识——内置数据结构(字典)
- mysql、mongodb、python(dataframe).聚合函数的形式,以及报错解决方案
- JavaScript计算水仙花数【可自定义范围】
- JSP简单入门(1)
- mongodb取出json,利用python转成dataframe(dict-to-dataframe)
- JSP简单入门(2)
- JSP简单入门(3)
- 物化视图相关的性能改进 (r7笔记第58天)
- Maven 核心原理解析(1)
- LeetCode——Two Sum
- TensorFlow全新的数据读取方式:Dataset API入门教程
- 不经意发现的dba_objects和dba_tables中的细节(r7笔记第56天)
- LeetCode——Longest Substring Without Repeating Characters
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android开发(第一行代码 第二版) 常见异常和解决办法(基于Android Studio)(二)
- 大厂Java项目如何进行Maven多模块管理
- Android开发 经验技巧汇总(基于Android Studio)(一)
- 老板逼我用 Git,本地指令介绍
- Python全栈(三)数据库优化之5.MySQL自关联、外键与Python操作MySQL
- Android开发 经验技巧汇总(基于Android Studio)(二)
- 表格滑动和图片链接,mdnice安排上了!
- 数据库编程 MySQL 常见异常和解决办法
- 持续集成利器,GitHub Actions
- 已拿Offer!百度、字节跳动等后台面经
- Python Networkx基础知识及使用总结
- AkShare-沪深港通持股-个股排行
- Python SQLite常见异常及解决办法
- IPC—进程间通信的基础概念
- Python Django开发 经验技巧总结(一)