STA之OCV

Timing sign-off Corner = library PVT +RC Corner + OCV

针对每个工艺结点,foundry都会给出一张类似的timing sign-off表格,定义了所有需要做timing sign-off的corner(实际需要sign-off的corner还需要乘以工作模式,对于STA,不同的工作模式,用不同的SDC文件予以区别)

uncertainty=clock jitter + Xps setup/hold margin + DPT,其中clock jitter由用户根据所用PLL的精度来确定;Xps由foundry提供,如:30ps for setup, 40ps for hold; DPT一项表示需要加的额外margin用于cover mask misalignment引起的偏差,该值亦由foundary提供,比如5ps for setup, 3ps for hold。

世界上没有两片相同的叶子,半导体世界里没有两只相同的管子。library中的cell delay是在某个固定的PVT(operating condition)下仿真得出的,也就是下图中的Nominal delay,而实际上在芯片内部由于工艺偏差、电压降、温度变化,cell的delay并不是一个固定值,而是一个随机值,遵循高斯分布或门特卡洛分布。

在STA中用OCV来模拟这一『特征』,OCV全称on chip variation,用于描述不同管子间由于工艺偏差、电压降、温度变化引起的delay变化,也用于描述工艺偏差引起的net厚度宽度的变化从而导致net的电容电阻变化。

    • PVT跟OCV都是用于描述Process、Voltage、Temperature对timing的影响,两者有何区别?

PVT:主要取决于外部因素,在某一固定的工艺点、芯片的工作电压、周围环境温度对芯片性能的影响。更直白的理解:同一颗芯片在不同工作电压、环境温度下的性能表现。

OCV:用于模拟芯片内部不同管子由于工艺偏差、电压降、温度变化引起的性能变化,这种变化更宏观的表现是:不同芯片在相同PVT下的性能表现不同。

    • 在timing sign-off时,为什么要在Nominal delay上加OCV?

因为Nominal delay是在固定PVT下仿真得出的delay,而实际上由于OCV的影响,管子的delay是呈高斯分布或门特卡洛分布,要想保证yield,就必须在timing sign-off时将OCV考虑在内,以保证大部分管子都可以满足时序要求。对每一代工艺,foundry都会做大量测试,针对每个corner找到一组适合的OCV值,这组值可以保证足够高的yield,而如果进一步加紧这个值,并不会更有效的提高yield。在SOCV/POCV里的多少sigma(如:3-sigma)的选取也是出于相同的考虑

Interconnect variation: Another area of on-chip variation is in interconnect height and width, resulting in variation in both resistance and capacitance. Because the delay from interconnect is becoming more dominant as geometries shrink, you should pay attention to accurate modeling of interconnect variations. Two potential sources of this variation are the CMP (chemical-mechanical-planarization) process and the proximity effects in the photolithography and etch processes. Variation in the CMP     process results from the difference in hardness between the interconnect material and the dielectric. Ideally, after the designer has etched trenches into the dielectric below an interconnect layer and copper on the wafer, the CMP process removes the unwanted copper, leaving only lines and vias. The copper line is softer than the dielectric material, resulting in "dishing" and erosion, which cause uneven removal of the copper and dielectric. Dishing is a function of line width and density, and erosion is a function of line space and density. Another source of variation in thickness due to CMP is a morerandom variation resulting in a gradient across the wafer. You can see thisgradient in die-to-die variations and even across-die variations for large die.You would ideally model this random, nondeterministic variation statistically.However, if you can obtain process data to model this variation, then you canmodel it deterministically as a function of position on the wafer. In thisscenario, you give an adder or subtracter, depending on the x,y position on thedie, to the RC value. Etch-proximity effects appear as "microloading," whichmeans that the etch process overetches isolated lines. A dual-damascenestructure uses only a single metal-deposition step to simultaneously form themain metal lines and the metal in the vias. That is, the formation of both thetrenches and the vias occurs in one dielectric layer. Overetching results in awider trench and, hence, a wider metal line. Photolithographic effects also cause problems. Diffraction andlocal scattering in photolithography may overexpose densely spaced lines andunderexpose isolated lines. Tiling and metal slotting reduce the variation infeature density and mitigate these effects. Tiling algorithms give differentresults, but a general rule states that a less dense gradient yields smallerline-width variations on the die. Tiling does have its drawbacks, however. Asone of the last integration steps in an SOC-design flow, tiling involvescalculations that the extractor performs using density parameters. Thesecalculations can result in different RC values before and after tiling. Tilingcan also result in small additional delay effects on timing. The final designmay not meet the desired target frequency once you account for tiling. Whetherit does depends largely on the design and the methods you use to meet thetiling requirements.

方法学上概念清晰了之后,EDA工具端的操作就十分简单了,在EDA工具中如何设置OCV?每家工具都有各自不同的命令/变量控制,跟OCV相关的大致可分为四部分,此处以Tempus的命令为例:

  • 全局控制:set_analysis_mode -analysisType onChipVariation
  • 设置OCV:set_timing_derate -cell_delay/net_delay/cell_check -late/early     -data/clock (1-d%);其中d%是foundry在sign-off表格中给出的OCV值
  • Report OCV: report_statistical_timing_derate_factors
  • Debug timing时在timing report中将derate列显示出来:set_global report_timing_format {instance arc delay slew arrival user_derate}

由于工艺的进步,flat OCV在先进工艺如16,7中已经逐步被AOCV, SOCV/POCV取代,以剔除悲观度。

原文地址:https://www.cnblogs.com/lelin/p/11391998.html

时间: 2024-10-09 13:25:31

STA之OCV的相关文章

OCV与CPPR模式的理解

[资料] OCV模式和CPPR模式的技术层面解答: OCV是on-chip variation. 是指在同一个芯片上, 由于制造工艺等原因造成的偏差. 具体表现在到两个ff的clk端的时钟路径. 本来时间应该是一样的. 但是因为制造工艺也就是OCV的原因, 造成工具无法计算的快慢偏差. timing derate. 这个值就是告诉工具, OCV的影响有多大. 通常signoff的时候. derate会有5%到10%. 不同工艺不同设计, 由工程师的经验决定.如果两个clk path 的长度都是1

STA之AOCV

为什么要引入AOCV 为了精确性,为了剔除悲观度.用set_timing_derate来设置OCV,对于一个固定的corner,只能对data/clock, cell/net, late/early分别设不同的值,由下图可知,这个值是个trade off的结果,在保证yield的前提下,尽量不那么悲观,但由于其『固定天性』,这个值既不能cover最悲观的部分,而对另一部分又过于悲观. 什么是AOCV AOCV是一种用伪统计(pseudo-statistical )来模拟variation的方法,

论STA | SOCV / POCV 之 variation (2)

芯片制造涉及到许多复杂重复的过程,如:光刻.蚀刻.离子注入.扩散.退火.而且都是原子级操作,尽管控制非常严格,但偏差不可避免. 工艺偏差会导致芯片物理参数偏差,如:线宽.沟道掺杂浓度.线厚.临界尺寸.栅氧厚度: 而物理参数偏差会导致电特性参数偏差,如:线的电容电阻.阈值电压.饱和电流.栅极电容: 电特性参数偏差会导致 cell delay, cell transtion, net delay的偏差,这正是STA 要如此重视variation 的原因所在. Environmental variat

STA之PVT

在STA星球,用library PVT.RC corner跟OCV来模拟这些不可控的随机因素.在每个工艺结点,通过大量的建模跟实测,针对每个具体的工艺,foundary厂都会提供一张推荐的timingsignoff表格, 建议需要signoff的corner及各个corner需要设置的ocv跟margin.这些corner能保证大部分芯片可以承受温度.电压跟工艺偏差,一个corner=libraryPVT+ RC corner + OCV,本文将关注于library PVT. PVT也称为Ope

[BZOJ1131][POI2008] Sta 树的深度

Description 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 Input 给出一个数字N,代表有N个点.N<=1000000 下面N-1条边. Output 输出你所找到的点,如果具有多个解,请输出编号最小的那个. Sample Input81 45 64 56 76 82 43 4 Sample Output7 题解: 都说是裸树形DP,其实我做的时候就是把它当成搜索去做了,当然是一个意思.假设当前的根为1,先求出每棵子树的大小,以及所有点的深度之和.考虑

1131: [POI2008]Sta

1131: [POI2008]Sta Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 783  Solved: 235[Submit][Status] Description 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 Input 给出一个数字N,代表有N个点.N<=1000000 下面N-1条边. Output 输出你所找到的点,如果具有多个解,请输出编号最小的那个. Sample Input 8 1 4 5 6

【转载】STA 4273H Winter 2015 - Lectures

STA4273H Home   Lecture Schedule/Notes Assignments/Project Computing   Ruslan Salakhutdinov Homepage http://www.cs.toronto.edu/~rsalakhu/   STA 4273H Winter 2015 - Lectures Video Archive here. Lecture Schedule Lecture 1 -- Machine Learning:Introducti

FolderBrowserDialog 关于设置为单线程单元(STA)模式的问题

当Main函数是这样的状态的时候,当打开FolderBrowserDialog控件的时候 ,报错 这里有两种解决办法,第一种,就是把main 上加[STAThread] 第二种是启用一个线程 Thread newThread = new Thread(new ThreadStart(ToOpenBD));//初始化线程 参数是委托  ToOpenBD是方法名字,没有参数            newThread.SetApartmentState(ApartmentState.STA);//设置

BZOJ 1131: [POI2008]Sta

1131: [POI2008]Sta Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 1370  Solved: 486[Submit][Status][Discuss] Description 给出一个N个点的树,找出一个点来,以这个点为根的树时,所有点的深度之和最大 Input 给出一个数字N,代表有N个点.N<=1000000 下面N-1条边. Output 输出你所找到的点,如果具有多个解,请输出编号最小的那个. Sample Input