罗风 · 2021年04月02日

论STA | POCV/ SOCV 之分析

先把SOCV 的坑填完,打算分三篇写完:SOCV 分析、SOCV timing report 解读、SOCV 其它,今天先写SOCV 分析,以Innovus/ Tempus 的使用为例,概述如何读入SOCV 及做SOCV 分析需要的相关设置。建议:回顾前面的内容:

论STA:SOCV / POCV 开篇

论STA | SOCV / POCV 之 variation

论STA | SOCV / POCV 模型

论STA | POCV/SOCV 对lib 的要求

Library reading

目前,SOCV 可以三种形式呈现:

  • Timing lib 中带有LVF data, T 家先进工艺的库大多以这种形式呈现,LVF data 集成在timing lib 中,如下图所示,每个timing arc 都有 early/ late 的 ocv\_sigma* 和LVF moment 表格,表格的纵坐标是输入pin 的slew, 表格的横坐标是输出pin 的load.
  • 独立的LVF data,  其内容同timing lib 中集成的LVF data 一样。
  • 没有SOCV data, 需要基于AOCV 的table 抽取SOCV data.

WeChat Image_20210402095124.jpg

对于LVF 的三种呈现形式,Innovus 跟Tempus 在single mode single corner (SMSC) 跟multi mode multi corner (MMMC) 读入时有些许差别。

WeChat Image_20210402095148.jpg

对于不同的lib 需要的注意的点有:

  • 先进工艺的LVF libraries 包含两部分内容:
  • Early/Late sigma LVF, 在lib 中以ocv\_sigma* 表示。
  • LVF 会分别有delay, transtion, constraint 的Early/Late sigma 值,可以通过如下命令选择当前分析使用哪些sigma 值:

WeChat Image_20210402095201.png

  • Advanced moments based models, moment Groups 有一大组变量,可以回顾《论STA | POCV/SOCV 对lib 的要求》。
  • 可以用如下命令来设置,是否使用LVF 中的moments 数据:

WeChat Image_20210402095212.jpg

  • 如果没有SOCV LVF, 可以用AOCV lib 抽取一个data 来模拟SOCV. 这种flow 只适用于flow tunning, 因为精度不够,不足以用于sign off. 因为AOCV 只有对delay 的variation, 所以无法从AOCV lib 中抽出transtion 跟constraints 的variation.
  • 要从AOCV lib 里抽取SOCV 在Innovus 跟Tempus 中必须设置如下变量:

set timing\_library\_infer\_socv\_from\_aocv true

  • 在AOCV 跟SOCV 中经常提到sigma 的概念,回顾《论STA | SOCV / POCV 模型》可知,对于正态分布,随机变量落在-1σ \~ 1σ <即1 sigma >间的概率是68.27%,落在-2σ \~ 2σ <即2 sigma >间的概率是95.45%,落在-3σ \~ 3σ <即3 sigma > 间的概率是99.73%. 由此可知3 sigma 可以保证99.73 的情况都可以被覆盖到,所以当前最先进工艺仍用3 sigma 来卡。在用AOCV 抽SOCV 时,可以用如下变量来控制用几sigma, 该值默认是3.

timing\_library\_scale\_aocv\_to\_socv\_to\_n\_sigma

  • 除了随机variation 还可以读入Spatial derating file 来模拟distance axis based variation. 在早一点的工艺库中会把depth based 的AOCV variation 跟spatial based 的AOCV variation 分成两张table, 但在新工艺库中,通常会将二者合成一张表。

Innovus/ Tempus 中的变量设置

Innovus 跟Tempus 中SOCV 的相关设置如下表所示。

WeChat Image_20210402095240.jpg

WeChat Image_20210402095243.jpg

如果在同一个Design 中,对某个corner 想用flat OCV, 而其他corner 用SOCV; 假设SOCV LVF lib 已在view Definition 中定义好,可以通过如下方式将某个Corner 的SOCV reset 掉,用Flat OCV 的值代替:

  • enable SOCV;
  • 设置Flat OCV, Sigma variation Derate;
  • 将要用flat OCV Corner 的sigma Variation reset 掉,此处为delay\_corner dc1.
  • 定义analysis\_view.

WeChat Image_20210402095259.jpg

对于如上设置,View1 跟View2 的timing report 分别为:

  • View1 的sigma 为0,用flat OCV 进行分析。

WeChat Image_20210402095310.jpg

  • View2 用SOCV data 进行分析:

WeChat Image_20210402095319.jpg

如何理解SOCV 的timing report 且听下会分解。

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

相关文章推荐

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