芯片在生产过程中,由于外界条件和生产条件的变化,比如PVT,可能会产生不同的误差从而导致同一晶圆上不同区域上的芯片里的晶体管速度变快或者变慢,并因此产生corner概念。
BCWC:即为best case corner和worst case corner,分别代表两种不同的PVT环境。BC时,timing-arc的时间最短,WC时,timing-arc的时间最长。OCV模式,AOCV模式,POCV模式,LVF模式均是在不同PVT(不同corner)的基础上添加derate。[3]
一、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将悲观量移除。
实现方式:
(1)运用于主PVT库对应的微小差异PVT库
(2)set_timing_derate命令设置全局derate值
二、AOCV
在传统OCV上引入了对路径长度和整个路径在物理上所跨越的距离的考虑。在实际设计中,通过对一条line中cell在不同的逻辑深度时的仿真,以及基于前后级在物理中不同距离来得到一个更精确的derate值来进行时序分析,而不是OCV传统的粗放式的统一的derate。[1]
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%。[2]
如果在.lib中提供了sigma的数值,则可以通过公式(1)算出,如果通过read_aocvm读取的POCV的参数文件(包含参数C),则可以通过公式(2)算出。
四、LVF
LVF,liberty variation format。是一种和liberty库文件(.lib)有关的数据格式。[4]
有两种方式可以得到LVF中的sigma:
(1)montecarlo蒙特卡洛模拟
(2)Sensitivity-Based-Analysis
[1]https://zhuanlan.zhihu.com/p/40293737
[2]https://zhuanlan.zhihu.com/p/40908692
[3]http://www.360doc.com/content/11/1024/02/6714119_158584261.shtml
[4]https://www.globalfoundries.com/sites/default/files/articles/lvf-characterization-in-siliconsmart.pdf