古装言情 小说:AOCV技术在45nm中的应用 : 新思科技

来源:百度文库 编辑:中财网 时间:2024/04/30 19:46:28

AOCV技术在45nm中的应用


黄一峰   huangyifeng@huawei.com

海思半导体技术有限公司

ABSTRACT

 With the developing of semiconductor technologies and complexity of chip designs, traditional on-chip-variations seems too pessimistic to be implemented for over ten million gates high performance designs base on 45nm process and below. Compared with traditional OCV which add the same derate value on all timing paths, AOCV gives different derate value on different timing path, which brings more scientific and rational timing margin. In this way, it can reduce over pessimism of derating. This paper will describe the AOCV technology in 45nm high performance DSP chip and show the comparison results. Then you can easily find how much pessimism reduction we achieved by using AOCV.

摘要

 随着半导体工艺的进步以及芯片设计的日趋复杂化,传统OCV约束方式已经越来越不符合45nm及以下工艺的千万门级高速芯片设计。相对于传统OCV在path上设置统一derate 值的方法,AOCV更为科学与合理的根据path的实际情况加上不同的derate 值。通过科学合理的方法降低了derate 值的悲观度。本文将介绍AOCV在45nm高速DSP芯片中的应用与分析结果,并将对比给出一系列数据以展示AOCV所带来的对芯片性能的提升。

1.0  简介

随着芯片工艺的发展,对于STA的要求也越来越高,并且设计的复杂度不断提升。传统的WC-BC模式已无法准确的反应芯片的实际真实时序。OCV正是在这种情况下被提出并实际应用到STA中。随着工艺的进一步发展,我们发现OCV模式也并不能满足我们的要求,我们期望能更精确的分析出实际的时序情况,而OCV模式本身,带有太多的余量,并且分析方法也相对比较悲观。正是在这种情况下,我们提出了更精确的AOCV模式来进行时序分析。

为了让我们更清晰理解AOCV,不妨我们首先来看下Synopsys在工具中对各种不同的分析模式是如何定义分析的。

1.1  OCV 与 BC-WC的对比

BC_WC 即Best Corner & Worst Corner,是让PrimeTime分析芯片在最差PVT环境中和最好PVT环境中的工作状况。PrimeTime会分别计算在max(WC)和min(BC)下每个路径的timing-arc,从而分析其时序行为。这两种工作环境的区别如下:

l   在min环境下会使用最小的电容负载,而在max环境下会使用最大电容复杂。

l   在min环境下会使用最小的输入引脚电容或接收模型,而在max环境下会使用最大输入引脚电容或接收模型。

l   在min环境下当遇到timing-arc交汇点时会让最小的那个timing-arc传递到下一级,而在max环境下当遇到timing-arc交汇点时会让最大的那个timing-arc传递到下一级。

在BC_WC分析模式中,min和max这两个工作环境,分别代表了两种PVT环境。这两个工作环境是不会同时出现的。比如,min环境可能是0摄氏度加上1.3v的工作电压,而max环境可能是100摄氏度加上1.1v的工作电压。这是两个完全独立的工作环境。

图 1 – BC-WC说明

OCV分析模式,即On_Chip_Variation模式。由于芯片在加工和实际工作环境中,不同路径可能存在稍许差异,我们将这种差异分别看作min和max状况。我们需要在单PVT环境中同时考虑他们。要实现OCV我们可以运用与主PVT库对应的微小差异PVT库,要么就通过使用set_timing_derate命令设置全局derate值。OCV模式下PrimeTime会对每个timing-arc分别计算其在min状况和max状况下的值。并且对每条数据路径的计算不再将min参数和max参数分离开。而是对于建立时间计算是用max参数来计算数据路径,而用min参数来计算时钟路径。反之,对于保持时间的计算则是使用min参数来计算数据路径,而用max参数来计算时钟路径。从而可以更加真实和严格的还原芯片工作时可能遇到的实际状况。

 图 2 – OCV说明

通过对比上述两种传统分析模式,我们发现OCV的分析相对BC_WC更能贴近芯片的实际工作情况,从而提供更准确的时序分析。

1.2  AOCV  和OCV的对比

我们继续来看AOCV和OCV:

AOCV,即Advanced OCV则是在传统OCV分析方法的基础之上更近一步。在传统OCV上引入了对路径长度和整个路径在物理上所跨越的距离的考虑。我们知道随着数据路径的增长,OCV效应会减弱;随着跨越距离的增加,OCV效应又会增强。AOCV就是要通过考虑这些OCV效应的变化从而避免过度悲观的OCV分析。如何来有效降低OCV的过度悲观,是我们提高时序分析准确性的关键。

因此我们想到了通过仿真以及结合芯片的实际物理情况,对每个cell给出更贴近实际情况的derate值,将能有效的帮助我们得到更准确的时序分析。由此我们引入了AOCV分析模式,在AOCV中,我们将通过对cell在不同的逻辑深度时的仿真,以及基于前后级在物理中的不同距离来得到一个更精确的derate值来进行时序分析,而不是传统的粗放式的统一的derate。在了解了AOCV的工作原理后,在下文中我们会首先来了解AOCV derate table的产生。

2.0  AOCV derate table的产生

AOCV的derate table的产生可以分别基于path depth和path distance。这里需要说明的是:Path depth指的是基于cell在整条时序路径中所处的深度或者说级数来考虑它的derate值;path distance是基于路径中cell或net跨越的物理距离来给出相应的derate值。当然,这2个不同的维度也是可以同时考虑的。不过本文所采用的AOCV derate table仅仅基于path depth。

如图3所示,通常情况下,我们按照该流程产生基于path depth的AOCV derate table:概括来说,整个过程可以简单归纳为输入cell的时序库、SPICE库和SPICE Netlist,通过HSPICE的蒙特卡洛仿真,得到基于不同的cell depth的derate表格。

 图 3 – AOCV生成说明

得到的derate table格式如下:

object_type: lib_cell

delay_type: cell

rf_type: rise

derate_type: early

object_spec: tcbn45gsbwpbc/INVD12BWP

depth: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

distance:

table: 0.963 0.969 0.973 0.975 0.977 0.979 0.980 0.981 0.982 0.983 0.984 0.985 0.985 0.986 0.987 0.987 0.988 0.988 0.989 0.989 0.990 0.990 0.990 0.991 0.991 0.991 0.992 0.992 0.992 0.993 0.993 0.993 0.993 0.994 0.994 0.994 0.994 0.995 0.995 0.995 0.995 0.996

通过上述table,我们可以很容易的发现AOCV derate table与传统OCV derate的区别:随着depth的变大,derate会有一个收敛的过程,如图4所示。

 图 4 –derate 比较

3.0  AOCV 使用分析

基于上述AOCV的描述,我们在TSMC的40LP工艺下,对我们的ARM9做了一次尝试。

在完成整个ARM9的PR工作后,我们抽取spef和netlist进入PT分析。 我们分析了三种模式:

1.  在传统的TSMC推荐的OCV值下的GBA模式

2.  基于AOCV的GBA模式

3.  基于AOCV的PBA模式

最终得到并整理出如下的timing数据。

需要特别说明的是,目前我们所做的AOCV只是基于时钟路径上的,并没有加在数据路径上,如下图所示,基于时钟上的AOCV setup分析如下:

 图 5 – AOCV基于时钟setup分析

 首先,我们先看下在PT 2009.06-SP2版本下,我们如何使用AOCV:

1、  打开AOCV选项,并且把分析方式设定到clock_network_only

set timing_AOCVm_enable_analysis true

set timing_AOCVm_analsysis_mode “clock_network_only”

2、配置PT时序分析补偿悲观值选线并读入AOCV的derate表

set timing_remove_clock_reconvergence_pessimism true

read_AOCV $AOCVM_TABLE_FILE

report_AOCVm

3、report_timing

在下面的图6以及图7中给出的分别是我们在setup和hold上的实际数据,由于我们选择的traditional OCV derate数值比较悲观,分别是setup 10% , hold 12%,所以我们得到的对比结果相对比较乐观,但是这并不妨碍我们根据现有的结果进行分析。

在得到时序报告以后,我们可以来着手分析。因为篇幅关系,我们这边仅以少数路径的时序报告以及总的时序报告作为分析依据。

我们可以看到,在某些比较深的critical path上,因为cell的depth比较深,所以AOCV在上面的作用非常明显,能很大程度的降低我们的悲观值。

我们先来看2条路径的报告

 图 6– AOCV下setup分析报告

在这两条路径中,我们可以看到路径1在GBA模式下分析,用了AOCV以后时序 有所恶化,路径2在用了AOCV后,时序有所改善。通过深入分析两条路径,我们发现,在setup下,如果capture时钟上的单元depth比较小,那么capture上的derate会比较大,AOCV情况下 时序会变差,这个与我们的预期是一致的,我们知道,在时钟上,depth小的单元负载会比较大,所以其时序会在实际情况下有一定的恶化。而在capture时钟上的单元depth比较深的,我们得到的时序会有所变好,这是因为depth越深,在AOCV的derate表中,我们得到的derate值也会越小。

同样,我们可以看到,在hold情况下的路径分析报告:

 图 7 – AOCV下hold分析报告

相对上面的在单条path上面的对比,下面我们对整个full chip的timing的比较更能说明,AOCV在timing closure上对我们提供的巨大帮助:

 图 8 – AOCV下full-chip分析报告

整体来对,对于我们的ARM9, AOCV可以有效降低50%的violation。对于后端的Timing closure作用巨大。当时序非常接近收敛的时候,这种帮助尤其明显。

 4.0  结论及建议

基于上述分析,我们可以看到,对于45nm以下的工艺来说,为了更贴近实际情况,得到更精确的时序分析结果,AOCV的分析模式相对传统的OCV更具有优势,能够为我们的芯片设计提供更多的助力。

5.0  致谢

在本文的最后,我谨代表个人以及我们的整个团队,感谢Synopsys以及给我们提供技术支持的Info、Fansheng,感谢他们给与的支持和帮助。

6.0  参考文献

1、  PT user guide, version 2009.06-SP2

2、  《PrimeTime Workshop AsiaPac》 from Jennifer Pyon