罗风 · 2021年04月07日

论STA | SOCV timing report 进一步解析

昨天发了《论STA | POCV/ SOCV 时序报告解析》后,有好学的朋友提到如下两点没有解释清楚:

  • 表头,每个值的mean 跟sigma 如何计算得到?
  • 读了SOCV 又设了timing derate 该如何解读?

在support.cadence.com 上正好有两篇对应文章,解释得简单明了,借用于此。

表头解析

WeChat Image_20210407103625.jpg

从这个timing report 的表头,可分别得到:

  • 第一行,可知当前是setup check, endpoint 的clock pin, 是否满足timing 需求;
  • 第二行,第三行,分别列出startpoint, endpoint, 跟对应的launch clock, capture clock, 以及对应的clock edge;
  • 第四行,给出当前path 所属的clock group;
  • 第五行,Other End Arrival time 就是capture clock path 的Arrival time, 计算方式同launch path 的Arrival time 类似,区别是对于setup check, capture clock path arrival time = mean - N * sigma.
  • 第六行,Phase shift, 如果无multi cycle 即为当前clock 的周期;
  • 第七行,CPPR 不再是简单的Launch clock path common point arrival time - Capture clock path common point arrival time. 在Innovus/ Tempus 中用report\_cppr 可得到对应的mean 跟sigma 值

WeChat Image_20210407103635.jpg

由如上的report 可得:

  • 当前时钟上升沿跟下降沿分别对应的Late/ Ealry 的Mean 和 Sigma.
  • 对应到本例,是时钟上升沿check, 所对应的CPPR mean 在report\_cppr 中用Pessimism Mean 表示,其计算方式是:

Late Mean - Early Mean =

0.279 - 0.229 = 0.51

  • 同样可得到上升沿对应的CPPR sigma, 即report\_cppr 中的Pessimism Sigma, 其计算方式为:

sqr (Late Sigma ^ 2 + Early Sigma ^ 2) =

sqr (0.023 ^ 2 + 0.019 ^2) = 0.030

  • timing report 中的CPPR 在report\_cppr 中用Pessimism 表示,其计算方式为:

Pessimism Mean + N * Pessimism Sigma =

0.51 + 3*0.030 = 0.141

再回到timing report:

  • 第八行,Required Time = Req Time Mean - N * Req Time Sigma. 其中每个值的计算为:

WeChat Image_20210407103647.png

WeChat Image_20210407103649.jpg

  • 第九行,Arrival Time 即是Launch Clock Path + Launch Data Path 的Arrival Time;
  • 第十行,Slack Time = Slack Mean - N * Slack sigma. 其中每个值的计算为:

WeChat Image_20210407103706.jpg

WeChat Image_20210407103708.png

对mean 跟Sigma 设了timing derate 的解析

如果要在SOCV 的基础上加更多的Derate 可以用命令set\_timing\_derate 来设置,通常有:

  • 对cell 的mean 和sigma 值分别设置Derate, 在Timing report 中会显示在"User Derate" 一列,格式是mean : sigma, 设置示例:

WeChat Image_20210407103735.png

  • 对net 的mean 和sigma 值分别设置Derate, 在Timing report 中会显示在"User Derate" 一列,格式是mean : sigma, 设置示例:

WeChat Image_20210407103745.png

  • 对net 或 cell 设置incremental derate, 在Timing report 中会与"User Derate" 相加后呈现在"Total Derate" 一列,设置示例:

WeChat Image_20210407103757.png

设置timing derate 的timing report 如下所示,在该例中,Total mean/ sigma derate, Delay Mean, Delay sigma 的计算分别为,其他的计算跟不带set\_timing\_derate 的一致。

  • Total mean Derate = User mean Derate + incr\_adjust;
  • Total sigma Derate = User sigma Derate;
  • Delay mean = Total mean Derate * Delay mean from lib;
  • Delay sigma = Total sigma Derate * Delay sigam from lib;

WeChat Image_20210407103810.jpg

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

相关文章推荐

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