罗风 · 2021年03月23日

论STA | POCV/SOCV 对lib 的要求

驴友们新年好,很久没更新关于STA 的内容了,2019年打算多花一些时间在STA 上,顺势也多写一些STA 的内容,为了承接,今天接着之前最后一次更新的STA 内容往下写,把这一小节的东西码完。最后一次STA 的更新是关于SOCV 的内容,因为SOCV 涉及到统计学概念,模型相对复杂,之前已有三篇文章铺垫,强烈建议大家在读本文前做一个回顾:《论STA:SOCV / POCV 开篇》《论STA | SOCV / POCV 之 variation》《论STA | SOCV / POCV 模型》。

WeChat Image_20210323103633.jpg

此处对前面的内容做几点总结:

  • 在芯片制造过程中的工艺偏差由global variation 和local variation 两部分组成。
  • 在集成电路设计实现中,global variation 用PVT 跟 RC-corner 来模拟;local variation 用 OCV/ AOCV/ SOCV 来模拟。
  • 在40nm 之前OCV 被广泛采用,但是OCV 对同一条path 上的所有cell 都设同一个derate 值,如果设的太严则过于悲观,如果设得太松又会导致过多的path 过于乐观,进入28nm 之后尤其是16nm 之后,OCV 模型越来越"力不从心",于是有了AOCV 模型。
  • AOCV 模型不再是一个简单的derate 值,而是跟cell 所在path 的逻辑级数和物理位置相关,AOCV table 通常是基于Monte-Carlo 模型仿真得到的(对此有兴趣的驴友可以研究一下Virtuoso Variety),它的index 是逻辑级数或distance. 但是AOCV 有两缺点,其一:AOCV derate 值跟cell 的输入transition 和输出load 无关,所以不能考虑这部分因素;其二,GBA 模式下计算得到的逻辑级数和distance 过于悲观,而PBA 模式下可以得到精确的逻辑级数和distance 但是runtime 又不可接受。于是又进一步引入了SOCV 。
  • SOCV 可以很好的解决精度和runtime 的问题,本质上,SOCV 是在某个特定PVT 下的SSTA, 即单参数SSTA, 它不再依赖于逻辑级数和distance, 所以也就避免了GBA 模式下计算得到的逻辑级数和distance 过于悲观;同时SOCV 模型考虑了输入transition 跟输出load 的影响,更贴合实际。
  • 做精确的SOCV 分析,需要特别的库支持,在库里要有针对每一个cell 每一条timing arc 的cell delay, output transition, timing check 的sigma table, table 的两个index 分别是输入transition 和输出load.

这个特别的库,就是本文的主题,即:LVF ( Liberty Validation Format ),

OpenSource Liberty Version 2013.12 开始支持LVF; 从2017 年开始,LTAB ( Liberty Advisory Board ) 批准了对LVF 的扩展,以提供先进的moment-based 模型。

传统LVF 中有对cell delay, output transiton, timing check 的ocv\_sigma\_* table, 这些值表示与相关NLDM表中包含的标称值的偏差,该值用1-sigma 表示。在表中用关键词 "sigma\_type" 来表示是用于early path 还是late path 的分析,但timing check variation 的table 是不分early 跟late 的。

WeChat Image_20210323103638.jpg

16nm 及以下的先进工艺结点和超低电压会产生强非高斯分布 (Strongly non-Gaussian ), 表现出均值偏移 ( mean-shift ) 和偏斜效应 ( skewness effects ). 于是从2017 年起新引入了3个moment-based 模型,用于对已有 ocv\_sigma\_* 模型的矫正。

WeChat Image_20210323103641.jpg

WeChat Image_20210323103909.jpg

这三个moment-based 分别是:mean-shift, Standard Deviation, Skewness.

  • Mean-shift:在表中用关键词ocv\_mean\_shift\_* 定义,表示表中的标称值与分布平均值之间的差异,其定义为:

WeChat Image_20210323103646.jpg

  • Standard Deviation: 在表中用ocv\_std\_dev\_* 定义,其定义为:

WeChat Image_20210323103650.png

  • Skewness: 在表中用ocv\_skewness\_* 定义,其定义为:

WeChat Image_20210323103654.png

在没有LVF 时,可以用AOCV table 抽取一个SOCV sigma 值用于简单非精确分析,除此之外对于SOCV 如果使用Cadence 工具也可以使用SOCV library format, 其格式如下:

WeChat Image_20210323103704.jpg

WeChat Image_20210323103909.jpg

今天内容到此为止,如果你觉得有用,请转发扩散,也欢迎一起探讨。

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

相关文章推荐

论STA: SOCV/POCV 开篇
述职场 | C 记三周年记

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