分享

Signoff 介绍——AOCV (SBOCV)

 mzsm 2022-06-22 发布于湖北

本公众号【读芯树:duxinshu_PD】主要介绍数字集成电路物理设计相关知识,才疏学浅,如有错误,欢迎指正交流学习。

这是集成电路物理设计的第五个系列【signoff】的第八篇文章,本篇文章主要介绍AOCV(SBOCV)相关内容

01

什么是AOCV (SBOCV)?

  • AOCV: Advanced On Chip Variation,Synopsys家叫法。

  • SBOCV: Stage Based/Stage Best On Chip Variation,Cadence家叫法。

  • AOCV是一种伪随机的统计方法,用来模拟variation (random and systematic variations),将derate值模拟为timing path的cell path depth和cell distance的函数。同一条timing path,不同的cell有不同的derate值,derate值一般通过一维或二维查找表得到。

图片

  • random variation (depth based AOCV: local variation):

    random variation由于其随机性,所以可以相互抵消,derate值随着cell path深度的增加而减小,对某一条path来说,cell path级数越多,其分布越接近于正态分布,整条path的 random variation相互抵消的越多,总体variation越小。

  • Systematic variation (distance based AOCV: global variation):

    在芯片制造的过程中,cell之间的距离越近,cell的特性越相似,variation越小,derate值越小;cell之间的距离越远,cell的特性偏差越大,variation越大,derate值越大。

  • Path Depth: 分别计算latch path和capture path的逻辑级数,需要注意的是,如果一个cell通过两条或者两条以上的path,则该cell取级数小的derate值。path depth对random variation进行建模。

图片

  • Distance: 包括cell distance和net distance,distance指的是cell或者net box的对角线距离。distance 对systematic variation进行建模。

图片

02


why AOCV?

  • Flat OCV的derate设置对setup timing过于悲观,而对hold timing又过于乐观。

  • 一般情况下,随着path depth增加, random variation会逐渐减小,这是因为random variation随着cell增加,不太可能所有的cell都偏向early或者late,即cell delay会相互抵消一部分。

  • Flat OCV一般适用于90nm以上的工艺,但在90nm一下工艺或者高频设计中,需要剔除掉部分悲观derate值,防止overdesign发生。

  • AOCV在65nm工艺中引入,可以很好的模拟variation。

03


AOCV Table

  • 一般有两种AOCV derate table: 一种是一维table,index为depth;一种是二维table,index为depath和distance。

  • 每一种cell一般都会有rise/fall/late/early/data/clock六种table。

  • derate value increase with distance, derate value decrease with path depth。

图片

图片

图片

04


如何计算cell depth和distance?

  • cell depth的计算:对某一个cell来说,其depth取所在所有timing path的最小值,这是因为需要考虑derate最差的情况,depth越小,derate值越差。

  • 例如:如下图所示,对于C1来说,有两条timing path,一条为C1->C2->C5->RL1共4级,另一条为C1->C2->C3->C4->C44->RS共6级,所以C1的级数为4。

  • PBA AOCV:重新计算timing path上的每个cell的depth,对同一cell的不同timing path使用不同的derate值,这会得到更精确的derate值,但会显著增加run time。

图片

图片

图片

  • distance的计算:通过cell或者net的box来计算distance。

    cell max distance (Cell Dmax): timing path内所有cell的inner box的对角线距离。

    net max distance (Net Dmax):timing path内所有net的outer box的对角线距离。

图片

05


AOVC Timing Analysis

图片

06


EDA Setting

  • Innovus cmd:

setAnalysisMode -aocv true -analysisType onChipVariationset_global timing_aocv_analysis_mode separate_data_clock*set_global timing_enable_aocv_slack_based trueset_global timing_aocv_slack_threshold 0.0
create_library_set -name mylib -timing design.lib -aocv design.aocvm
report_aocv_deratereport_timing -retime aocv/aocv_path_slew_propagationreport_timing -format {... stage_count aocv_derate user_derate}
  • ICC2 cmd:

set timing_aocvm_enable_analysis trueset timing_aocvm_analysis_mode separate_data_and_clock_metrics*read_aocvm <sbocv_file>set_fast_pba_analysis_options -num_endpoints 1000apply_fast_pba_analysis
  • PrimeTime cmd:

set timing_aocvm_enable_analysis     #enable AOCV analysisset timing_aocvm_analysis_mode combined_launch_capture_depth #stage counting modeset timing_aocvm_analysis_mode separate_data_clock_metrics    #stage counting mode (all under-drive corners)report_timing -pba_mode path #PBA timing reportset delay_calc_waveform_analysis_mode true #enable waveform propagation
  • Tempus cmd:

set_analysis_mode -aocv -analysisType onChipVariation -cppr both    #enable AOCV analysisset_global timing_aocvm_analysis_mode combined_launch_capture  #stage counting modeset_global timing_aocvm_analysis_mode separate_data_clock    #stage counting mode (all under-drive corners)report_timing -retime aocv_path_slew_propagation     #PBA timing reportset_delay_cal_mode -equivalent_waveform_model_type ecsm -equivalent_waveform_model_propagation true     #enable waveform propagation

07


参考文献

1,Fusion Compiler/ IC Compiler 2 user guide
2,Innovus user guide
3,PrimeTime user guide
4,Tempus user guide

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多