STA无疑是数字集成电路设计实现方法学中最『漂亮』的模型之一,但是随意着工艺进步,local varition 的随机性及重要性增加,传统STA 的局限性日渐突出。大概在十五年前,SSTA成了一个研究热点,相较于传统的STA,SSTA 不再是针对单一的timing 进行分析,它的分析结果是一个统计分布,通过这个统计分布结果,可得到电路处在某个timing 点的概率。
"Statistical timing is a great approach," Keller said. "It‘s the most accurate I can think of, but it‘s also the most expensive. Except for IDMs, nobody could really deploy it in production because it required too much run time and memory."
local varition 本就是个正态分布(类正太分布),所以SSTA 可以近乎精确地对其进行模拟。然而由于SSTA 的复杂性,基本在正式工程应用中无法落地,所以这么些年来,都还是在传统STA 模型上做精化,而『精化』的重头戏之一就是On chip variation。从OCV 到AOCV 到SOCV / POCV, 逐渐的加入更多因素,以得到更精确的模拟。
OCV: 同一个corner 同一段path 上的所有cell 用一个derate 值;不考虑path 的depth 跟 distance, 也不考虑cell 的类型。所以结果对大部分path 而言过于悲观,而对另一小部分path 而言又过于乐观。
AOCV: 即所谓的stage based OCV (SBOCV), 将derate 模拟成path depth 跟 distance 的函数,所以对同一段path 上不同depth、不同类型的cell 有不同的derate 值,而且同时还会考虑spatial 的影响 ( 即distance ) , 所以相较于OCV 更精确,但是AOCV 有两个局限:一是没有考虑cell 的trantion 跟 load 对variation 的影响,也没有考虑transition 的variation;二是depth 的计算,用GBA 过于悲观,而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 精度的影响。
注:1)同一段path 是指,在STA 可以分别对data/clock 的late/early 设不同的derate值,所以用 "同一段path" 予以描述。2)Random variation 通过SPICE 做Monte Carlo 仿真得到。3)Spatial variation 用distance based OCV 来模拟,对于AOCV 跟 SOCV都需要,这部分variation 通过硅片测试得到。
SOCV / POCV 的根本是高斯分布,做SOCV / POCV STA 分析时,需要有描述derate 值的LVF 文件,通常LVF 文件由foundry 提供。
POCV / SOCV具有如下特点:
- 每一级delay 都是一个(µ,σ) 的分布,时序分布作为独立的随机变量通过时序图传播。
- 每个cell / net 的variation 都用统计参数表示。
- variation 是输入transition 跟输出load 的函数。
- 更精确,跟SPICE 仿真结果的correlation 更好。
- timing report 中delay 值用µ + n*σ 表示,默认n 是3,即通常所说的3 sigma。
http://www.tauworkshop.com/2014/Slides/Bautz_SOCV_TAU_2014.pdf
https://community.cadence.com/cadence_blogs_8/b/ii/posts/signoff-summit-an-update-on-ocv-aocv-socv-and-statistical-timing
原文地址:https://www.cnblogs.com/lelin/p/11392056.html