global variation 用PVT 跟 RC-corner 来模拟;local variation 用 OCV/ AOCV/ SOCV 来模拟。在40nm 之前OCV 被广泛采用,但是OCV 对同一条path 上的所有cell 都设同一个derate 值,如果设的太严则过于悲观,如果设得太松又会导致过多的path 过于乐观,进入28nm 之后尤其是16nm 之后,OCV 模型越来越"力不从心",于是有了AOCV 模型。
为了模拟工艺偏差对芯片性能的影响,引入了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 之前,先来理解几个概念:随机变量、概率函数、累积分布函数、概率密度函数、均值、方差。
在现实世界中,许多量是无法准确预测的,故经常使用随机变量来表示,如管子的阈值电压、工艺偏差(channel W/L 、Thickness of oxide)等
如果运行大量测试,会发现随机变量的值通常遵循一定规律。随机变量处于x的可能性称为概率,通常用P(x) 表示
用于描述随机变量落在特定值范围内的概率,这个概率为概率密度函数在这个区域上的积分。如下图,该随机变量落在-1σ ~ 1σ间的概率是68.27%。SOCV / POCV 中sigma的取值,就是根据这个概率得来,所取sigma 的值需要保证大部分情况可以被覆盖到。
对于正态分布,随机变量落在-1σ ~ 1σ间的概率是68.27%,落在-2σ ~ 2σ间的概率是95.45%,落在-3σ ~ 3σ间的概率是99.73%。这也是为什么SOCV / POCV 取3σ 的原因所在。
local varition 本就是个正态分布,所以SSTA 可以近乎精确地对其进行模拟。然而由于SSTA 的复杂性,基本在正式工程应用中无法落地,所以这么些年来,都还是在传统STA 模型上做精化,而精化的重头戏之一就是On chip variation。从OCV 到AOCV/SBOCV 到SOCV / POCV, 逐渐的加入更多因素,以得到更精确的模拟**(用OCV模拟local variation对 delay/timing的影响)**。
AOCV: 即所谓的stage based OCV (SBOCV), 将derate 模拟成path depth
跟 distance
的函数,所以对同一段path 上不同depth、不同distance的cell 有不同的derate 值, 所以相较于OCV 更精确,但是AOCV 有两个局限:一是没有考虑cell 的trantion 跟 load 对variation 的影响,也没有考虑transition 的variation;二是GBA模式下计算得到的逻辑级数和distance 过于悲观,而PBA runtime 又难以接受。
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具有如下特点:
目前,SOCV 可以三种形式呈现
没有SOCV data, 需要基于AOCV 的table 抽取SOCV data.
reference:陌上风骑驴看IC
https://cloud.tencent.com/developer/article/1611170
https://articles.zsxq.com/id_17jggp0ae372.html