欢迎关注我的公众号:全栈芯片工程师

静态时序分析工具提供3种分析模式,分别是:

  • single_mode

  • BC-WC

  • OCV mode(AOCV,SOCV)

OCV会对时序分析提出更严格的要求。那为什么需要OCV呢,因为制造工艺的限制,同一芯片上不同位置的MOS晶体管的性能会有一些差异。库中的PVT是一个"点",比如工艺1.0,1.2V,25℃,但实际芯片的PVT永远不会落在一个点上,而是一个范围。比如有些cell的PVT是工艺0.98,1.18V,20℃,有些cell的PVT是工艺1.01,1.21V,30℃。这些cell的PVT都不在同一个点上,怎么去分析呢?这时候就需要OCV了。

(一)OCV分析

  • OCV建立时间分析,暂时不考虑CPPR

clock period = 4

Launch clock late path (max) = 0.7 + 0.6 = 1.3

Data late path (max) = 3.5

Capture clock early path (min) = 0.5 + 0.3 = 0.8

Setup = 0.2

Data arrival time = 1.3 + 3.5 = 4.8

Data required time = 4 + 0.8 - 0.2 = 4.6

Slack =Data required time - Data arrival time= 4.6 - 4.8 = -0.2

  • OCV保持时间分析,暂时不考虑CPPR

Launch clock early path (min) = 0.5 + 0.4 = 0.9

Data early path (min) = 2

Capture clock late path (max) = 0.7 + 0.5 = 1.2

Hold = 0.2

Data arrival time = 0.9 + 2 = 2.9

Data required time =1.2+0.2 = 1.4

Slack = Data arrival time - Data required time= 2.9 - 1.4 = 1.5

随着工艺节点推进到14nm、7nm、5nm,再继续使用OCV的办法会使得timing analysis过于悲观,sign-off时序分析难以通过,因此,基于BC-WC的timing derate办法出现。

  • timing derate

计算OCV的一种简单方法,在某单一条件(BC-WC)下,把指定path的delay放大或者缩小一些,这个比率就是derate。

1)timing derate在setup check中

Date arrival time即data path和launch clock path需要使用-late 选项,使得路径变慢。Date require time即capture clock path需要使用-early选项,加快路径延迟。

setup check 一般是工作在WC条件下,因此不需要在late path上(即launch clock path以及data path上)再加time derate,因为在WC条件下,launch clock path以及data path上的延迟已经是所有条件下最差的delay了,没有必要再加大延迟,但是WC条件下capture clock path上的delay用的是SS corner,延迟是最大的,因此需要加快。因此,做setup check,time derate只需要这样设置:

set_timing_derate -early 0.9

set_timing_derate -late 1.0

对于不同工艺,derate数值一般由实际工程经验总结而来。

2)timing derate在hold check中

Data require time中的capture clock path使用-late选项,使路径变慢。Data arrival time中的data path和launch clock path使用-early选项,使路径加快。

实际上,Hold check一般在BC条件下,因此,launch clock path与data path不需要再进一步减小delay, 因为已经是最小delay, 但是BC条件下的capture clock path用的FF corner,延时是最小的,需要derate。可以使用如下设置:

set_timing_derate -early 1.0

set_timing_derate -late 1.2

  • CPPR(Clock Reconvergence Pessimism Removal),共同路径悲观去除。

针对common clock path那1.2ns的延迟,在setup分析时,launch clock path中没有被derate, 而在capture clock path中被time derate 1.2*0.9 =1.08. 显然这是相互矛盾的。考虑CPPR之后,我们必须减去一个CPP因子=1.2-1.08=0.12。

(二)AOCV分析

AOCV全称Stage Based Advanced OCV,在OCV分析过程中,我们会给data path,clock path上设定单一的timing derate值。随着工艺演变的加速,这种设置方法是过于悲观的,OCV是片上误差,设定单一的timing derate值就代表一条path上所有的cell delay都或大于或小于标准值,因此不能一味的加大或减小delay来模拟片上误差。实际中的variation,很少是一个统一的数值,而大概率是服从正态分布的。

AOCV提出:对于一条path上,级数越多其variation分布越接近正态分布,因而这条path整体的variation也越小。在实际设计中,会根据一条line上cell的级数不同而设置不同的dereate值。

AOCV有专门的libary库,我们称为AOCV table。按照维度分为两种,一种是一位的只以stage count作为计算的表格,如下depth就是stage。

我们可以看出,级数(depth)越深,对应的derate越小。通过这种方式来剔除部分不必要的悲观量,使得设计在尽量覆盖实际情况的前提下更加容易收敛。

另外一种是以distance和stage count混合组成的二维AOCV table。它在计算derate时同时考虑了timing path的距离因素,当然这个虽然更加精确,但是会增加runtime,所以一般现在一维表格用的更多。

OCV和AOCV就先讲到这里,接下来继续介绍POCV和LVF的内容,敬请扫描关注微信公众号!

欢迎关注我的公众号:全栈芯片工程师

OCV时序分析(一)相关推荐

  1. 静态时序分析-OCV和time derate

    文章目录 基础概念 分析模式 如何选取path? 建立时间的OCV分析 保持时间检查的OCV 基础概念 OCV(on-chip variation) 是指在同一个芯片上,由于制造工艺和环境等原因导致芯 ...

  2. OCV、AOCV时序分析(一)

    欢迎关注我的公众号:全栈芯片工程师 随着芯片工艺的发展,对于STA的要求也越来越高,并且设计的复杂度不断提升,传统的WC-BC模式已无法准确的反应芯片的实际真实时序.OCV正是在这种情况下被提出并实际 ...

  3. 静态时序分析——On-chip Variation

    OCV(on-chip variation)是指在同一个芯片上, 由于制造工艺和环境等原因导致芯片上各部分特征不能完全一样,从而造成偏差,对时序分析造成影响.这些偏差对互联线和cell的延时都是有影响 ...

  4. 时序分析基本概念介绍<AOCV>

    今天我们要介绍的时序分析概念是AOCV.全称Stage Based Advanced OCV.我们知道,在OCV分析过程中,我们会给data path,clock path上设定单一的timing d ...

  5. VLSI Basic2——OCV

    PVT - Corner 是什么 芯片在生产过程中,由于外界条件和生产条件的变化,比如PVT,可能会产生不同的误差从而导致同一晶圆上不同区域上的芯片里的晶体管速度变快或者变慢,并因此产生corner概 ...

  6. 片上偏差模式OCV,AOCV,SOCV

    文章目录 片上偏差模式OCV,AOCV,SOCV 一.片上偏差模式OCV,AOCV,SOCV 二.AOCV 三.SOCV 片上偏差模式OCV,AOCV,SOCV OCV:On Chip Variati ...

  7. OCV (on-chip-variation)

    Chip上类型完全相同的cell,由于它们所处的位置不同,受到工艺(如掩模.光校准.刻蚀等).电压.温度等因素的影响不同,导致cell对外呈现出的delay也是不一样的.由于影响的因素较多,delay ...

  8. 时序分析基本概念介绍Timing Derate

    今天我们介绍的时序分析概念是timing derate. 我们可以称为时序增减因子.我们知道在芯片的生产过程中,由于刻蚀,不同点的温度,金属不均匀,串扰,晶体管沟道长度等影响因素,导致片上各个位置单元 ...

  9. STA静态时序分析——学习笔记

    STA静态时序分析--学习笔记 静态时序分析简介及基本知识 PT流程以及分步骤讲解 2.1 设计STA环境 2.2 指定STA库文件 2.3 读取Netlist文件 2.4 读取SPEF文件 2.5 ...

最新文章

  1. Windows下的for
  2. 基于cocos2d-x的快速的游戏开发--回合制游戏
  3. Setup 和Hold (建立时间和保持时间)解析
  4. Firefox 有 6 成用户仍使用 Add-On 扩展
  5. 【操作】鼠标hover效果——元素凸起并产生阴影
  6. flask ajax 笔记
  7. 是否应为孩子聘请家教 以及 什么样的家教适合孩子
  8. Linux input输入子系统demo驱动
  9. python全栈之巅_Linux Crontab 定时任务
  10. Windows下Nginx的启动、停止、重启等命令
  11. 假期归来,有哪些编程书上了新书榜?
  12. Qt TCP服务端、客户端;QTcpSocket
  13. win10启动项_win10系统开机启动项的设置教程
  14. GitHub简介、fork、pull和clone、快速起步
  15. java微信支付超时_Java语言:微信支付之关闭订单
  16. 移动应用中的AR开发,6款最受欢迎工具推荐
  17. 【安全通告】创宇安全智脑:GitLab ExifTool远程命令执行漏洞在野利用(CVE-2021-22205)...
  18. Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/po/IdCard
  19. QPM-PHP多进程开发-Supervisor配置参考
  20. 重磅!阿里版本【ChatGPT】开放测评!

热门文章

  1. html如何将图片做成六边形,HTML5六边形图形效果
  2. Universal Style Transfer via Feature Transforms 论文理解
  3. Fuzz初尝试:AFL安装和使用
  4. openmv-IDE安装失败
  5. 天翼云:新用户注册领取180天云服务器
  6. 【MySQL视图】视图的概念、创建、查看、删除和修改
  7. 神经网络 顾晓东_回首初心·怀梦致远 | 顾晓东:教学之情
  8. 移植代码,keil中出现Undefined symbol 等问题解决办法
  9. OWASP top10 详解
  10. Excel中工作表间的关联链接方法及实例