论STA | SOCV / POCV 之 variation (2)

芯片制造涉及到许多复杂重复的过程,如:光刻、蚀刻、离子注入、扩散、退火。而且都是原子级操作,尽管控制非常严格,但偏差不可避免。

工艺偏差会导致芯片物理参数偏差,如:线宽、沟道掺杂浓度、线厚、临界尺寸、栅氧厚度;

而物理参数偏差会导致电特性参数偏差,如:线的电容电阻、阈值电压、饱和电流、栅极电容;

电特性参数偏差会导致 cell delay, cell transtion, net delay的偏差,这正是STA 要如此重视variation 的原因所在。

  • Environmental variation: 电压跟温度的变化,也就是PVT 中的V跟T。
  • Process variation: 工艺制造过程的偏差,工艺偏差一部分用PVT 中的P来模拟,另一部分用OCV 来模拟。

而Non systematic process variation又可以进一步细分为Global varation 和local variation:

  • Global variation: 由于工艺偏移导致的die-to-die, wafer to wafer, lot to lot 之间偏差,如:同一个chip上所有管子的沟道长度都比典型值偏大或偏小。
  • Local variation (within-die or intra-die): 同一芯片上不同管子受工艺偏差影响不同< 注:on  chip variation 之源>,如:同一芯片上有些管子的沟道长度偏小,而有些管子的沟道长度却偏大。显然,local variation 比 global  variation 小。

Local variation又可以进一步细分:

  • Spatially correlated variations: 相较于距离相距较远的管子,相邻管子有像似特征。这也是AOCV 跟 SOCV / POCV 要考虑 spatial / distance 的原因。
  • Random or independent variation: 在统计学上完全随机独立,故需要SSTA 对其进行更精确模拟,而作为SSTA的简化模型,SOCV / POCV的精确性从下图可见一斑。

结:

  • 工艺偏差导致芯片物理参数偏差,进一步导致管子电特性偏差,在STA 中表现于cell delay, cell trantion 跟 net delay的偏差。
  • STA 用PVT + OCV 来模拟cell 的timing,用Spice 仿真得到cell delay 跟variation。
  • STA 用RC corner来模拟互连线的variation。
  • PVT 跟RC corner 用于模拟Global varition。
  • Flatten OCV, AOCV, SOCV / POCV 用于模拟local variation.

参考文献:

http://ceng.usc.edu/techreports/2012/Gupta%20CENG-2012-6.pdf

https://www2.eecs.berkeley.edu/Pubs/TechRpts/2015/EECS-2015-165.pdf

https://community.cadence.com/cadence_blogs_8/b/ii/posts/signoff-summit-an-update-on-ocv-aocv-socv-and-statistical-timing

https://m.eet.com/media/1177441/variation-aware%20ch4a.pdf

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

时间: 2024-10-13 03:37:17

论STA | SOCV / POCV 之 variation (2)的相关文章

SOCV / POCV 模型

STA无疑是数字集成电路设计实现方法学中最『漂亮』的模型之一,但是随意着工艺进步,local varition 的随机性及重要性增加,传统STA 的局限性日渐突出.大概在十五年前,SSTA成了一个研究热点,相较于传统的STA,SSTA 不再是针对单一的timing 进行分析,它的分析结果是一个统计分布,通过这个统计分布结果,可得到电路处在某个timing 点的概率. "Statistical timing is a great approach," Keller said. "

SOCV/POCV 开篇

1.功能:模拟工艺偏差对芯片性能的影响 2. 40nm之前 flat derate模型可以基本覆盖大部分情况 3.AOCV (Adance OCV) 考虑distance 和depth的影响. AOCV table背后已经有统计学的支撑,即SSTA(statistical static timing analysis). 但是限于runtime,基本都是GBA(Graphic based analysis)进行timing 分析.Depth 分析不够准确,使得过于悲观. PBA 计算depth,

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 j

STA之AOCV

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

[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

Epigenetic variation among natural populations of the South African sandhopper Talorchestia capensis

这篇文献发表在Evolutionary Ecology,期刊点数不高,这篇paper质量也不高,但很传统和典型,是可以模仿和学习,部分语句也有抄袭嫌疑.对于我这样的新手还是挺有借鉴意义. 这篇文章和我的研究内容非常相近,当然我研究的是植物,而本文是水生动物. Baldanzi, S., Watson, R., McQuaid, C. D., Gouws, G. & Porri, F. Epigenetic variation among natural populations of the So

【转载】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);//设置