芯片内部动态压降补偿方法和装置转让专利

申请号 : CN201611020858.X

文献号 : CN108089624B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张译夫王茹杨梁肖斌

申请人 : 龙芯中科技术有限公司

摘要 :

本发明提供一种芯片内部动态压降补偿方法和装置,该方法可以应用于芯片的每一个设计阶段,该方法包括:在芯片的当前设计阶段,确定芯片包括的多个芯片模块,获取每个芯片模块的瞬态压降和静态压降,并根据每个芯片模块的瞬态压降和静态压降,确定芯片内部需要进行电压补偿的位置,由于该多个芯片模块由芯片要实现的功能、芯片的规模大小划分得到,该芯片的每个芯片模块包括至少一个器件,因而该方法能够覆盖芯片运行的所有可能性,从而有效保证芯片瞬态压降的准确性,提高了芯片使用过程中的正确性。

权利要求 :

1.一种芯片内部动态压降补偿方法,其特征在于,所述方法应用于芯片的每一个设计阶段,所述方法包括:在所述芯片的当前设计阶段,确定所述芯片包括的多个芯片模块,所述多个芯片模块由所述芯片要实现的功能、所述芯片的规模大小划分得到,所述芯片的每个芯片模块包括至少一个器件;

获取每个芯片模块的瞬态压降和静态压降,所述获取每个芯片模块的瞬态压降和静态压降,包括:确定所述芯片运行的时钟周期所包括的多个时间段;

获取每个芯片模块中每个器件在每个时间段内的翻转概率;

根据每个器件在每个时间段内的翻转概率以及每个器件的每次翻转功耗,确定每个芯片模块在所述时钟周期内的总电流值以及各个时间段的电流值;

根据每个芯片模块在所述时钟周期内的总电流值,确定每个芯片模块的静态压降;

根据每个芯片模块在所述时钟周期内各个时间段的电流值,确定每个芯片模块在所述时钟周期内各个时间段的瞬态压降;

根据每个芯片模块的瞬态压降和静态压降,确定所述芯片内部需要进行电压补偿的位置。

2.根据权利要求1所述的方法,其特征在于,所述根据每个芯片模块的瞬态压降和静态压降,确定所述芯片内部需要进行电压补偿的位置之后,还包括:在所述芯片内部需要进行电压补偿的位置插入耦合电容。

3.根据权利要求2所述的方法,其特征在于,所述在所述芯片内部需要进行电压补偿的位置插入耦合电容之后,还包括:获取插入所述耦合电容之后的所述芯片中每个芯片模块的补偿瞬态压降;

判断所述多个芯片模块中每个芯片模块的补偿瞬态压降是否均满足瞬态压降约束条件;

在所述多个芯片模块中存在芯片模块的补偿瞬态压降未满足所述瞬态压降约束条件时,确定所述插入所述耦合电容之后的芯片内部需要进行电压补偿的位置;

在所述多个芯片模块中每个芯片模块的补偿瞬态压降均满足所述瞬态压降约束条件时,进入所述芯片的下一个设计阶段。

4.根据权利要求3所述的方法,其特征在于,所述获取所述插入所述耦合电容之后的芯片内部需要进行电压补偿的位置,包括:在所述芯片的当前设计阶段,确定所述插入所述耦合电容之后的芯片包括的多个更新芯片模块;

获取每个更新芯片模块的瞬态压降和静态压降;

根据每个更新芯片模块的瞬态压降和静态压降,确定所述插入所述耦合电容之后的芯片内部需要进行电压补偿的位置。

5.根据权利要求4所述的方法,其特征在于,所述芯片的设计阶段依次包括:芯片布局阶段、芯片加入时钟树阶段和芯片布线阶段。

6.一种芯片内部动态压降补偿装置,其特征在于,所述装置应用于芯片的每一个设计阶段,所述装置包括:第一确定模块,用于在所述芯片的当前设计阶段,确定所述芯片包括的多个芯片模块,所述多个芯片模块由所述芯片要实现的功能、所述芯片的规模大小划分得到,所述芯片的每个芯片模块包括至少一个器件;

压降获取模块,用于获取每个芯片模块的瞬态压降和静态压降,其中,所述压降获取模块包括:时间段确定单元、翻转概率获取单元、电流确定单元、静态压降确定单元和瞬态压降确定单元;

所述时间段确定单元,用于确定所述芯片运行的时钟周期所包括的多个时间段;

所述翻转概率获取单元,用于获取每个芯片模块中每个器件在每个时间段内的翻转概率;

所述电流确定单元,用于根据每个器件在每个时间段内的翻转概率以及每个器件的每次翻转功耗,确定每个芯片模块在所述时钟周期内的总电流值以及各个时间段的电流值;

所述静态压降确定单元,用于根据每个芯片模块在所述时钟周期内的总电流值,确定每个芯片模块的静态压降;

所述瞬态压降确定单元,用于根据每个芯片模块在所述时钟周期内各个时间段的电流值,确定每个芯片模块在所述时钟周期内各个时间段的瞬态压降;

位置确定模块,用于根据每个芯片模块的瞬态压降和静态压降,确定所述芯片内部需要进行电压补偿的位置。

7.根据权利要求6所述的装置,其特征在于,还包括:插入模块;

所述插入模块,用于在所述位置确定模块确定出所述芯片内部需要进行电压补偿的位置之后,在所述芯片内部需要进行电压补偿的位置插入耦合电容。

8.根据权利要求7所述的装置,其特征在于,还包括:条件判断模块、更新位置确定模块和处理模块;

所述压降获取模块,还用于所述插入模块在所述芯片内部需要进行电压补偿的位置插入耦合电容之后,获取插入所述耦合电容之后的所述芯片中每个芯片模块的补偿瞬态压降;

所述条件判断模块,用于判断所述多个芯片模块中每个芯片模块的补偿瞬态压降是否均满足瞬态压降约束条件;

所述更新位置确定模块,用于在所述多个芯片模块中存在芯片模块的补偿瞬态压降未满足所述瞬态压降约束条件时,确定所述插入所述耦合电容之后的芯片内部需要进行电压补偿的位置;

所述处理模块,用于在所述多个芯片模块中每个芯片模块的补偿瞬态压降均满足所述瞬态压降约束条件时,进入所述芯片的下一个设计阶段。

9.根据权利要求8所述的装置,其特征在于,所述更新位置确定模块,包括:更新确定单元、更新压降获取单元和更新位置确定单元;

所述更新确定单元,用于在所述芯片的当前设计阶段,确定所述插入所述耦合电容之后的芯片包括的多个更新芯片模块;

所述更新压降获取单元,用于获取每个更新芯片模块的瞬态压降和静态压降;

所述更新位置确定单元,用于根据每个更新芯片模块的瞬态压降和静态压降,确定所述插入所述耦合电容之后的芯片内部需要进行电压补偿的位置。

10.根据权利要求9所述的装置,其特征在于,所述芯片的设计阶段依次包括:芯片布局阶段、芯片加入时钟树阶段和芯片布线阶段。

说明书 :

芯片内部动态压降补偿方法和装置

技术领域

[0001] 本发明涉及电路技术领域,尤其涉及一种芯片内部压降补偿方法和装置。

背景技术

[0002] 随着芯片工艺的发展,芯片的集成度不断提高,芯片的工作电压也随之下降,芯片内部线宽随之变窄。由于现代芯片的电源管理技术在工作时均会对电源地供电产生影响,致使芯片的功耗在工作电压降低的同时却有所增大,此外由于芯片内部线宽变窄致使电源传输网络的电阻增加,这导致芯片的压降增加。而芯片的压降尤其是瞬态压降直接影响芯片的最高频率,故芯片的压降成为限制芯片发展的瓶颈之一。
[0003] 现阶段,现有的芯片压降分析补偿方法可利用芯片行为仿真和增加耦合电容的方式来实现。具体的,首先利用芯片行为仿真,让芯片模拟运行某一特定程序,计算出芯片在运行该程序时内部每一器件翻转的时刻,其次利用这一翻转的结果得到瞬态电流变化情况,分析出芯片的瞬态压降,最后根据芯片的压降结果在芯片中插入耦合电容,以使芯片的瞬态压降满足使用的需求,从而保证芯片在运行过程中的正确性。
[0004] 然而,在上述芯片压降分析补偿方法中,由于芯片模拟运行的某一特定程序是人为选定的,其只能是有限长的程序,并不能覆盖芯片运行过程中的所有可能性,因而无法保证芯片瞬态压降的准确性;其次由于耦合电容本身会产生漏电功耗,故若耦合电容的插入位置不准确,不仅无法实现压降补偿的目的,还可能造成芯片的功耗增大,难以保证芯片在运行过程中的正确性。因而,现有的芯片压降分析补偿方法并不能完全解决芯片压降对芯片发展的限制问题,也无法保证芯片在使用过程中的正确性。

发明内容

[0005] 本发明实施例提供一种芯片内部动态压降补偿方法和装置,以克服现有技术中无法覆盖芯片运行的所有可能性,从而无法保证芯片瞬态压降的准确性,降低芯片使用过程中的正确性的问题。
[0006] 本发明提供一种芯片内部动态压降补偿方法,所述方法应用于芯片的每一个设计阶段,所述方法包括:
[0007] 在所述芯片的当前设计阶段,确定所述芯片包括的多个芯片模块,所述多个芯片模块由所述芯片要实现的功能、所述芯片的规模大小划分得到,所述芯片的每个芯片模块包括至少一个器件;
[0008] 获取每个芯片模块的瞬态压降和静态压降;
[0009] 根据每个芯片模块的瞬态压降和静态压降,确定所述芯片内部需要进行电压补偿的位置。
[0010] 本发明还提供一种芯片内部动态压降补偿装置,所述装置应用于芯片的每一个设计阶段,所述装置包括:
[0011] 第一确定模块,用于在所述芯片的当前设计阶段,确定所述芯片包括的多个芯片模块,所述多个芯片模块由所述芯片要实现的功能、所述芯片的规模大小划分得到,所述芯片的每个芯片模块包括至少一个器件;
[0012] 压降获取模块,用于获取每个芯片模块的瞬态压降和静态压降;
[0013] 位置确定模块,用于根据每个芯片模块的瞬态压降和静态压降,确定所述芯片内部需要进行电压补偿的位置。
[0014] 本发明实施例提供的芯片内部压降补偿方法和装置,通过将该方法可以应用于芯片的每一个设计阶段,并且在芯片的当前设计阶段中,通过确定芯片包括的多个芯片模块,并获取每个芯片模块的瞬态压降和静态压降,以及根据每个芯片模块的瞬态压降和静态压降,确定芯片内部需要进行电压补偿的位置,由于芯片的多个芯片模块由芯片要实现的功能、芯片的规模大小划分得到,且芯片的每个芯片模块包括至少一个器件,因而该方法能够覆盖芯片运行的所有可能性,从而有效保证芯片瞬态压降的准确性,提高了芯片使用过程中的正确性,解决了现有芯片压降分析补偿方法不能完全解决芯片压降对芯片发展的限制问题以及无法保证芯片在使用过程中正确性的问题。

附图说明

[0015] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0016] 图1为本发明提供的芯片内部动态压降补偿方法实施例一的流程图;
[0017] 图2为芯片划分的多个芯片模块的结构示意图;
[0018] 图3为本发明提供的芯片内部动态压降补偿方法实施例二的流程图;
[0019] 图4为本发明提供的芯片内部动态压降补偿方法实施例三的流程图;
[0020] 图5为本发明提供的芯片内部动态压降补偿方法实施例四的流程图;
[0021] 图6为本发明提供的芯片内部动态压降补偿装置实施例一的结构示意图;
[0022] 图7为本发明提供的芯片内部动态压降补偿装置实施例二的结构示意图;
[0023] 图8为本发明提供的芯片内部动态压降补偿装置实施例三的结构示意图;
[0024] 图9为本发明提供的芯片内部动态压降补偿装置实施例四的结构示意图。

具体实施方式

[0025] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0026] 现代芯片制造工艺进入深亚微米时代后,芯片的频率越来越高,芯片的面积越来越小,芯片的工作电压越来越低,带来了芯片的功耗密度(芯片功耗与面积的比值)越来越大,芯片内部线宽越来越窄。现代芯片有越来越多电源管理技术如:多电压域技术,动态调频调压技术,电源关断技术等,这些技术在工作时都会对电源地供电产生影响,有些还会产生强烈波动(如打开或关断某一电压域时对旁边电压域的冲击)。
[0027] 由于芯片的工作状态受很多因素影响,其中一个重要的影响因素就是芯片的工作电压。在芯片设计时,芯片设计者通常按照一个特定的工作电压对晶体管进行分析、模拟和仿真,但芯片压降的存在,会严重影响芯片的频率。具体的,首先静态压降会拉低芯片的正常工作电压,其次由于晶体管的翻转速度和电压相关,这时静态压降会降低芯片的最高频率,影响芯片的性能。进一步的,动态压降会致使芯片的工作电压产生波动,这种波动不光会影响芯片的最高频率,还可能会影响芯片的正确性。因此,芯片设计者要在芯片设计过程中估算芯片压降带来的影响,并对芯片的静态压降和动态压降进行补偿。
[0028] 此外,由于芯片工作电压的降低并没有同步的降低芯片的功耗,反而使芯片的功耗有所上升,芯片内部线宽变窄带来了电源传输网络的电阻增加,进而致使芯片压降增加。
[0029] 因此,为了避免芯片压降带来的一系列后果,芯片设计者在芯片设计之中就会通过尝试分析芯片压降的大小,来模拟电源电压波动带来的影响,并加入一定耦合电容进行补偿,但由于芯片程序行为十分复杂,设计人员很难仿真所有芯片工作情况,只能对芯片静态功耗,平均功耗,或某些程序行为下的动态功耗进行分析,造成的后果就是有可能设计加入过多余量加重芯片设计的负担,或者加入的余量不够导致芯片生产出来未能满足设计要求。
[0030] 由于往往在芯片设计的后期,才会得到准确布局结果和时序结果,在此基础上才能对芯片的动态压降进行分析,进而用分析结果进行压降补偿。但此时芯片设计已经进行到最后阶段,往往最大压降处就是芯片布局最紧密的地方,很难再找到足够的空间插入合适的耦合电容进行电压补偿,而为了补偿动态压降对芯片的布局进行调整则会牵一发动全局,影响到芯片其他模块的性能,不仅代价大,而且有可能无法得到准确的收敛结果。
[0031] 进一步的,在芯片设计的后期,通过加入耦合电容虽然能够有效改善瞬态压降,但耦合电容器件本身是会产生漏电功耗的,所以在无谓的位置插入过多无用耦合电容反而会造成芯片的漏电功耗增大,另外,由于耦合电容具有一定的作用范围,如果耦合电容的插入位置不准确,或者离需压降补偿的位置过远也没有效果。
[0032] 针对现阶段芯片设计中的问题,发明人发现如果可以在芯片制造早期对芯片的压降进行分析,并在不影响芯片设计流程的情况下,对芯片的动态压降做出预估,且在芯片设计的前期对芯片中可能出现的热点进行补偿,在芯片最终设计阶段进行验证,便可以有效解决芯片压降大、使用不准确的问题。
[0033] 下面,首先针对本发明实施例中出现的技术术语进行相应解释:
[0034] 电源地传输网络
[0035] 电源地传输网络是从版级源头(power regulator)到芯片内部负载(晶体管)的通路,包括印刷电路板上的电源地传输线,耦合电容,芯片封装的电源地焊球,芯片内部的电源地管脚、电源地金属网络。
[0036] 压降
[0037] 当芯片工作时,有从版级电源发生器到芯片内部晶体管的电源通路,有电流从电源地传输网络流过,由欧姆定律可知,源头到晶体管会有一个电压差,压差为流过传输网络的电流乘以传输网络的电阻。这个压差就是芯片的压降。
[0038] 瞬态压降
[0039] 当芯片工作时,对于运行不同的程序会产生不同的晶体管翻转,会产生大小不一随时间变化的电流,这个电流产生的压降为芯片的瞬态压降,此时压降为随时间变化的动态值,一般情况下,只关注瞬态压降的最大值。
[0040] 芯片热点(hotspot)
[0041] 当芯片运行时,因为功耗分布不均匀和供电分布不均匀,造成芯片内部某一区域功耗、压降为全芯片最高,这个区域叫hotspot,这个区域也是影响全芯片性能的关键区域。
[0042] 耦合电容(decap)
[0043] 插入耦合电容是现代芯片设计中,有效的用来对抗瞬态压降的方法。耦合电容是由mos管组成的在芯片电源地之间人为加入的电容,可以迅速为周围逻辑电路提供所需电路。但decap本身会产生漏电,而且所占面积不小,所以如何有效插入合适的decap变成了主要问题。
[0044] 本发明实施例提供的芯片内部动态压降补偿方法和装置,用于解决现有芯片压降分析补偿方法不能完全解决芯片压降对芯片发展的限制问题,也无法保证芯片在使用过程中正确性的问题。
[0045] 图1为本发明提供的芯片内部动态压降补偿方法实施例一的流程图。本发明实施例提供的芯片内部动态压降补偿方法应用于芯片的每一个设计阶段。针对芯片的每一个设计阶段,如图1所示,本发明实施例提供的芯片内部动态压降补偿方法,包括:
[0046] 步骤101:在芯片的当前设计阶段,确定芯片包括的多个芯片模块,该多个芯片模块由芯片要实现的功能、芯片的规模大小划分得到,且该芯片的每个芯片模块包括至少一个器件。
[0047] 其中,每个芯片模块包括至少一个器件包括但不局限于晶体管等元器件。
[0048] 具体的,每个芯片的设计流程均包括多个设计阶段,设计人员依次执行芯片的该多个设计阶段,进而完成芯片设计。由于现有的芯片内部压降补偿方法在芯片设计后期才能得到芯片的准确布局结果和时序结果,此时确定出的芯片内部需要电压补偿的位置,往往是芯片布局最紧密的地方,此时进行电压补偿变得比较困难。因此,本发明实施例将该芯片内部动态压降补偿方法应用在芯片的每一个设计阶段,分别在每个设计阶段确定芯片内部需要电压补偿的位置并进行补偿,解决了芯片内部电压补偿困难的问题。
[0049] 进一步的,在本实施例中,通过实践证明如果在空间上将芯片分为多个芯片模块,并且通过根据每一芯片模块的静态压降和瞬态压降,确定需要进行电压补偿的位置,相比于通过根据整个芯片的瞬态压降确定需要进行电压补偿的位置的方法更为精准,因此,本发明在将芯片划分为多个芯片模块的基础上对芯片内部动态压降进行分析和补偿。
[0050] 可选的,芯片包括的多个芯片模块是根据该芯片要实现的功能、该芯片的规模大小划分得到的,该芯片的每个芯片模块包括至少一个器件。
[0051] 具体的,设计人员在芯片的每一个设计阶段,其首先根据该芯片要实现的功能、该芯片的规模大小等因素将芯片划分成多个芯片模块,每个芯片模块包括至少一个器件。此外,设计人员还可综合考虑设计人员的人员数量以及每个芯片模块的设计时间等因素对芯片进行模块划分,本发明实施例并不限定芯片模块划分需要考虑的具体因素,其需要根据实际情况进行划分,而且本发明实施例也不对模块的具体划分规则进行限定。
[0052] 图2为芯片划分的多个芯片模块的结构示意图。如图2所示,图中的黑点表示划分的每一个芯片模块,每个芯片模块中所有器件的总电流通过该黑点输出。本发明实施例并不对芯片模块的具体数量进行限制,其可根据计算机实际的运行速率等约束条件,将芯片分为尽可能小的芯片模块。
[0053] 步骤102:获取每个芯片模块的瞬态压降和静态压降。
[0054] 具体的,电压波动可以分为两部分:静态压降和瞬态压降。
[0055] 若要分析芯片最大压降的值,首先要确定瞬态压降,而确定瞬态压降,需要知道瞬态电流的变化情况,由于系统时钟是以一个特定频率运行的,所以瞬态电流一般与时钟周期相关,也有一定周期性,即瞬态电流一般随着时钟周期进行周期性变化。因此,为了得到这个瞬态电流的变化情况,需要知道芯片内部每个器件在什么时刻翻转。
[0056] 通过上述现有技术可知,采用芯片行为级仿真得到芯片在运行某一具体程序时的器件翻转文件会有很大的分析代价,而且由于仿真选择运行的程序是人为选定的,不能保证芯片就是在运行这一程序时产生最大电流变化,会造成覆盖不完全,可能会漏掉重要的结果。
[0057] 因此,本发明实施例选择利用时序分析结果,来确定每个芯片模块的瞬态压降和静态压降。
[0058] 步骤103:根据每个芯片模块的瞬态压降和静态压降,确定芯片内部需要进行电压补偿的位置。
[0059] 由于芯片内部器件的时序情况与工作电压密切相关,芯片的压降特别是动态压降直接影响芯片的最高频率。芯片实际执行的程序,都会极大影响芯片的实际工作情况,进而影响芯片内部的压降情况。因此,在芯片设计的每一个阶段均分析每个芯片模块的瞬态压降和静态压降,并根据每个芯片模块的瞬态压降和静态压降,确定芯片内部需要进行电压补偿的位置,能够及时判断出芯片内部压降异常的位置,并为后续分析奠定了基础。
[0060] 可选的,由于芯片的压降分为静态压降和瞬态压降,而现代芯片一般会定义基准电压Vmin,当芯片的工作电压低于基准电压Vmin时,芯片的工作就会受到很大影响,可能出现芯片工作异常的情况。
[0061] 例如,在分析瞬态压降时,如果该芯片中的某个特定位置的在某一时间段内(t1,t2)的瞬态压降超过了基准电压Vmin,就会定义为该位置为一个问题点,进而会针对这个问题点进行优化。但在芯片设计分析过程中,发明人发现,如果只考虑某个特定位置的瞬态压降,当由于静态压降的原因导致电压分析的基准变化时,即使该特定位置的瞬态压降没有超过基准电压Vmin,但是瞬态压降与动态压降相加就可能超过基准电压Vmin,此时如果只采用瞬态压降,则会导致分析结果不准确。因此,为了达到判断的准确性,本发明中将静态压降和瞬态压降合起来考虑,以确定芯片内部需要进行电压补偿的位置。
[0062] 本发明实施例提供的芯片内部动态压降补偿方法,通过将该方法可以应用于芯片的每一个设计阶段,并且在芯片的当前设计阶段中,通过确定芯片包括的多个芯片模块,并获取每个芯片模块的瞬态压降和静态压降,以及根据每个芯片模块的瞬态压降和静态压降,确定芯片内部需要进行电压补偿的位置,由于芯片的多个芯片模块由芯片要实现的功能、芯片的规模大小划分得到,且芯片的每个芯片模块包括至少一个器件,因而该方法能够覆盖芯片运行的所有可能性,从而有效保证芯片瞬态压降的准确性,提高了芯片使用过程中的正确性,解决了现有芯片压降分析补偿方法不能完全解决芯片压降对芯片发展的限制问题以及无法保证芯片在使用过程中正确性的问题。
[0063] 在上述实施例的基础上,图3为本发明提供的芯片内部动态压降补偿方法实施例二的流程图。本发明实施例是在上述实施例的基础上对芯片内部动态压降补偿方法的进一步说明。如图3所示,在本发明实施例提供的芯片内部动态压降补偿方法中,在上述步骤103之后,即根据每个芯片模块的瞬态压降和静态压降,确定芯片内部需要进行电压补偿的位置之后,还包括:
[0064] 步骤301:在芯片内部需要进行电压补偿的位置插入耦合电容。
[0065] 当确定了芯片内部需要进行电压补偿的位置后,在该位置插入耦合电容,补偿瞬态电压,虽然是业内公认的做法,但是需要进行电压补偿的位置,会受到芯片内可用面积的限制,一般情况下,芯片瞬态压降大的位置,也往往是单元密集的位置,因此在芯片设计的后期,若发现芯片存在瞬态压降问题,则需要在芯片的内部插入耦合电容,进而利用耦合电容对芯片进行修复,然而,在此时出现上述确定的需要进行电压补偿的位置的面积不足以插入耦合电容是经常发生的事情。
[0066] 对此,本发明实施例在芯片的每一个设计阶段,均通过分析芯片每个芯片模块的瞬态压降和静态压降来确定芯片内部需要进行电压补偿的位置,进而在芯片内部需要进行电压补偿的位置插入耦合电容,也即,利用耦合电容进行电压补偿的这个手段在芯片的每一个设计阶段均考虑到了,其贯穿了芯片设计的始终,所以,本发明实施例的技术方案,在芯片设计的前期就可以确定出芯片内部需要进行电压补偿的位置,以及在该位置插入相应的耦合电容进行电压补偿,而且确定出的芯片内部需要进行电压补偿的位置的精确程度也随着芯片设计的逐步完成而逐渐提高,随着芯片内部器件时序的逐步精确而逐步精确。
[0067] 进一步的,在图3所示实施例提供的芯片内部动态压降补偿方法中,在步骤301(在芯片内部需要进行电压补偿的位置插入耦合电容)之后,还包括以下步骤。
[0068] 步骤302:获取插入耦合电容之后的芯片中每个芯片模块的补偿瞬态压降。
[0069] 为了保证插入耦合电容之后的芯片能够满足压降的要求,在本发明实施例中,当在芯片内部需要进行电压补偿的位置插入耦合电容后,再次获取插入耦合电容之后的芯片中每个芯片模块的补偿瞬态压降,这时的补偿瞬态压降能够正确反映插入耦合电容之后的芯片的压降情况,进而根据此时的补偿瞬态压降来确定是否需要对该设计阶段进行重新设计等。
[0070] 步骤303:判断上述多个芯片模块中每个芯片模块的补偿瞬态压降是否均满足瞬态压降约束条件;若否,执行步骤304,若是,执行步骤305。
[0071] 步骤304:确定插入耦合电容之后的芯片内部需要进行电压补偿的位置。
[0072] 步骤305:进入芯片的下一个设计阶段。
[0073] 为了保证最后设计得到的芯片能够满足工作需求,在芯片内部需要进行电压补偿的位置插入耦合电容之后,还需要判断上述多个芯片模块中每个芯片模块的补偿瞬态压降是否均满足瞬态压降约束条件。
[0074] 具体的,如果上述多个芯片模块中存在芯片模块的补偿瞬态压降不满足瞬态压降约束条件,那么表明插入耦合电容后的芯片其他的性能受到了影响,此时,则需要重新进行设计,而且是芯片中带着已插入的耦合电容进行重新设计,这样能够既能够保证已确定的芯片内部需要进行电压补偿的位置满足电压要求,还能够确定出芯片内部其他不满足压降需求的位置,提高了压降补偿的精度。
[0075] 在上述多个芯片模块中每个芯片模块的补偿瞬态压降均满足所述瞬态压降约束条件时,表明插入耦合电容后的芯片的其他模块没有收到影响,仍然能够满足压降的要求,此时,则可进入芯片的下一个设计阶段。
[0076] 本发明实施例提供的芯片内部动态压降补偿方法,不仅在芯片的当前设计阶段确定出芯片内部需要进行电压补偿的位置,以及在该位置插入耦合电容进行电压补偿外,还获取插入该耦合电容之后的芯片中每个芯片模块的补偿瞬态压降,用以判断芯片中每个芯片模块的补偿瞬态压降是否均满足瞬态压降约束条件,进而在每个芯片模块的补偿瞬态压降均满足瞬态压降约束条件时,进入下一个设计阶段,否则确定插入该耦合电容之后的芯片内部需要进行电压补偿的位置,这样能够充分考虑芯片的每一个设计阶段存在的压降问题,提高了芯片内部压降补偿的精度,提高了芯片的准确性。
[0077] 作为步骤304的一种可能实现方式,图4为本发明提供的芯片内部动态压降补偿方法实施例三的流程图。本发明实施例是在上述实施例的基础上对芯片内部动态压降补偿方法的进一步说明。如图4所示,在本发明实施例提供的芯片内部动态压降补偿方法中,上述步骤304,即确定插入耦合电容之后的芯片内部需要进行电压补偿的位置,包括:
[0078] 步骤401:在芯片的当前设计阶段,确定插入所述耦合电容之后的芯片包括的多个更新芯片模块。
[0079] 步骤402:获取每个更新芯片模块的瞬态压降和静态压降。
[0080] 步骤403:根据每个更新芯片模块的瞬态压降和静态压降,确定插入耦合电容之后的芯片内部需要进行电压补偿的位置。
[0081] 在本实施例中,如果上述多个芯片模块中存在芯片模块的补偿瞬态压降不满足瞬态压降约束条件,对芯片的当前设计阶段重新设计时,为了保证整个芯片的工作性能,本发明实施例通过对插入耦合电容之后的芯片进行划分模块,确定出插入耦合电容之后的芯片包括的多个更新芯片模块。为了区分第一次设计与后续重新设计时的芯片模块,本发明将后续重新设计时划分得到的模块定义为了更新芯片模块。
[0082] 所以,当将插入耦合电容之后的芯片划分为多个更新芯片模块之后,可以通过获取每个更新芯片模块的瞬态压降和静态压降,进而确定出插入耦合电容之后的芯片内部需要进行电压补偿的位置。本发明实施例中的确定插入耦合电容之后的芯片内部需要进行电压补偿的位置的方法与图1所示实施例中的确定芯片内部需要进行电压补偿的位置的方法类似,此处不再赘述。
[0083] 本发明实施例提供的芯片内部动态压降补偿方法,通过在芯片的当前设计阶段,确定出插入耦合电容之后的芯片包括的多个更新芯片模块、以及获取每个更新芯片模块的瞬态压降和静态压降,进而确定出插入耦合电容之后的芯片内部需要进行电压补偿的位置,这样能够确保后续确定的电压补偿位置能够满足整个芯片的工作性能,为提高芯片的准确性奠定了基础。
[0084] 在上述各实施例的基础上,图5为本发明提供的芯片内部动态压降补偿方法实施例四的流程图。图5作为上述步骤102的一种可能实现方式,其是对芯片内部动态压降补偿方法的进一步说明。如图5所示,在本发明实施例提供的芯片内部动态压降补偿方法中,上述步骤102,即获取每个芯片模块的瞬态压降和静态压降,包括:
[0085] 步骤501:确定芯片运行的时钟周期所包括的多个时间段。
[0086] 为了确定每个芯片模块的瞬态压降和静态压降,首先需要知道芯片运行在时钟周期时的瞬态电流和总电流。又由于系统时钟以一个特定频率运行,瞬态电流一般与时钟周期相关,因此,每个芯片模块的电流值也有一定周期性。为了避免仿真选择运行的程序存在覆盖不完全的问题,本发明实施例通过将芯片运行的时钟周期分为多个时间段,确定出芯片运行的时钟周期所包括的多个时间段,进而分别针对每个时间段来确定每个芯片模块的瞬态压降和静态压降。
[0087] 步骤502:获取每个芯片模块中每个器件在每个时间段内的翻转概率。
[0088] 具体的,在芯片的设计阶段,当芯片需要的器件选定之后,根据每个器件的输入输出特性,可以估算出每个器件在芯片运行的时钟周期内每个时间段的翻转概率。
[0089] 步骤503:根据每个器件在每个时间段内的翻转概率以及每个器件的每次翻转功耗,确定每个芯片模块在时钟周期内的总电流值以及各个时间段的电流值。
[0090] 可选的,根据每个器件本身的特性,可以获取到器件每次翻转时的功耗,即每次翻转功耗。所以,根据每个器件在每个时间段内的翻转概率以及每个器件的每次翻转功耗,可以首先得到时钟周期内每个时间段的瞬态功耗变化情况,进而可求出每个芯片模块在时钟周期内的各个时间段的电流值,从而计算出每个芯片模块在时钟周期内的总电流值。
[0091] 步骤504:根据每个芯片模块在时钟周期内的总电流值,确定每个芯片模块的静态压降。
[0092] 对于每个确定器件,其对应的阻值特性则是确定的,因此当确定出每个芯片模块在时钟周期内的总电流值后,根据每个芯片模块在时钟周期内的总电流值以及每个器件的阻值特性,可以确定出每个芯片模块的静态压降。
[0093] 步骤505:根据每个芯片模块在时钟周期内各个时间段的电流值,确定每个芯片模块在时钟周期内各个时间段的瞬态压降。
[0094] 类似的,对于每个时间段,根据每个芯片模块在时钟周期内各个时间段的电流值以及每个器件的阻值特性,可以确定出每个芯片模块在时钟周期内各个时间段的瞬态压降。
[0095] 本发明实施例提供的芯片内部动态压降补偿方法,通过确定芯片运行的时钟周期所包括的多个时间段,获取每个芯片模块中每个器件在每个时间段内的翻转概率,再结合每个器件的每次翻转功耗,便可确定出每个芯片模块在时钟周期内的总电流值以及各个时间段的电流值,进而可确定出每个芯片模块的静态压降和瞬态压降,即本发明实施例采用时序分析,将时钟周期进行划分为多个时间段进行计算,能够全面分析芯片模块在整个时钟周期的功耗和电流变化情况,从而避免了分析覆盖不全面的问题,提高了每个芯片模块的瞬态压降和静态压降的准确度。
[0096] 进一步的,在上述实施例的基础上,本发明实施例中的芯片的设计阶段依次包括:芯片布局阶段、芯片加入时钟树阶段和芯片布线阶段。
[0097] 下面以芯片设计的具体实现方式进行详细说明。
[0098] 首先对要设计的芯片进行布局,即芯片布局阶段。当芯片布局阶段完成后,采用本发明图1所示实施例的方法来分析芯片内部需要进行电压补偿的位置。如果芯片内部没有需要进行电压补偿的位置,也即,每个芯片模块的瞬态压降均满足瞬态压降约束条件,则直接进入芯片加入时钟树阶段。如果芯片内部有需要进行电压补偿的位置,也即,存在芯片模块的瞬态压降不满足瞬态压降约束条件,此时在芯片内部需要进行电压补偿的位置中插入耦合电容,进而对插入耦合电容的芯片重新进行布局,并按照图4对应实施例的方法继续分析需要进行电压补偿的位置,直至没有需要进行电压补偿的位置为止,即每个更新芯片模块的补偿瞬态压降均满足瞬态压降约束条件。
[0099] 其次,当芯片的布局均符合要求后,芯片设计进行芯片加入时钟树阶段。在芯片中加入时钟树后,再采用图1所示实施例的方法分析芯片内部需要进行电压补偿的位置,如果芯片内部没有需要进行电压补偿的位置,也即,每个芯片模块的瞬态压降均满足瞬态压降约束条件,则进入芯片布线阶段。如果芯片内部有需要进行电压补偿的位置,也即,存在芯片模块的瞬态压降不满足瞬态压降约束条件,在芯片内部需要进行电压补偿的位置中插入耦合电容,进而对插入耦合电容的芯片重新进行布局,并按照本发明提供的方法继续分析芯片内部需要进行电压补偿的位置,直至芯片内部没有需要进行电压补偿的位置为止。
[0100] 值得注意的是,若在芯片布局阶段已经插入耦合电容,则可在后续芯片加入时钟树阶段和芯片布线阶段分析之前插入的耦合电容是否需要改变,如果发现插入耦合电容的位置因为布局变化、时序变化,已经不合适了,则可以清除掉这些耦合电容,降低无用耦合电容产生的漏电情况,以及减小无用耦合电容占用的芯片面积。
[0101] 由于本发明实施例提供的技术方案可以分析芯片可能出现的最坏情况,以及该种最坏情况对应的压降结果,因此其可以为芯片设计者提供签核依据。
[0102] 值得说明的是,本发明实施例中的瞬态压降约束条件可以是压降小于或等于芯片基准电压的10%,但是其还可根据实际情况进行调节,本发明实施例并不对其进行限定。
[0103] 进一步的,在芯片布局阶段,虽然芯片中还没有插入完整的时钟树,但是芯片布局工具会根据每个器件翻转的时间计算出一个理论值,这个理论值与在完成芯片加入时钟树阶段和芯片布线阶段之后的实际值有一定差距,但其并不影响芯片设计者分析芯片内部的问题点。利用瞬态电流分析方法可以得到一个在理想时序中芯片瞬态电流变化情况,进而计算瞬态压降和需要插入耦合电容的位置,这样在芯片布局阶段就有更大的优化力度,而不会出现在芯片布局后期出现面积不够,从而无法插入耦合电容的情况,而之前插入的耦合电容也会撑开问题点的面积,将集中出现的问题点分散开,这本身就减少了同时翻转的瞬态电流。
[0104] 总体来说,本发明实施例提供的芯片内部动态压降补偿方法,利用瞬态电流分析方法来得到瞬态压降变化情况,在考虑静态压降的情况下,对芯片内划分的芯片模块进行分析,找到可能出问题的点之后利用耦合电容补偿瞬态压降,并且分析之前加入的耦合电容是否因为芯片设计中的时序变化变得多余,进而去除多余的耦合电容减少芯片漏电,节省面积。本发明实施例可以对芯片内部的实际瞬态压降进行测量,并通过补偿方法对瞬态压降进行补偿,这一步骤可以贯穿芯片设计的始终,减少了分析难度,提高了设计精度,摆脱了对芯片行为级仿真的依赖,对芯片设计流程影响不大,满足了对芯片内部压降分析、补偿的需求。
[0105] 下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
[0106] 图6为本发明提供的芯片内部动态压降补偿装置实施例一的结构示意图。本发明实施例提供的芯片内部动态压降补偿装置应用于芯片的每一个设计阶段。如图6所示,该装置,包括:
[0107] 第一确定模块601,用于在芯片的当前设计阶段,确定芯片包括的多个芯片模块,该多个芯片模块由所述芯片要实现的功能、所述芯片的规模大小划分得到,所述芯片的每个芯片模块包括至少一个器件。
[0108] 压降获取模块602,用于获取每个芯片模块的瞬态压降和静态压降。
[0109] 位置确定模块603,用于根据每个芯片模块的瞬态压降和静态压降,确定所述芯片内部需要进行电压补偿的位置。
[0110] 本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0111] 图7为本发明提供的芯片内部动态压降补偿装置实施例二的结构示意图。本发明实施例是在上述实施例的基础上对芯片内部动态压降补偿装置的进一步说明。如图7所示,本发明实施例提供的芯片内部动态压降补偿装置,还包括:插入模块701。
[0112] 该插入模块701,用于在上述位置确定模块603确定出芯片内部需要进行电压补偿的位置之后,在芯片内部需要进行电压补偿的位置插入耦合电容。
[0113] 进一步的,如图7所示,本发明实施例提供的芯片内部动态压降补偿装置,还包括:条件判断模块702、更新位置确定模块703和处理模块704。
[0114] 而上述压降获取模块602,还用于插入模块701在芯片内部需要进行电压补偿的位置插入耦合电容之后,获取插入耦合电容之后的芯片中每个芯片模块的补偿瞬态压降。
[0115] 相应的,该条件判断模块702,用于判断多个芯片模块中每个芯片模块的补偿瞬态压降是否均满足瞬态压降约束条件。
[0116] 该更新位置确定模块703,用于在多个芯片模块中存在芯片模块的补偿瞬态压降未满足瞬态压降约束条件时,确定插入所述耦合电容之后的芯片内部需要进行电压补偿的位置。
[0117] 该处理模块704,用于在多个芯片模块中每个芯片模块的补偿瞬态压降均满足瞬态压降约束条件时,进入芯片的下一个设计阶段。
[0118] 本实施例的装置,可以用于执行图3所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0119] 图8为本发明提供的芯片内部动态压降补偿装置实施例三的结构示意图。本发明实施例是在上述实施例的基础上对芯片内部动态压降补偿装置的进一步说明。如图8所示,在本发明实施例提供的芯片内部动态压降补偿装置中,上述更新位置确定模块703,包括:更新确定单元801、更新压降获取单元802和更新位置确定单元803。
[0120] 该更新确定单元801,用于在芯片的当前设计阶段,确定插入耦合电容之后的芯片包括的多个更新芯片模块。
[0121] 该更新压降获取单元802,用于获取每个更新芯片模块的瞬态压降和静态压降。
[0122] 该更新位置确定单元803,用于根据每个更新芯片模块的瞬态压降和静态压降,确定插入耦合电容之后的芯片内部需要进行电压补偿的位置。
[0123] 本实施例的装置,可以用于执行图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0124] 图9为本发明提供的芯片内部动态压降补偿装置实施例四的结构示意图。本发明实施例是在上述实施例的基础上对芯片内部动态压降补偿装置的进一步说明。如图9所示,在本发明实施例提供的芯片内部动态压降补偿装置中,上述压降获取模块602,包括:时间段确定单元901、翻转概率获取单元902、电流确定单元903、静态压降确定单元904和瞬态压降确定单元905。
[0125] 该时间段确定单元901,用于确定芯片运行的时钟周期所包括的多个时间段。
[0126] 该翻转概率获取单元902,用于获取每个芯片模块中每个器件在每个时间段内的翻转概率。
[0127] 该电流确定单元903,用于根据每个器件在每个时间段内的翻转概率以及每个器件的每次翻转功耗,确定每个芯片模块在时钟周期内的总电流值以及各个时间段的电流值。
[0128] 该静态压降确定单元904,用于根据每个芯片模块在时钟周期内的总电流值,确定芯片模块的静态压降;
[0129] 该瞬态压降确定单元905,用于根据每个芯片模块在时钟周期内各个时间段的电流值,确定每个芯片模块在时钟周期内各个时间段的瞬态压降。
[0130] 本实施例的装置,可以用于执行图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
[0131] 进一步的,在本发明实施例提供的芯片内部动态压降补偿装置中,上述芯片的设计阶段依次包括:芯片布局阶段、芯片加入时钟树阶段和芯片布线阶段。
[0132] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0133] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。