POCV/ SOCV 时序报告解析

POCV/ SOCV 时序报告解析1

如下所示,是一个列出了mean 跟sigma 值的时序报告,要读懂SOCV 的时序报告,需要搞清楚:

  • 当前cell 的delay = Delay mean + N * Delay sigma;
  • 当前cell 的Transition = Slew mean + N * Slew sigma;
  • 其中:
    • Delay mean, Delay sigma, Slew mean, Slew sigma 都是从library 中读出的值;
    • N 就是通常所说的『几sigma』由统计学特性决定,目前常用的N=3 即常说的3-sigma.

在这里插入图片描述

  • Arrival delay 的计算为:

    • Arrival Delay = Arrival Mean + N * Arrival Sigma
      • Arrival Mean = Pre-Arrival Mean + Delay mean(比如0.5243+0.0245=0.5488)
      • Arrival Sigma = sqr ( Pre-Arrival Sigma ^ 2 + Delay Sigma ^ 2)-------RSS, Root-Sum Square
  • 结合上例,计算buff_4_2/Z 的Arrival Delay:

  • 从lib 中可得buff_4_2 falling edge 的:

    • Delay mean = 0.02450;

    • Delay sigma = 0.00119;

    • 到buff_4_1 的pre-Arrival Mean = 0.52430;

      • 所以可得,到 buff_4_2/Z 的Arrival mean= 0.52430 + 0.02450 = 0.54880
    • 到buff_4_1 的Pre-Arrival Sigma= 0.00118;

      • 所以可得,到 buff_4_2/Z 的Arrival sigma= sqr (0.00118 ^ 2 + 0.00119 ^ 2)= 0.00168;
  • 所以可得,到buff_4_2/Z 的Arrival delay 为:

  • Arrival delay = Arrival mean + N * Arrival sigma = 0.54880 + 3*0.00168 = 0.55384

  • 示例中,buff_4_2/Z 的arrival delay 值为0.55383, 是因为工具在计算时是按照浮点数位宽计算的,最后显示在时序报告中的值做过四舍五入。

  • 对于cell delay计算和OCV、AOCV不同,这里的cell delay是反推值


POCV/ SOCV 时序报告解析2(PT)

在这里插入图片描述
注意cell delay(Incr_Value)是反推得到的:根据当前Point上Path的Delay Value减去上个Point上Path的Delay value值得到的。

  • Incr

    • Mean:平均值,也就是高斯分布中的μ值(它很关键)
    • Sensit:全称是sensitivity,也就是1个Sigma的值;
    • Corner: Sigma边界的最差值,比如Setup的话就是Mean+3*Sensit,如果是Hold的话就是 Mean- 3*Sensit。(具体几个是可以设置的),Delay很大并不会导致整个Path的Delay增加很多,比如b3 Cell的delay是Corner值是7ns,但是对于整个Path的贡献delay其实并没有那么大,只有2.82ns(Value值)
    • Path delay value = Path mean +/- (3 * Path sensit)。对于Setup(max delay)就是+,对于Hold(min delay)就是-。
  • Path

    • Path mean其实就是每个Point Incr的Mean的累加
    • Path sensit是每个Point sensit的平方和根(RSS, Root-Sum Square)值
    • 有了Path的value值就可以反推得到前面所说的每一级的delay “Value”了

在这里插入图片描述
在这里插入图片描述


POCV/ SOCV 时序报告解析3 (Innovous/Tempus)

在这里插入图片描述
在这里插入图片描述

  • 第一行,可知当前是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. (对于setup derate check,launch path变大,capture path变小)
  • 第六行,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.

    • 对应到本例,是时钟上升沿 rise 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

  • 第八行,对于setup check,让require time (capture path)变小,arrival time (launch path)变大
    • Required Time = Req Time Mean - N * Req Time Sigma. 其中每个值的计算为:
      在这里插入图片描述
      在这里插入图片描述

  • 第九行,Arrival Time 即是Launch Clock Path + Launch Data Path 的Arrival Time(launch path)

  • 第十行,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, 设置示例:
set_timing_derate 1.2 INV3-mean-cell_delay
set_timing_derate 1.1 INV3-sigma-cell_delay
  • net 的mean 和sigma 值分别设置Derate, 在Timing report 中会显示在"User Derate" 一列,格式是mean : sigma, 设置示例:
set_timing_derate 1.5 X8-mean-net_delay
set_timing_derate 2.0 X8-sigma-net_delay
  • 对net 或 cell 设置incremental derate, 在Timing report 中会与"User Derate" 相加后呈现在**“Total Derate”** 一列,设置示例:
set_timing_derate 1.8 INV3-incremental_adjust

在这里插入图片描述

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

  • Total mean Derate = User mean Derate + incr_adjust=1.2+1.8=3
  • Total sigma Derate = User sigma Derate+ incr_adjust(这里是0)=1.1 +0 =1.1
  • Delay mean = Total mean Derate * Delay mean from lib;
  • Delay sigma = Total sigma Derate * Delay sigma from lib;

Reference:陌上风骑驴看IC https://cloud.tencent.com/developer/article/1611170

  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: POCV和AOCV的区别是,POCV(按照类别划分的交叉验证)把数据集分成若干个类别,每个类别作为训练集的一部分,而AOCV(按照时间划分的交叉验证)把数据集分成若干个时间段,每个时间段作为训练集的一部分。 ### 回答2: POCV和AOCV是芯片设计领域中两种不同的变量延迟计算方法。 POCV全称为Process of Corner Variation,即过程角变异。它是一种以温度、电压、工艺因素为依据,结合流程角和成尺度均值偏差来计算芯片延迟的方法。POCV将芯片的温度和电压分别设置为高、低两个极端值,并结合芯片制造过程中的偏差因素,计算在不同条件下芯片电路的延迟变化。这种方法能整体考虑到成尺度变异和工艺角变异对芯片性能的影响,提供较为准确的延迟预测结果。 AOCV全称为Advanced On-Chip Variation,即先进芯片内部变异。与POCV不同,AOCV不考虑芯片制造过程中的偏差因素,而是根据芯片设计层面的变异因素来计算芯片的延迟。AOCV使用以网表片段为单位的统计方法,通过对芯片各部分的电路元件、连线、布线等进行建模和分析,计算芯片在不同情况下的延迟变化。AOCV可以更加直观地分析设计上的问题,提供针对性的优化和改进方案。 两种方法各有优劣。POCV考虑到了更多制造过程中的变异因素,结果更为准确,但计算量较大,适合用于芯片的整体设计和验证。AOCV则更注重于设计层面的优化,计算速度较快,更适合用于芯片的局部分析和优化。 综上所述,POCV和AOCV是两种不同的延迟计算方法,分别从制造过程和设计层面入手,提供了不同粒度和准确度的延迟分析结果,适用于不同的芯片设计和验证场景。 ### 回答3: POCV(Process of Care Value)和AOCV(Average Out-of-Pocket Cost)是衡量医疗保健的两个指标,它们之间存在一些区别。 首先,POCV是一个评估医疗保健效果的指标,它关注的是医疗保健所提供的价值。POCV考虑的是患者在整个治疗过程中所接受的医疗服务的全部费用,包括药品、检查、手术、康复等方面。POCV的目标是通过提供高效、高质量的医疗服务来改善患者的健康状况。 相比之下,AOCV是患者个人承担的医疗费用的平均值。它涉及患者在医疗保健过程中需要支付的费用,包括自付款、共同支付和共保支付等。AOCV旨在评估医疗费用对个人经济负担的影响,它可以帮助患者选择经济负担更轻的医疗方案。 换句话说,POCV关注医疗保健的整体效果和价值,而AOCV则关注患者个人承担的医疗费用。POCV更注重整个医疗过程中的效果和质量,而AOCV则更注重个人的财务情况和支付压力。 综上所述,POCV和AOCV是两个不同的指标,其中POCV评估医疗保健的价值和效果,而AOCV评估个人承担的医疗费用。两者在评估医疗保健时有不同的侧重点,但都对改善患者的医疗保健体验和经济负担具有重要意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值