AOCV&SBOCV、AOCV table

AOCV(Advanced OCV)&SBOCV(Stage Based OCV)—更精确,剔除悲观度

   BCWC:即为best case corner和worst case corner,分别代表两种不同的PVT环境。BC时,timing-arc的时间最短,WC时,timing-arc的时间最长。OCV模式,AOCV模式,POCV模式,LVF模式均是在不同PVT(不同corner)的基础上添加derate。

   OCV使用set_timing_derate来设置,只能对path type:data/clock, delay type:cell/net, derate type:late/early分别设不同的值(过度悲观了,delay随机分布符合高斯分布曲线,normal delay cell多,decrease delay cell和increase delay cell数量少)。

 set_timing_derate    # Specify constant delay derating factor
   -early                 (Specify early derate factor)
   -late                  (Specify late derate factor)
   [-rise]                (Specify rise derate factor)
   [-fall]                (Specify fall derate factor)
   [-data]                (Specify derate factor for data paths only)
   [-clock]               (Specify derate factor is for clock paths only)
   [-cell_delay]          (Specify derate factor for cell delays only)
   [-cell_check]          (Specify derate factor for cell timing checks only)
   [-net_delay]           (Specify derate factor for net delays only)
   [-static]              (Specify derate factor for non-delta delays only)
   [-dynamic]             (Specify derate factor for delta delays only)
   [-scalar]              (Specify derate factor for deterministic delays only)
   [-aocvm_guardband]     (Specify an AOCVM guardband derate factor)
   [-pocvm_guardband]     (Specify a POCVM guardband derate factor)
   [-pocvm_subtract_sigma_factor_from_nominal]
                          (Specify a POCVM sigma factor used to subtract sigma from nominal)
   [-pocvm_coefficient_scale_factor]
                          (Specify a POCVM coefficient scale factor)
   [-increment]           (Specify an incremental derate factor)
   derate_value           (Derate factor)
   [object_list]          (List of cells, library cells or nets)

   由于随机性,不可能一条path上的所有cell都同时悲观,它们之间的**random variation(stage base OCV)**是可以相互抵消的。用单一的derate来模拟OCV是太过悲观的,而且随着工艺进步设计频率提高,这种悲观度已无法承受。于是在65nm引入AOCV的概念,40nm开始在timing sign-off中采用,28nm开始大量使用。

   AOCV是一种用伪统计(pseudo-statistical )来模拟variation的方法,相对于传统OCV更精确,它用于模拟random 和systematic variations:

在这里插入图片描述


Random variation(Depth/Stage based AOCV)

  • Models reduced random variation effects of paths with increasing gate stages
  • Depth based AOCV,用于模拟Local variation,由于random variation相互抵消作用,derate随着路径深度的增加变得不那么悲观(接近derate factor = 1)
  • 从CPPR common point 开始算起
    在这里插入图片描述

Systematic variation(Distance based AOCV)

  • Models increased systematic variation over longer paths

  • 根据芯片制造过程的统计特性,距离越远的cell之间相对的variation越大,所以用distance based AOCV来描述距离跟derate之间的关系,距离越大derate越悲观,这个距离是指一条timing path所在物理范围对角线的长度

  • timing path的位置信息由SPEF提供,这要求抽SPEF时需要将坐标信息抽出,在STA中读SPEF时要把SPEF的坐标读入。


一维AOCV table

  • 一维table的index是depth/stage
  • It is possible to have a 1-D distance based derating table, but the AOCV flow requires at least a 1-D stage based table
object_type : lib_cell
rf_type : rise
delay_type : cell
derate_type : late         
path_type : data
object_spec : 10nmlib/BUF_X4
depth : 1 2 3 4 5
table: 1.183 1.145 1.122 1.109 1.0901

每个cell查表对应AOCV derate

二维AOCV table

object_type : lib_cell
rf_type : rise
delay_type : cell
derate_type : early
path_type : data
object_spec : 10nmlib/BUF_X4
depth : 1 2 3 4 5
distance: 0 500 1000 1500
table: 1.123 1.090 1.075 1.067 1.062
       1.124 1.0911.076 1.068 1.063
       1.125 1.0921.077 1.070 1.065
       1.126 1.0941.079 1.072 1.067
  • 虽然更加精确,但是会增加runtime
  • 二维table的index是depth跟distance,对于每种类型的cell,foundry会针对rf_type:rise/fall, derate_type:late/early , path type:data/clock分别提供一个table
    在这里插入图片描述

Table Group tag

The Apply- tag can be used with either a Net or Cell descriptor to designate the table for use in derating only net delays or cell delays respectively. If the Apply- tag is not specified, then the table will be used for both net and cell delay derating.

  • To designate a table for net-based derating only, you should specify:Apply-Net
  • To designate a table for cell-based derating only - use: Apply-Cell

Table Voltage

Table Voltage specifies what voltage the current table is characterized for. You may specify multiple tables for each voltage of interest, or allow the timer to interpolate between tables for intermediate voltages

  • To specify a voltage of 1.5Volts for the derating table, use a specification of:
    • Voltage 1.5

Table ID tag

The Table ID is a tag made up of up to three sub-tags, which can be used to add further specificity to the derating table to control early vs. late, rise vs. fall, and clock path vs. data path.

[Early | Late]

Each table is minimally required to have either an Early or Late tag. It is further required that each object subject to AOCV derating have both an Early and a Late derating table. AOCV derating of only Early or only Late paths is not allowed. It is, however, legal to using derating values of 1.0 for the tables if that effect is desired.

[Rise | Fall]

By default, an Early or Late derating table is used to supply derating for both rising and falling delays. If unique derating for each transition is desired, the -Rise or -Fall tag can be added to the Table ID to tighten the specification.

  • To configure a table for only rising delays on early paths, you should use:

    • Early-Rise
  • To configure a table for falling delays on late timing paths - specify:

    • Late-Fall
[Clock | Data]

Derating tables can also be configured so that they are specific to clock path delays or data path delays. This can be achieved by adding a final -Clock or -Data tag to the Table ID string.

The complete set of possible Table IDs is:

  • derate type 必须设置 (optial–rf_type、path type)

In the case where there is an overlap in the table specification, the derating table with the tightest specification is used.

在这里插入图片描述

Object ID

You can further control the application of the AOCV derating tables to specific timing libraries or library cell groups.

  • To specify a derating table to be used for a specific library:
    • Cell stdcell/*
  • To specify derating for a specfic library cell:
    • Cell stdcell/BUF1S
  • To specify a common derate table for a group of cells with similar drive strength:
    • Cell stdcell/*1S
    • Cell stdcell/*4S
  • To specify a common derate factor for a group of libraries at the same corner:
    • Cell * -P1V15T120/*

GBA/PBA AOCV

   区别于OCV,AOCV的derate值是基于depth和distance的,所以首先需要得到depth和distance。这就要涉及到另一组概念,GBA跟PBA,限于runtime当今STA都起始于GBA(过于悲观)分析,在GBA结果的基础上用PBA(准确但耗时)进一步过滤violation path

GBA(Graph-Based Mode) AOCV

  • 对于一个cell,其Depth取其所在所有timing path上的最小值(stage越小越悲观) (pessimistic)
    • 对于一维AOCV table,不考虑distance based OCV,即不计算distance的值 (pessimistic)
    • 对于二维AOCV table,STA工具通常会选最后一行做GBA分析,以保证distance值最悲观(distance越大,cell距离远,就越悲观)

Simple graph-based Example:

  • Data path from RS to RT2 has 5 stages

    • – U2, U3, U4 use a data stage count of 5
  • RS and U1 are also on shorter path to RT1

    • – RS, U1, U5 use a data stage count of 3
  • RS和U1存在两条timing path,stage分别是3和5,由于是GBA,trade off 后选择最悲观的stage=3

在这里插入图片描述


  • 如下timing path,我们将L1,L2,DFF1,U1,U2,U3的stage count设成6,而C1,C2,C3,C4的stage count需要设成4,这边需要说明的是B1,B2由于是common point,所以在计算stage count时需要忽略(OCV时有CPPR)。

在这里插入图片描述


AOCV-Graph Based - Effective Stage Counting

Clock path stage counts are with respect to the CPPR common point and the last clock branch points before the registers

  • 选择所在timing path上stage最少的path(pessimistic),作为cell的stage path
    在这里插入图片描述
    在这里插入图片描述

AOCV Derating Table

The AOCV format allows a derating table specification that is 1 or 2-dimensional - the possible axes being Distance - the bounding box diagonal of that path, and Stage -the stage count depth of the path. Although AOCV graph-based (AOCV-GB) only supports stage-based derating, you may specify either a 1-D stage-based table, or a 2-D Stage x Distance table.

Example of a derating table with 4 Distance indices and 5 Stage indices:

  • Distance: List of distance (real) values specified in microns, increasing in magnitude (一条timing path所处物理范围内的对角线距离)
  • Stage: List of integer values representing stage depth, increasing in magnitude
    在这里插入图片描述
  • 超出index范围怎么处理?
    • In the case where the stage or distance lookup value is outside of the range of the table -either smaller or larger, the system will use the last bound entry point.

Examples of Cadence AOCV Derating Library

This example shows a table that will be used for derating cell delay arcs for devices used on the clock path for early delays. All cells matching *D1 in the stdcellwcl library will utilize this table data. For an early derating table such as this, you can see that the derating factors are monotonically increasing toward 1.0 as the depth of the path increases

  • 对于early derate,cell path stage 越大去除的悲观越多,越接近derate factor=1

在这里插入图片描述


2-D derating table

This example shows a 2-D derating table that will be applied to both nets and cells for all early data paths - i.e for the data path of Hold type timing checks:

  • cell path stage 越大,derate factor 去除的悲观多,接近于1
    • 对于early derate,stage 越大,derate factor 越大
    • 对于late derate,stage 越大,derate factor 越小
  • distance 越大,derate factor越悲观
    • 对于early derate,distance 越大,derate factor 越小
    • 对于late derate,distance 越大,derate factor 越大

在这里插入图片描述


Configuring AOCV Analysis

setAnalysisMode –aocv true –analysisType onChipVariation

Min/Max Configuration

Min/Max is the default, two-corner, single-mode operation of both EDI and ETS.
Encounter Digital Implementation (EDI) System
Encounter Timing System (ETS)
在这里插入图片描述

MMMC Configuration(viewdefination.tcl)

In an MMMC environment, AOCV libraries are specified in the same manner as Liberty timing libraries - by configuring them in the MMMC library_set object using either the create_library_set or update_library_set commands. These will later be incorporated(合并) as part of an MMMC delay corner.

AOCV libraries should only contain data applicable for one delay corner. The same AOCV library may be applied to multiple library sets if desired:

create_library_set -name libsSlow -timing slow.lib -aocv test.aocv
create_library_set -name libsFast -timing fast.lib -aocv test.aocv
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值