1.POCV与OCV、AOCV
为了模拟片上PVT的差异带来的影响,最早提出了OCV(On Chip Variation)给每个cell都设置一个固定的derate值,来覆盖最悲观的情况,但是随着工艺发展,设计规模增大,OCV过度的悲观开始限制性能,于是又有了AOCV(Advanced On Chip Variation),用基于depth和distance的derate来取代单一的全局的derate值,但时序收敛的过程中逻辑级数depth的变化让时序分析的时间变得非常长,由此POCV诞生了。
POCV(Parametric On Chip Variation)也叫SOCV(Statistical On Chip Variation),摒弃了AOCV基于depth变化的derate特点,保留了distance的影响,另外考虑到cell delay服从正态分布特点,引入了期望值和标准差的概念。
1) μ : 期望值,也叫均数,描述正态分布中集中趋势的位置。
2) σ : 标准差,描述正态分布离散的程度。
如下图,当cell delay处于μ ±3σ范围内时,概率为99.7%,也就是所谓的3sigma,这样取值不会让variation过于悲观。
相较于AOCV,POCV没有了depth的影响,GBA与PBA的分析方式之间差异变得更小,增量的时序分析run time也会减少。另外,使用POCV分析时transition也遵从正态分布,其sigma值受input net transition和total output net capacitance影响。
2.POCV的设置方式
POCV有两种输入数据的方式:
1) POCV Single Coefficient Specified In a Side File
2) POCV Slew-Load Table in LVF (Liberty Variation Format)
两种输入数据同时存在,那么POCV single coefficient的优先级更高。
2.1 POCV Single Coefficient Specified In a Side File
这种方式需要两种输入文件:
其中distance-based类型文件提供derate,coefficient类型文件提供计算sigma的参数。cell delay的计算参考如下公式。
Cell delay = Cell delay derated +P * Cell delay Sigma
其中:
P 默认为3,也就是3 sigma
Cell delay derated = "Lib cell delay" *
( "POCVM distance derate" + "Incremental derate" )
Cell delay sigma = "Lib cell delay" *
("POCVM coefficient" )
Lib cell delay来自timing library文件的查找表获得的cell delay值,其二维分别是input net transition和total output net capacitance,也就是常说的input transition和output load。
2.2 POCV Slew-Load Table in LVF
这里输入文件就变成了distance-based derate 文件和LVF文件。sigma值直接在LVF文件中通过input net transition和total output net capacitance查找表获得。
cell delay的计算与POCV single coefficient有所不同。
Cell delay = Cell delay derated +P * Cell delay Sigma
其中:
P 默认为3,也就是3 sigma。
Cell delay derated = "Lib cell delay" *
( "POCVM distance derate" + "Incremental derate" )
Cell delay sigma = "POCVM delay sigma"
这个POCV delay sigma就在LVF文件中获得。