昨天发了《论STA | POCV/ SOCV 时序报告解析》后,有好学的朋友提到如下两点没有解释清楚:
- 表头,每个值的mean 跟sigma 如何计算得到?
- 读了SOCV 又设了timing derate 该如何解读?
在support.cadence.com 上正好有两篇对应文章,解释得简单明了,借用于此。
表头解析
从这个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 值
由如上的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. 其中每个值的计算为:
- 第九行,Arrival Time 即是Launch Clock Path + Launch Data Path 的Arrival Time;
- 第十行,Slack Time = Slack Mean - N * Slack sigma. 其中每个值的计算为:
对mean 跟Sigma 设了timing derate 的解析
如果要在SOCV 的基础上加更多的Derate 可以用命令set\_timing\_derate 来设置,通常有:
- 对cell 的mean 和sigma 值分别设置Derate, 在Timing report 中会显示在"User Derate" 一列,格式是mean : sigma, 设置示例:
- 对net 的mean 和sigma 值分别设置Derate, 在Timing report 中会显示在"User Derate" 一列,格式是mean : sigma, 设置示例:
- 对net 或 cell 设置incremental derate, 在Timing report 中会与"User Derate" 相加后呈现在"Total Derate" 一列,设置示例:
设置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;
作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/tEEVqijQnuMS0YuMVsvvjA
作者微信公众号
相关文章推荐
更多IC设计技术干货请关注IC设计技术专栏。