STA之AOCV_diedai7174的博客-程序员宅基地

技术标签: runtime  

为什么要引入AOCV


为了精确性,为了剔除悲观度。用set_timing_derate来设置OCV,对于一个固定的corner,只能对data/clock, cell/net, late/early分别设不同的值,由下图可知,这个值是个trade off的结果,在保证yield的前提下,尽量不那么悲观,但由于其『固定天性』,这个值既不能cover最悲观的部分,而对另一部分又过于悲观。

什么是AOCV


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

Systematic variation:即Distance based AOCV,用于模拟global variation,根据芯片制造过程的统计特性,距离越远的cell之间相对的variation越大,所以用distance based AOCV来描述距离跟derate之间的关系,距离越大derate越大,这个距离是指一条timing path所在『物理范围』内对角线的长度。timing path的位置信息由SPEF提供,这要求抽SPEF时需要将坐标信息抽出,在STA中读SPEF时要把SPEF的坐标读入。

 

 Random variation:即Depth based AOCV,用于模拟Local variation,由于random variation相互抵消作用,derate随着路径深度的增加而减小。

 

通常AOCV table有一维跟二维两种,一维table的index是depth,二维table的index是depth跟distance。对于每种类型的cell,foundry会针对rise/fall, late/early, data/clock分别提供一个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

 

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

 

如何使用AOCV做STA分析

BA AOCV:

  • 对于一个cell,其Depth取其所在所有timing path上的最小值;

  • 不考虑distance based OCV,即不计算distance的值;

  • 如果AOCV table是二维的,STA工具通常会选最后一行做GBA分析,以保证distance值最悲观。

  • PBA AOCV:

    • 在GBA的基础上,针对用户指定的一组path重新计算timing,并重新计算该组path上每个cell的Depth;

    • 对于一个cell,其Depth对不同的path分别计算,分别取该cell所在path上的精确值;

    • 如果提供了distance basbed AOCV table,会根据SPEF中的坐标信息,计算对应path所在区域的对角线长度,即derate值从二维表格中得到。

    • PBA计算得到的值更精确,但需要特别特别特别长的runtime。

 

Tool:因为方法学上一致,在工具端,除了变量/命令命名方式不同,剥去这层外衣,里面都是一样雪白的肉体。此处仍以Tempus为例,来介绍工具端使用模型(use model)。

使能AOCV 分析:

  • setAnalysisMode –aocv true –analysisType onChipVariation

读入AOCV table:

  • Single corner: read_lib -aocv my.aocv

  • MMMC: create_library_set -name mylib -timing my.lib -aocv my.aocv

AOCV相关变量设置:

列几个常用变量,至于每个变量用于什么用途,请自行查guide。这里需要特别说明的一点是:如果既读入了AOCV table又用set_timing_derate设了OCV,不同工具的行为有所差别,都有相应的变量控制。对于Tempus工具在计算最后的derate时会根据以下标红变量的不同设置,做不同计算。

timing_aocv_analysis_mode

timing_aocv_derate_mode 

timing_derate_aocv_reference_point 

timing_derate_ocv_reference_point

timing_derate_aocv_dynamic_delays

AOCV report:

report_aocv_derate

report_timing -retime aocv/aocv_path_slew_propagation

report_timing -format { ... stage_count aocv_derateuser_derate ...}

转载于:https://www.cnblogs.com/lelin/p/11392051.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/diedai7174/article/details/101205180

智能推荐

The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone错误的解决办法【..._weixin_34352005的博客-程序员宅基地

---恢复内容开始---The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone错误的解决办法【已解决】学习mybatis时遇到一个错误,报错信息如下:org.apache.ibatis.exceptions.PersistenceException: ### E...

分布检测-seaborn直观看正态分布的峰度和偏度_Jumay0612的博客-程序员宅基地_seaborn 正态分布

峰度和偏度偏度和峰度如何影响您的分布偏度(skewness)和峰度(kurtosis)摘要偏度Skewness定义中包括正态分布(偏度=0),右偏分布(也叫正偏分布,其偏度>0),左偏分布(也叫负偏分布,其偏度<0)峰度Kurtosis包括正态分布(峰度值=3),厚尾(峰度值>3),瘦尾(峰度值<3)型测试我们随机模拟一组正态分布数据,然后用seaborn图像...

get方法和load方法的区别_dreamer_96的博客-程序员宅基地_get和load

get和load的区别1、load方法会首先在缓存中按照id查询对应的PO对象,如果缓存中有这个PO对象则直接返回;如果没有则返回一个代理对象,并不立即执行SQL查询[这种查询方式叫做延迟加载],当访问非键属性时才执行查询。要求当需要执行查询时对应的session不能关闭,否则get方法会首先在缓存中按照id查询对应的PO对象,如果缓存中这个PO对象则直接返回;如果没有则立即查询数据库,返回具体的...

HaaS100简单体验_duanbixing的博客-程序员宅基地

由于项目需要,需要一个能连接5Gwifi的芯片,在网上搜了一下就发现了HaaS100和RTL8720这俩。抱着试试看的心理两个板子都买了。HaaS100据说是阿里出的开发板,而且喊出了简单开发的口号。拿到板子,做工确实很精美。随即就开始写代码,尝试运行一下。但是这里寡人发现了一个小问题,HaaS100有很多文档里提到了cli,但是我在使用过程中并没有发现,而且串口输出的信息嗷嗷的多啊,输入cli的命令也不好使,是不是我漏掉了哪里呢?另外一个小问题就是烧写代码的时候一般都要重启好几

sqoop导入/导出_drl_blogs的博客-程序员宅基地

导入到HDFS全部导入sqoop import \--connect jdbc:mysql://hadoop01:3306/test1 \--username root \--password 1234 \--table students \--target-dir /user/test1 \--delete-target-dir \--num-mappers 1 \--...

随便推点

AAC ADTS格式分析_doumeile1的博客-程序员宅基地

ADTS内容及结构ADTS 头中相对有用的信息 采样率、声道数、帧长度。想想也是,我要是解码器的话,你给我一堆得AAC音频ES流我也解不出来。每一个带ADTS头信息的AAC流会清晰的告送解码器他需要的这些信息。一般情况下ADTS的头信息都是7个字节,分为2部分:adts_fixed_header();adts_variable_header();

JavaScript的document方法汇总_dreamboycx的博客-程序员宅基地_js中document的方法

01、document.title //设置文档标题等价于HTML的标签02、document.bgColor //设置页面背景色03、document.fgColor //设置前景色(文本颜色)04、document.linkColor //未点击过的链接颜色05、document.alinkColor //激活链接(焦点在此链接上)的颜色06、document

Oracle Procedure (PL/SQL) 实践归纳_dr2tr的博客-程序员宅基地

基本格式:例:create or replace procedure validateUser(USERNAME in VARCHAR2, USERPASSWORD in VARCHAR2, USERTYPE OUT VARCHAR2, VALID OUT CHAR) //头声明,参数以“参数名 in/out 类型”格式声明<o:p></o:p> is //过程开始v...

oradebug(转)_duqiangatom的博客-程序员宅基地

自ORACLE7起,ORADEBUG工具就开始被DBA使用了。它可以tracing any session / dump SGA and other memory str ture / wakeup oracle process / suspend and resume processing ….一、        概要首先看看helpSQL> oradebug helpHEL

程序员在职业生涯中如何规划自己_ch3rry的博客-程序员宅基地

我们应该创建一个总体计划,最大限度地发扬长避短,然后把这个总体计划应用于自己必须解决的每个问题中。在多年的教学生涯中,我看到过很多能力不同的学生。我不能简单地说有些程序员比其他程序员更有能力,虽然事实可能确实如此。即使是在相同能力水平的程序员之间,也存在很大的区别。我经常不可思议地看到以前学习得很挣扎的学生很快精通了某种特定的技巧,或者在其他领域天赋卓然的学生在一个新领域却暴露出明显的弱点。就

objdump readelf常用命令小结_王的璋的博客-程序员宅基地

1.常用命令:objdump -d PLT.so:disassemblereadelf -d PLT.so :display  .dynamic 段信息readelf -x .got.plt PLT.so:dump 某一段信息objdump -s -j .got.plt PLT.so:dump 一段信息readelf -s PLT.so :displ

推荐文章

热门文章

相关标签