SOCVPOCV、global/local variation

news2024/11/27 12:47:56

在这里插入图片描述

Global/local variation

   global variation 用PVT 跟 RC-corner 来模拟;local variation 用 OCV/ AOCV/ SOCV 来模拟。在40nm 之前OCV 被广泛采用,但是OCV 对同一条path 上的所有cell 都设同一个derate 值,如果设的太严则过于悲观,如果设得太松又会导致过多的path 过于乐观,进入28nm 之后尤其是16nm 之后,OCV 模型越来越"力不从心",于是有了AOCV 模型。

  • Global variation: 由于工艺偏移导致的die-to-die, wafer to wafer, lot to lot 之间偏差,如:同一个chip上所有管子的沟道长度都比典型值偏大或偏小
    • Delay corner(PVT 和RC corner) 用于模拟Global varition
    • STA 用RC corner来模拟互连线的variation
  • Local variation (within-die or intra-die): 同一芯片上不同管子受工艺偏差影响不同< 注:on chip variation 之源>,如:同一芯片上有些管子的沟道长度偏小,而有些管子的沟道长度却偏大。显然,local variation 比 global variation 小

   为了模拟工艺偏差对芯片性能的影响,引入了On chip variation模型,40nm 之前简单的flat derate模型基本可以覆盖大部分情况,且不过于悲观到不能接受。但进入40 nm 之后flat derate(ocv) 已不再是一个有效的模型,所以引入了更复杂的AOCV (Advanced OCV) 模型,考虑depth 跟 distance的影响(但还是悲观了一点点)。

   此时AOCV table的背后已有统计学的支撑,即所谓的SSTA (statistical staic timing analysis).。但限于runtime 当今STA 默认都是基于GBA (Graph Based Analysis) 进行timing 分析,这就使得stage(选择cell所在的所有timing path中最小的stage所在的timing path---Minimum stage count per instance is used for all paths (pessimistic))distance(一条timing path所在物理范围的对角线长度)的计算并不精确,从而导致过于悲观,如果用PBA (Path Based Analysis) 方式来计算,runtime又不能接受。

   于是进入16nm 之后,一种新的OCV模型开始被广泛使用,C家称之为SOCV (statistical OCV), S家称之为POCV (Parametric OCV), 除了名字的差别,背后都是统计学都是正态分布,背后的算法也基本一致。因为SOCV / POCV 不再是简单的设一个derate 值(OCV)查一个表格(AOCV/SBOCV),而是要做一系列概率计算(正态分布,normal delay cell数量偏多,increase/decrease delay cell 数量偏少)。

    做SOCV / POCV STA 分析时,需要有描述derate 值的LVF 文件,通常LVF 文件由foundry 提供,liberty variation format是一种和liberty库文件(.lib)有关的数据格式。

基本概率知识

   随机变量分离散随机变量和连续随机变量,芯片制造过程中的工艺偏差属于连续随机变量范畴,所以在进入SOCV / POCV 之前,先来理解几个概念:随机变量、概率函数、累积分布函数、概率密度函数、均值、方差。

随机变量 (Random Variable)

   在现实世界中,许多量是无法准确预测的,故经常使用随机变量来表示,如管子的阈值电压、工艺偏差(channel W/L 、Thickness of oxide)等

概率函数 (Probability)

   如果运行大量测试,会发现随机变量的值通常遵循一定规律。随机变量处于x的可能性称为概率,通常用P(x) 表示
在这里插入图片描述

概率密度函数 (ProbabilityDensity Function)

   用于描述随机变量落在特定值范围内的概率,这个概率为概率密度函数在这个区域上的积分。如下图,该随机变量落在-1σ ~ 1σ间的概率是68.27%。SOCV / POCV 中sigma的取值,就是根据这个概率得来,所取sigma 的值需要保证大部分情况可以被覆盖到。

均值 (mean)、方差 (Sigma σ、随机变量与平均值的偏差程度)

在这里插入图片描述

正态分布 (Normal distribution) 也称高斯分布 (Gaussian distribution);

   对于正态分布,随机变量落在-1σ ~ 1σ间的概率是68.27%,落在-2σ ~ 2σ间的概率是95.45%,落在-3σ ~ 3σ间的概率是99.73%。这也是为什么SOCV / POCV 取3σ 的原因所在。
在这里插入图片描述


OCV、AOCV/SBOCV局限性

   local varition 本就是个正态分布,所以SSTA 可以近乎精确地对其进行模拟。然而由于SSTA 的复杂性,基本在正式工程应用中无法落地,所以这么些年来,都还是在传统STA 模型上做精化,而精化的重头戏之一就是On chip variation。从OCV 到AOCV/SBOCV 到SOCV / POCV, 逐渐的加入更多因素,以得到更精确的模拟**(用OCV模拟local variation对 delay/timing的影响)**。

  • 下图为late derate
    在这里插入图片描述
       OCV: 同一个corner 同一段path 上的所有cell 用一个derate 值;不考虑path 的depth 跟 distance, 也不考虑cell 的类型。所以结果对大部分path 而言过于悲观,而对另一小部分path 而言又过于乐观

在这里插入图片描述


   AOCV: 即所谓的stage based OCV (SBOCV), 将derate 模拟成path depthdistance 的函数,所以对同一段path 上不同depth、不同distance的cell 有不同的derate 值, 所以相较于OCV 更精确,但是AOCV 有两个局限:一是没有考虑cell 的trantion 跟 load 对variation 的影响,也没有考虑transition 的variation;二是GBA模式下计算得到的逻辑级数和distance 过于悲观,而PBA runtime 又难以接受。

在这里插入图片描述


SOCV/POCV(statistical/parametric)

   SOCV / POCV: 统计OCV 是一种使用单一local variable 的SSTA 简化模型,对每个cell 分别建模,cell 的derate 不再是path depth 的函数,而是一个基于单一 µ(均值) 和σ(方差) 的高斯随机变量函数。

   SOCV / POCV 可以弥补AOCV 的局限,它考虑cell 的transition 跟 load 对variation 的影响,也考虑variation 对cell transition 的影响;由于其不依赖于depth, 所以也不受depth 精度的影响。

   POCV,又称SOCV(Statistical On Chip Variation),如下图所示,POCV将delay模拟成一个正态分布N(u,sigma )。每个cell的delay最高概率出现在 u周围。整体落在正负3sigma区间内的概率为99.7%

在这里插入图片描述

  • POCV / SOCV具有如下特点:

    • 每一级delay 都是一个(µ,σ) 的分布,时序分布作为独立的随机变量通过时序图传播
    • 每个cell / net 的variation 都用统计参数表示
    • variation 是输入transition 跟输出load 的函数
    • 更精确,跟SPICE 仿真结果的correlation 更好
    • timing report 中delay 值用µ + n*σ 表示,默认n 是3,即通常所说的3 sigma
      • 落在-3σ ~ 3σ <即3 sigma > 间的概率是99.73%. 由此可知3 sigma 可以保证99.73 的情况都可以被覆盖到,所以当前最先进工艺仍用3 sigma 来卡。

目前,SOCV 可以三种形式呈现

  • Timing lib 中带有LVF data, T 家先进工艺的库大多以这种形式呈现,LVF data 集成在timing lib 中,每个timing arc 都有 early/ late 的 ocv_sigma* 和LVF moment 表格,表格的纵坐标是输入pin 的slew, 表格的横坐标是输出pin 的load.
    在这里插入图片描述

  • 独立的LVF data, 其内容同timing lib 中集成的LVF data 一样。
    在这里插入图片描述

  • 没有SOCV data, 需要基于AOCV 的table 抽取SOCV data.

    • 在没有LVF 时,可以用AOCV table 抽取一个SOCV sigma 值用于简单非精确分析,除此之外对于SOCV 如果使用Cadence 工具也可以使用SOCV library format(variation on Delay/Slew/Checks(setup/hold))
    • 精度不够,不足以用于sign off. 因为AOCV 只有对delay 的variation, 所以无法从AOCV lib 中抽出transtion 跟constraints 的variation
      在这里插入图片描述

LVF ( Liberty Validation Format )

reference:陌上风骑驴看IC

https://cloud.tencent.com/developer/article/1611170
https://articles.zsxq.com/id_17jggp0ae372.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/742326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自定义设置echarts label里的颜色

自定义echarts label里的颜色 option {xAxis: {type: category,data: [Mon, Tue, Wed, Thu, Fri, Sat, Sun]},yAxis: {type: value},series: [{data: [120, 200, 150, 80, 70, 110, 130],type: bar,label:{show: true,formatter: function (params){console.log(params)if (pa…

Three.js加载外部glb,fbx,gltf,obj 模型文件

vue3使用Three.js加载外部模型文件 1.安装Three.js yarn add three npm install three2.新建一个renderModel.js 用于处理Three.js相关逻辑 import * as THREE from three //导入整个 three.js核心库 import { GLTFLoader } from three/examples/jsm/loaders/GLTFLoader im…

FENDI CLUB啤酒,浅谈精酿分类

啤酒被爱酒人士戏称为是世界是最复杂的快乐酒精饮料。据不完全统计&#xff0c;啤酒的分类不少于120种。如果要详细分类的话&#xff0c;需要很大的篇幅。FENDI CLUB啤酒给大家一个简单的区分类别方法。 一般谈到精酿啤酒说的就是各式各样的艾尔&#xff0c;英文是Ale&#xff…

c++中的时间处理(2)time.h库及几个time相关的函数

关于time.h&#xff0c;有人总结了这么3句话&#xff1a; &#xff08;1&#xff09;time_t&#xff1a;表示距离 UTC 时间 1970-01-01 00:00:00 的秒数。也叫做日历时&#xff0c;类型是 long &#xff08;2&#xff09;clock_t: 只用于程序计时&#xff0c;貌似其他的没它什…

【SAP UI5 控件学习】DAY03 Input组Part III

1. Input 控件 1.1 最简单的Input控件 在UI5框架中&#xff0c;最简单的Input控件也提供了输入提示功能。当用户输入内容的时候&#xff0c;会自动匹配Input控件中所绑定的JSON模型中是数据。 Input的默认匹配规则是匹配从头匹配每一个单词 前端代码如下&#xff1a; <mv…

Django新手必看:如何创建应用和定义数据表。看完这一篇就够了

1. Django创建应用 Django 项目就是基于 Django 框架开发的 Web 应用&#xff0c;它包含了一组配置和多个应用&#xff0c;我们把应用称之为App&#xff0c;在前文中对它也做了相应的介绍&#xff0c;比如 auth、admin&#xff0c;它们都属于 APP。一个 App 就是一个 Python 包…

这7个AI软件让设计效率飞起,快来收藏

伴随着AI技术的发展&#xff0c;设计师使用AI工具来提高工作效率已成为一种趋势&#xff0c;越来越多的AI工具也出现在市场上。本文收集了市场上7个好用的AI工具推荐给大家&#xff0c;一起来看看吧&#xff01; 1、即时 AI 即时 AI是一款依赖AI技术&#xff0c;实现网页设计…

梯度(第四节)

目录 一.总结 二.l的方向余弦 三.方向导数 四.方向导数和方向余弦的联系 五.梯度 1.定义 2.性质 3.运算公式 4.例题 六.最快下降法 一.总结 上一节我们研究了数量场和矢量场的宏观特征&#xff0c;但宏观特征&#xff0c;在细节上往往无法展现事物的真正全 貌&…

Instruct2Act:使用大型语言模型将多模态指令映射到机器人动作

Instruct2Act&#xff1a;使用大型语言模型将多模态指令映射到机器人动作 基础模型在多种应用中取得了重大进步&#xff0c;包括文本到图像的生成、全景分割和自然语言处理。本文提出了一个名为Instruct2Act的框架&#xff0c;该框架利用大型语言模型将多模态指令映射为机器人…

代码随想录算法学习心得 42 | 121. 买卖股票的最佳时机、122.买卖股票的最佳时机II...

一、买卖股票的最佳时机 链接&#xff1a;力扣 描述&#xff1a;给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算…

iOS添加测试设备报错ineligible for 14 days

2023年7月8日申请苹果个人开发账号审核通过。 2023年7月10日在苹果开发平台分别创建Certificates、Identifiers、Devices添加一台测试设备、Profiles&#xff0c;将已经准备好的项目打包上传&#xff0c;使用testflight测试app&#xff0c;使用测试设备一切顺利。 2023年7月1…

中缀表达式转前、后缀表达式

中缀表达式&#xff1a;按照人为理解的运算优先顺序进行计算&#xff0c;如ab 前缀表达式&#xff1a;运算符在括号之前&#xff0c;如ab 后缀表达式&#xff1a;运算符提在括号之后&#xff0c;如ab 解题步骤&#xff1a; ①用括号把每一个表达式括起来(可以先全部括起来后挨…

RPC分布式网络通信框架(一)—— protobuf的使用

文章目录 一、protobuf的好处二、如何创建proto三、编译生成的C类UserServiceRpcUserServiceRpc_Stub四、序列化和反序列化序列化反序列化 粘包问题解决调用者组包提供者解包 一、protobuf的好处 1、protobuf是二进制存储的&#xff0c;xml和json都是文本存储的。故protobuf占…

综合布线系统(PDS)

综合布线系统&#xff08;PDS&#xff09; 综合布线系统的基本标准 ● TIA/EIA-568A/B&#xff1a;商业大楼电信布线标准 ● EIA/TIA-569:电信通道和空间的商业大楼标准 ● EIA/TIA-570&#xff1a;住宅和N型商业电信布线标准 ● TIA/EIA-606&#xff1a;商业大楼电信基础设施…

windows便签推荐哪款?

随着科技技术的进步&#xff0c;越来越多的人喜欢使用便签软件&#xff0c;因为它们能帮助我们快速记录和管理重要的信息和任务。在快节奏的现代生活中&#xff0c;便签软件成为了我们生活和工作中不可或缺的工具。特别是对于经常使用电脑的用户来说&#xff0c;一款优秀的便签…

戴尔外星人x16r1原装Win11系统带F12还原功能

戴尔外星人x16r1原装Win11系统带F12还原功能 电脑恢复到新机状态&#xff0c;完成&#xff1a; 1.系统恢复到预装系统&#xff0c;与新机买来状态完全一致&#xff1b; 2.隐藏恢复分区&#xff0c;戴尔与外星人相同&#xff0c;可以用来开机F12进入supportassis os recovery…

选择排序

选择排序 排序步骤&#xff08;有n个数需要排序&#xff09; 在一组序列中找到最大/小的元素&#xff0c;将其与序列的起始位置交换&#xff1b;此时可进一步缩小排序范围&#xff0c;将改序列的起始位置移出&#xff1b;寻找剩余范围序列中的最大/小值&#xff0c;与此时序列…

deeplabv3+源码之慢慢解析 第二章datasets文件夹(1)voc.py--voc_cmap函数和download_extract函数

系列文章目录&#xff08;更新中&#xff09; 第一章deeplabv3源码之慢慢解析 根目录(1)main.py–get_argparser函数 第一章deeplabv3源码之慢慢解析 根目录(2)main.py–get_dataset函数 第一章deeplabv3源码之慢慢解析 根目录(3)main.py–validate函数 第一章deeplabv3源码之…

JS UMD规范实现

UMD实现范例 (function (root, factory) {if (typeof module object && typeof module.exports object) {console.log(是commonjs模块规范&#xff0c;nodejs环境);var depModule require(./umd-module-depended);module.exports factory(depModule);} else if (t…

ElasticSearch入门教程--集群搭建和版本比较

文章目录 一、ElasticSearch 集群二、Elasticsearch的核心概念2.1、分片&#xff08;Shards&#xff09;2.2、副本&#xff08;Replicas&#xff09;2.3、路由计算2.4、倒排索引 三、Kibana简介四、Spring Data ElasticSearch 一、ElasticSearch 集群 Elasticsearch 集群有一个…