嵌入式学习小组
直播中

张润

7年用户 238经验值
私信 关注

如何使用AOCV做STA分析

OCV介绍及实现方法
如何使用AOCV做STA分析  


回帖(6)

傅利

2021-2-1 11:21:39
  为了学习记录AOCV库的相关知识,转载了3篇好的文章,感谢三位3大佬,内容仅作为学习使用,如有侵权请联系删除!
  今天我们要介绍的时序分析概念是AOCV。全称Stage Based Advanced OCV。我们知道,在OCV分析过程中,我们会给data path,clock path上设定单一的timing derate值。随着工艺演变的加速,我们发现这种设置方法是过于悲观的,大家可以想象下,OCV是片上误差,就代表一条path上有的cell delay大于标准值,那也有的cell delay会小于标准值。因此不能一味的加大或减小delay来模拟片上误差。
  如下图所示,对于下面这样一条buffer链,假设8个buffer处于不同的PVT条件下,OCV会将8个buffer都选用最差的条件来分析(同一derate参数),而AOCV则会采用不同的timing derate值来分析。
  
  AOCV有它专门的libary库,我们称为AOCV table。按照维度分为两种,一种是一位的只以stage count作为计算的表格,如下图所示:
  version: 2.0
  object_type: lib_cell
  object_spec: LIB/BUF1X
  rf_type: rise fall
  delay_type: cell
  derate_type: late
  path_type: data
  depth: 1 2 3 4 5
  distance:
  table:
  1.123 1.090 1.075 1.067 1.062
  depth就代表着stage count,从表格中我们可以看到随着;路径的深入,derate的效应会减小。那我们怎么来计算stage count呢?
  通常这个计算方法比较复杂,不同的电路情况对应着不同的count计算方式:如下timing path,我们将L1,L2,DFF1,U1,U2,U3的stage count设成6,而C1,C2,C3,C4的stage count需要设成4,这边需要说明的是B1,B2由于是common point,所以在计算stage count时需要忽略。
  
  另外一种是以distance和stage count混合组成的二维AOCV table. 它在计算derate时同时考虑了timing path的距离因素,当然这个虽然更加精确,但是会增加runtime,所以一般现在一维表格用的更多。
  version: 2.0
  object_type: lib_cell
  object_spec: LIB/BUF1X
  rf_type: rise fall
  delay_type: cell
  derate_type: late
  path_type: data
  depth: 1 2 3 4 5
  distance: 500 1000 1500 2000
  table:
  1.123 1.090 1.075 1.067 1.062
  1.124 1.091 1.076 1.068 1.063
  1.125 1.092 1.077 1.070 1.065
  1.126 1.094 1.079 1.072 1.067
举报

彭望琼

2021-2-1 11:22:00
  使用方法:
  set_analysis_mode -aocv true
  
  ######################以上内容转载自:https://www.sohu.com/a/237459990_99933533
  芯片在生产过程中,由于外界条件和生产条件的变化,比如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值
举报

胡楚翘

2021-2-1 11:22:09
  AOCV(Advanced on chip variation (先进的片上抖动))
  在传统OCV上引入了对路径长度和整个路径在物理上所跨越的距离的考虑。在实际设计中,通过对一条line中cell在不同的逻辑深度时的仿真,以及基于前后级在物理中不同距离来得到一个更精确的derate值来进行时序分析,而不是OCV传统的粗放式的统一的derate。[1]
  AOCV derate table:
  (1)path depth:基于cell在整条时序路径中所处的深度或者级数来考虑derate
  (2)path distance:基于路径中cell或net跨越的物理距离来给出相应的derate
举报

盛文凤

2021-2-1 11:23:07
  POCV
  POCV,又称SOCV(Statistical On Chip Variation),如下图所示,POCV将delay模拟成一个正态分布
  
  每个cell的delay最高概率出现在 u周围。整体落在
  
  区间内的概率为99.7%。[2]
  
  
  如果在.lib中提供了sigma的数值,则可以通过公式(1)算出,如果通过read_aocvm读取的POCV的参数文件(包含参数C),则可以通过公式(2)算出。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分