罗风 · 2021年03月31日

论 STA | STA之AOCV

今儿接着《绿蚁新醅酒,红泥小火炉:STA之OCV》来聊AOCV,AOCV全称:Advanced OCV,T家叫SBOCV,总是忍不住联想到傻逼OCV,实际上是:Stage Based OCV。

WeChat Image_20210331103601.jpg

为什么要引入AOCV

为了精确性,为了剔除悲观度。用set\_timing\_derate来设置OCV,对于一个固定的corner,只能对data/clock, cell/net, late/early分别设不同的值,由下图可知,这个值是个trade off的结果,在保证yield的前提下,尽量不那么悲观,但由于其『固定天性』,这个值既不能cover最悲观的部分,而对另一部分又过于悲观。

WeChat Image_20210331103604.jpg

OCV=Random component + Deterministic component, 对于随机部分,由于随机性,不可能一条path上的所有cell都同时悲观,它们之间的variation是可以相互抵消的。想象这样一个例子:一条由10个buffer组成的datapath,如果每个buffer的variation是6p,那10个buffer的variation就是60p,而实际上10个buffer整体的variation是远小于60p的。所以用单一的derate来模拟OCV是太过悲观的,而且随着工艺进步设计频率提高,这种悲观度已无法承受。于是在65nm引入AOCV的概念,40nm开始在timing sign-off中采用,28nm开始大量使用。

WeChat Image_20210331103607.jpg

什么是AOCV

AOCV是一种用伪统计(pseudo-statistical )来模拟variation的方法,相对于传统OCV更精确,它用于模拟random 和systematic variations:

Systematic variation:即Distance based AOCV,用于模拟global variation,根据芯片制造过程的统计特性,距离越远的cell之间相对的variation越大,所以用distance based AOCV来描述距离跟derate之间的关系,距离越大derate越大,这个距离是指一条timing path所在『物理范围』内对角线的长度。timing path的位置信息由SPEF提供,这要求抽SPEF时需要将坐标信息抽出,在STA中读SPEF时要把SPEF的坐标读入。

WeChat Image_20210331103610.jpg

Random variation:即Depth based AOCV,用于模拟Local variation,由于random variation相互抵消作用,derate随着路径深度的增加而减小。

WeChat Image_20210331103612.jpg

通常AOCV table有一维跟二维两种,一维table的index是depth,二维table的index是depth跟distance。对于每种类型的cell,foundry会针对rise/fall, late/early, data/clock分别提供一个table。

object\_type : lib\_cell

rf\_type : rise

delay\_type : cell

derate\_type : late

path\_type : data

object\_spec : 10nmlib/BUF\_X4

depth : 1 2 3 4 5

table: 1.183 1.145 1.122 1.109 1.0901

object\_type : lib\_cell

rf\_type : rise

delay\_type : cell

derate\_type : early

path\_type : data

object\_spec : 10nmlib/BUF\_X4

depth : 1 2 3 4 5

distance\_: 0 500 1000 1500

table: 1.123 1.090 1.075 1.067 1.062

      1.124 1.0911.076 1.068 1.063
      1.125 1.0921.077 1.070 1.065
      1.126 1.0941.079 1.072 1.067

如何使用AOCV做STA分析

分别从methodology跟tool来看这个问题。

WeChat Image_20210331103615.jpg

Methodology区别于OCV,AOCV的derate值是基于depth 或/和 distance的,所以首先需要得到depth 或/和 distance。这就要涉及到另一组概念,GBA跟PBA,限于runtime当今STA都起始于GBA分析,在GBA结果的基础上用PBA进一步过滤violation path,关于GBA跟PBA会单独聊,此处不做太多描述。AOCV的计算通常也分GAB跟PBA两步:

GBA AOCV:

  • 对于一个cell,其Depth取其所在所有timing path上的最小值;
  • 不考虑distance based OCV,即不计算distance的值;
  • 如果AOCV table是二维的,STA工具通常会选最后一行做GBA分析,以保证distance值最悲观。

WeChat Image_20210331103618.jpg

如上图,每个cell的Depth计算请参考下表:


CellsStage CountStage Path
C05C0-C1-C2-C5-RL1 or C0-C6-C7-C10-RC1
C1-C24C1-C2-C5-RL1
C3-C4-C44-RS-U1-U26C3-C4-C44-RS-U1-U2
C6-C73C6-C7-C10
C8-C92C8-C9

PBA AOCV:

  • 在GBA的基础上,针对用户指定的一组path重新计算timing,并重新计算该组path上每个cell的Depth;
  • 对于一个cell,其Depth对不同的path分别计算,分别取该cell所在path上的精确值;
  • 如果提供了distance basbed AOCV table,会根据SPEF中的坐标信息,计算对应path所在区域的对角线长度,即derate值从二维表格中得到。
  • PBA计算得到的值更精确,但需要特别特别特别长的runtime。

Tool:因为方法学上一致,在工具端,除了变量/命令命名方式不同,剥去这层外衣,里面都是一样雪白的肉体。此处仍以Tempus为例,来介绍工具端使用模型(use model)。



使能AOCV 分析:

  • setAnalysisMode –aocv true –analysisType onChipVariation

读入AOCV table:

  • Single corner: read\_lib -aocv my.aocv
  • MMMC: create\_library\_set -name mylib -timing my.lib -aocv my.aocv

AOCV相关变量设置:

列几个常用变量,至于每个变量用于什么用途,请自行查guide。这里需要特别说明的一点是:如果既读入了AOCV table又用set\_timing\_derate设了OCV,不同工具的行为有所差别,都有相应的变量控制。对于Tempus工具在计算最后的derate时会根据以下标红变量的不同设置,做不同计算。

timing\_aocv\_analysis\_mode

timing\_aocv\_derate\_mode

timing\_derate\_aocv\_reference\_point

timing\_derate\_ocv\_reference\_point

timing\_derate\_aocv\_dynamic\_delays

AOCV report:

report\_aocv\_derate

report\_timing -retime aocv/aocv\_path\_slew\_propagation

report\_timing -format { ... stage\_count aocv\_derateuser\_derate ...}

参考文献

Understanding Stage Count andDistance for Advanced OCV Analysis.pdf

Analysis with Advanced On-chip Variation (AOCV) derating.pdf

http://www.paripath.com/blog/characterization-blog/comparing-aocv-to-pocv

http://www.design4silicon.com/2016/03/ocv-and-aocv-advanced-on-chip-variations.html

作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/H4TnOOmgu\_Fi-JWjlWzO5A
作者微信公众号
捕获.PNG

相关文章推荐

更多IC设计技术干货请关注IC设计技术专栏。
推荐阅读
关注数
11209
内容数
1222
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息