一、OCV介绍(on chip variation)
同一块芯片上的晶体管会有变快或者变慢的现象,因此产生了OCV的概念。
OCV在path上设置统一的derate,悲观度较高。derate数值是指对launch、capture、data line的cell或者net上添加一个比理想情况更为悲观的倍数,比如针对setup,launch的derate统一设置为1.1,表示delay时间增加值原来的1.1倍,capture的derate统一设置为0.9,表示delay时间变为原来的0.9倍。从而使设计能够覆盖实际生产过程中产生的variation。针对common path,利用cppr将悲观量移除。
实现方式:
-
运用于主PVT库对应的微小差异PVT库
-
set_timing_derate命令设置全局derate值
二、AOCV(SBOCV)
在传统OCV上引入了对路径长度和整个路径在物理上所跨越的距离的考虑。在实际设计中,通过对一条line中cell在不同的逻辑深度时的仿真,以及基于前后级在物理中不同距离来得到一个更精确的derate值来进行时序分析,而不是OCV传统的粗放式的统一的derate。
AOCV derate table:
(1)path depth:基于cell在整条时序路径中所处的深度或者级数来考虑derate
(2)path distance:基于路径中cell或net跨越的物理距离来给出相应的derate
三、POCV
POCV,又称SOCV(Statistical On Chip Variation),如下图所示,POCV将delay模拟成一个正态分布。每个cell的delay最高概率出现在 u周围。整体落在区间内的概率为99.7%。
如果在.lib中提供了sigma的数值,则可以通过公式(1)算出,如果通过read_aocvm读取的POCV的参数文件(包含参数C),则可以通过公式(2)算出。