一种基于功耗库的大规模数字集成电路功耗动态评估装置的制作方法

文档序号:6340284阅读:237来源:国知局
专利名称:一种基于功耗库的大规模数字集成电路功耗动态评估装置的制作方法
技术领域
本发明涉及一种大规模数字集成电路的功耗评估技术。
背景技术
随着半导体工艺的进步,半导体器件的尺寸不断缩小,相同面积的芯片上能够集 成越来越多的晶体管,因而数字集成电路的规模也越做越大,其工作频率也越来越高,这使 得功耗成为制约数字集成电路设计的关键问题之一。而要设计低功耗的数字集成电路,首 先需要对数字集成电路的功耗进行评估。目前对数字集成电路的功耗进行评估的技术分为静态评估和动态评估两种。静态 评估是根据电路的逻辑功能和输入信号的概率统计特性对电路中各节点的状态转换概率 进行估计,从而计算出电路的平均功耗。静态评估的速度很快,但是精度不高。动态评估是 通过给电路的功耗模型提供输入向量激励进行模拟仿真来计算电路在此输入激励下的功 耗。动态评估的计算速度依赖于被仿真电路的规模大小,以及所采用电路模型的精细程度。 当前在工业界得到广泛认可并使用的高精度电路模拟器HSPICE在模拟电路时,由于使用 十分精细的电路模型,因此仿真精度非常高。但是由于使用的模型非常精细,导致对于稍大 规模的电路,它的仿真速度非常慢,因此难以应用于大规模数字集成电路的功耗仿真。而其 他的可用于动态评估电路功耗的晶体管级模拟器如hsim,Powermill等,由于使用了更为 精简的电路模型,虽可用于大规模数字集成电路的功耗仿真,但由于每个时钟周期依然需 要更短时间步长的多次仿真计算迭代,因此计算速度依然相当的慢。而对于Vstorm等可以 使用静态评估技术评估电路功耗的EDA工具虽然评估速度快,但其评估功耗的精度不高。

发明内容
本发明要解决的技术问题是在大规模集成电路的设计过程中,提供一种功耗动态 评估装置对电路的功耗进行精准快速的评估。为解决上述技术问题,本发明的基于功耗库的大规模数字集成电路功耗的动态评 估装置是采用如下技术方案实现的所述装置由功耗库构建模块(01)和功耗评估模块(02)组成,所述装置首先将大 规模数字集成电路看成是由许多种基本单元电路的若干个实例以及这些实例之间的互连 线组成的,这样整个电路的功耗就是由所有基本单元电路实例的功耗之和再加上所有基本 单元电路实例之间互连线信号翻转消耗的功耗之总和。为得到每一个基本单元电路实例的功耗,所述装置首先需要得到每一种基本单元 电路在各种输入激励下的功耗,这项功能通过所述装置的功耗库构建模块(01)来实现。所 述装置的功耗库构建模块(01)又由电路分析模块(15),功耗模型构建模块(16),激励生成 模块(19),功耗仿真模块(17),仿真结果分析模块(18)等5个子模块构成。所述装置的功 耗库构建模块(01)中的电路分析子模块(1 通过分析电路的门级网表(03),得到电路所 使用的各种基本单元电路的列表(04),然后所述功耗库构建模块(01)中的功耗模型构建子模块(16)在电路的设计库中检索该列表中每一种基本单元电路,获取该基本单元电路 的端口和存储节点信息(05),并分别自动构建每个基本电路单元的功耗模型(06),该功耗 模型构建子模块(16)能够自动对数字电路中所有已知的下述类型的基本单元电路,包括, 各种静态组合逻辑单元,动态多米诺逻辑单元,动态预充单元,静态时序单元,动态时序单 元,动态存储单元,静态存储单元,门控时钟单元,CAM单元,带敏感放大器的SRAM阵列单元 等进行功耗模型构建。所述功耗库构建模块(01)中的激励生成子模块(19)则根据该基本 单元电路的端口和存储节点信息(05)为该基本单元电路功耗模型(06)自动产生输入向量 及存储节点初始化信息(07),然后所述功耗库构建模块(01)中的功耗仿真模块(17)通过 HSPICE对该基本单元电路功耗模型(06)在各种输入向量和存储节点初始状态情况下的功 耗进行精确地仿真分析,仿真过程还需要配置基本单元电路的工作电压、工作频率和环境 温度。由于每一个基本单元电路的规模很小,其端口数与存储节点数也很少,虽然自动创建 的基本单元电路模型非常精细,因此也能在很短的时间内用HSPICE仿真得到此基本单元 电路在各种输入和存储节点翻转情况下功耗的精确值,通过所述功耗库构建模块(01)中 的仿真结果分析子模块(18)对仿真结果进行分析提取,就能够得到包含了电路中各种基 本单元电路在各种输入激励及存储节点初始状态下的功耗精确值,并将其写入基本单元电 路功耗库(09),并提供给所述装置中的功耗评估模块(02)。在得到电路的基本单元电路功耗库(09)之后,所述装置的功耗评估模块(02)即 可对电路的功耗进行动态评估。所述装置的功耗评估模块(02)由互连线寄生电容反标模 块(20),波形与网表分析模块(21),互连线功耗计算模块(22),功耗库检索模块(23),功耗 统计模块(24)等5个子模块组成。所述装置的功耗评估模块(02)中的波形与网表分析子 模块(21)首先对电路门级网表文件(03)进行分析,将电路解析成一个个基本单元电路的 实例以及它们之间互连线的集合,然后对电路门级功能仿真波形文件(11)进行分析,得到 和所有互连线信号翻转信息(13),并分别提供给和互连线功耗计算子模块(22)。所述装置的功耗评估模块(2)中的功耗库检索子模块(23)在得到所有基本单元 电路实例端口和存储节点的翻转信息(12)后就可以根据此信息检索基本单元电路功耗库,得到每个基本单元电路实例在任一时钟节拍内的功耗。由于这只是一个查表操作,因 此能很快得到电路中任一时钟节拍内任一基本单元电路的功耗。所述装置的功耗评估模块(2)中的互连线功耗计算子模块(22)在得到所有互连
线信号翻转信息(13)以后就可以根据公式7 =-CF^/来计算所有基本单元电路实例之
间互连线的功耗,其中Vdd为工作电压,f为电路的工作频率,C为某个互连线信号的寄生电 容的值,它是由所述装置的功耗评估模块(2)中的互连线寄生电容反标子模块(20)通过分 析电路寄生参数提取文件(10)和电路门级网表文件(03),将电路中每根基本单元电路实 例之间的互连线的寄生电容进行反标得到的。由于电路寄生参数提取文件是通过工业界广 泛采用的电路寄生参数提取EDA工具通过提取电路版图设计得到的,这确保了所获得的互 连线信号的寄生电容的精确性,从而确保了计算出的互连线信号翻转功耗值的高精度。通过累计任一时钟节拍内上述功耗库检索子模块(23)和互连线功耗子模块(22) 检索或计算得到的所有基本单元电路实例的功耗以及实例间互连线的功耗,所述装置的功 耗评估模块(02)中的功耗统计子模块(24)就可以得到整个电路在任一时钟节拍内的功耗,并最终得到整个电路运行此门级仿真波形时的平均功耗和峰值功耗,形成电路功耗报 告文件(12)。由上述描述可知,本发明所述装置在计算每个时钟周期电路的总功耗时,对于每 一个基本单元电路实例只需要进行一次检索基本单元电路功耗库的操作,得到每个基本单 元电路实例在此时钟周期下的功耗,并将所有基本单元电路实例的功耗相加,同时再加上 这些实例之间互连线的信号翻转功耗,这样,在一个时钟周期内只需要进行一次计算迭代, 这与通常晶体管级模拟器(如Hsim等)需要采用比一个仿真时钟周期小得多的时钟步长 进行多次计算循环迭代才能计算出电路在一个仿真时钟周期的功耗相比,计算速度可提升 3到4个数量级。


下面结合附图与具体实施方式
对本发明作进一步详细的说明图1是本发明基于功耗库的大规模数字集成电路功耗动态评估装置的总体结构 及其实施方式的运行示意图。图2是本发明基于功耗库的大规模数字集成电路功耗动态评估装置中功耗库构 建模块的结构及其实施方式的运行示意图。图3是本发明基于功耗库的大规模数字集成电路功耗动态评估装置中功耗评估 模块的结构及其实施方式的运行示意图。
具体实施例方式如图1所示,本发明的基于功耗库的大规模数字集成电路功耗动态评估装置对电 路的功耗进行动态评估时,首先需要通过所述装置的功耗库构建模块(01)为电路构建基 本单元电路功耗库(09),然后才能通过所述装置的功耗评估模块(0 。图1和图2分别描 述了所述装置的功耗库构建模块(01)和功耗评估模块(02)运行时的具体实施方式
。如图2所示,本发明装置所述的功耗库构建模块(01)的运行分为如下4个步骤1)通过分析电路的门级网表文件(03),装置得到电路中究竟包含了哪几种基本 单元电路的信息,从而形成电路的基本单元电路列表(04)。2)对基本单元电路列表(04)中的每一种基本单元电路,装置的功耗模型构建子 模块(16)根据它的名称检索基本单元电路设计库,从而自动为它构建功耗模型(06),并提 取它的端口与存储节点的信息(05)。而装置的激励生成子模块(19)通过自动遍历它的输 入端口和存储节点的各种翻转情况为HSPICE进行功耗仿真产生所需要的输入向量与存储 节点初始化信息。例如对于单输入缓冲器BUF这种组合逻辑单元电路,假设BUF的输入端 口为A,输出端口为Y,本装置的功耗库构建模块(01)将根据此基本单元电路的端口信息, 分析出该基本单元电路输入有四种翻转情况,从而遍历这4种翻转情况,分别产生输入向 量激励,并对产生的向量进行编码如下a)输入激励为A = 0,不发生翻转,编码为sOb)输入激励为A = 1,不发生翻转,编码为Slc)输入激励为A从0翻转为1,编码为sOt 1d)输入激励为A从1翻转为0,编码为SltO
3)装置的功耗仿真子模块通过HSPICE对每一种基本单元电路在各种输入端口和 存储节点翻转情况下的功耗进行仿真。装置首先对基本单元电路的输入端口翻转的各种情 况分别产生输入激励向量,并对其每个输入激励向量进行编码,然后在每种编码对应的输 入向量下分别进行HSPICE功耗仿真,并将仿真结果写入仿真结果文件(08)中,该仿真过程 所需要的电路的工作电压、工作频率和环境温度可根据电路工作的实际情况进行配置。4)装置的仿真结果处理模块(18)对仿真结果文件(08)进行处理,最终将每个 基本单元电路在各种输入翻转情况以及存储节点状态下的功耗写入基本单元电路功耗库 (09),从而完成该电路的基本单元电路功耗库(09)构建。基本单元电路功耗库(09)的格 式如下
Leaf DFFQNX0P5A12TR{//Ieafcell的名称
TYPE DFF //Ieafcell的类型为DFF类(时序类单元)
Cinput CK L1. 032000e-16 ‘输入端口 CK的电容
Cinput D5.184000e-16输入端口D的电容
PsOal -6.,668000e-08 输入为CK = 0,D = 1且无翻转,存储节点状态为1时的功耗
Ps2al -8.,618000e-08 输入为CK = 0,D = 1且无翻转,存储节点状态为1时的功耗
Ps2a0 -5.,537000e-08输入为CK = 0,D = 1且无翻转,存储节点状态为0时的功耗
PsOaO -1.,015000e-071输入为CK = 0,D = 0且无翻转,存储节点状态
PslaltO ■-3.592000e-06
Ps0alt2 ■-2.551000e-06
Ps2alt0 ■-3.926000e-06
PsOaltl ■-3.616000e-06
Pslalt3 --4.636000e-07
Ps3altl --1.561000e-06
Ps3alt2 ■-5.735000e-06
Ps2alt3 ■-6.824000e-06
Ps3a0tl ■-1.570000e-06
Psla0t3 ■-5.437000e-07
Ps3a0t2 ■-3.752000e-06
Ps2a0t0 ■-3.762000e-06
Ps0a0t2 ■-2.476000e-06
Ps2a0t3 ■-3.458000e-06
PslaOtO ■-6.294000e-06
PsOaOtl ■-7.150000e-06
}
......
Leaf NAND2X0P7A12TL{xIeafcell的名称
TYPE COM"类型
CinputA 9.604980e-16//输入端A的电容
CinputB 9.604980e-16//输入端B的电容
Ps0 -1450000e-08//A = 0,B = 0,无翻转时的功耗
Psi -8155000e-08//A= LB = 0,无翻转时的功耗
Ps2 -1175000e-07//A = 0,B = 1,无翻转时的功耗
Ps3 -9198000e-08
PsOtl2. 238000e-07//A初始为0翻转为1,B = 0无翻转时的功耗
PsltO-8.888000e-07
Ps0t25.563000e-07
Ps2t0-8.221000e-07
Ps0t3-4.877000e-07Il输入A从0到1翻转,输入B从0到1翻转时的功耗
Ps3tl-3.551000e-06
Pslt2-8.490000e-07
Ps2tl-2.133000e-06
Pslt3-1.063000e-06
Ps3t2-2.653000e-06
Ps2t3-1.105000e-06
Ps3t0-3.242000e-06
}
从基本单元电路功耗库(9)的格式可以看出,基本单元电路功耗库(9)保存了电路中每--种基本单元电路的所有输入端口电容、名称、类型、以及以编码来标识的各种输入
翻转以及存储节点情况下的功耗的信息。这样,如果已知某个基本单元电路的名称,以及在 某个时刻它输入端的翻转情况和存储节点的状态,就可以根据它的名称以及翻转情况的编 码检索基本单元电路功耗库(09)获得该基本单元电路在该时刻输入翻转情况下消耗的功
^^ ο如图3所示,本发明中所述装置的电路功耗评估模块的运行实施方式描述如下所述装置的输入是电路的门级网表文件(03)、电路寄生参数提取文件(10)、电路 经门级功能仿真获得的波形文件(11),以及所述装置的功耗库构建模块(01)所产生的基 本单元电路功耗库(09)。电路的门级网表文件(03)给出了电路中所有基本单元电路的种类、例化名称、输 入输出端口、内部存储节点以及这些基本单元电路实例之间互连线的信号名称等信息。电路经门级功能仿真获得的波形文件(11)则记录了电路中所有基本单元电路的 例化名称以及各基本单元电路实例的输入输出端口、存储节点以及实例之间互连信号在任 一时刻的翻转情况的信息。通过装置中的波形与网表分析子模块(21)对这两个文件进行分析,就能够得到 电路中所有基本单元电路的种类以及端口和内部存储节点的翻转信息(12),所有基本单元电路实例之间互连信号的翻转信息(13)。这样在任一时钟周期,装置就可以得到电路中任一基本单元电路实例的名称、输 入端口和存储节点的翻转情况,通过对输入端口和存储节点在此时刻的翻转情况进行编 码,再利用此编码和Ieafcell的名称检索基本单元电路功耗库(09),就能得到电路中任一 基本单元电路实例在此一时钟周期的功耗。电路寄生参数提取文件(10)包含了电路中所有互连线的寄生电容。由于该文件 是装置通过使用工业界的主流电路寄生参数提取工具抽取得到的,因此其中互连线的电容 值具有很高的精度。装置的寄生电容反标子模块00)对电路门级网表文件(0 以及电路 寄生参数提取文件(10)进行分析,就可以将所有基本单元电路之间互连线信号的寄生电 容信息(14)精确地反标出来。这样,对于所有基本单元电路之间的互连线在某一时钟周期 的功耗,若此互连线在该时刻未发生翻转,则认为该互连线的功耗为0,若此时该互连线发
生了信号翻转,则依据公式ρ =来进行计算此互连线信号翻转的功耗,这里C为此
互连线信号的寄生电容,V为电路的工作电压,f为电路的工作频率。这样,在任一时钟周期,装置通过累计电路中所有基本单元电路实例的功耗以及 基本单元电路实例之间所有互连线的功耗,就能得到任一时钟周期内,电路的总功耗。通过 统计仿真波形覆盖的所有仿真时钟周期电路的总功耗,就能够得到电路在此波形文件(11) 的输入激励下电路的平均功耗、峰值功耗以及达到峰值功耗的时间点。
权利要求
1.一种基于功耗库的大规模数字集成电路功耗动态评估装置,其特征在于,由功耗库 构建模块(01)和功耗评估模块(02)组成,所述装置的功耗库构建模块(01)通过分析数 字集成电路的门级网表文件(03),从中提取出该电路使用的所有基本单元电路种类的列表 (04);然后所述装置的功耗库构建模块(1)通过检索基本单元电路设计库0 自动为这 些基本单元电路分别创建功耗模型(06)并为功耗模型产生输入向量和初始化电路存储节 点,进行指定环境温度、工作频率和工作电压条件下HSPICE仿真,从而为待功耗评估电路 形成基本单元电路功耗库(9),并提供给所述装置的功耗评估模块(02);然后,功耗评估模 块(0 通过分析电路设计过程中产生的电路门级网表文件(0 ,电路门级功能仿真波形 文件(11),电路寄生参数提取文件(10),检索它所获取的基本单元电路功耗库(9),对电路 在指定工作温度、工作频率和工作电压下的功耗进行动态评估。
2.如权利要求1所述的基于功耗库的大规模数字集成电路功耗动态评估装置,其特征 在于,所述装置中的功耗库构建模块(01)有一个功耗模型构建子模块(16),能够为数字电 路中所有已知的下列类型的基本单元电路,包括,各种静态组合逻辑单元,各种动态多米诺 逻辑单元,各种动态预充单元,各种静态时序单元,各种动态时序单元,各种动态存储单元, 各种静态存储单元,各种门控时钟单元,各种CAM单元,各种带敏感放大器的SRAM阵列单元 等自动构建功耗模型(06);所述装置的功耗库构建模块(01)通过分析数字集成电路的门 级网表文件(03),从中提取出该电路使用的所有基本单元电路种类的列表(04)并提供给 功耗模型构建子模块(16);对于此列表(04)中的每一种基本单元电路,功耗模型构建子模 块(16)通过检索基本单元电路设计库自动为其构建功耗模型(06),并提取该基本单元电 路的端口和存储节点的信息(05),然后根据其端口与存储节点信息(05)自动遍历输入和 存储节点翻转的各种情况产生输入向量和存储节点初始化的信息(07)提供给此基本单元 电路的功耗模型(06),用于此基本单元电路的HSPICE功耗仿真,通过提取HSPICE功耗仿真 后形成的仿真结果(08)并进行处理,所述装置的功耗库构建模块(01)就为待功耗评估电 路自动产生了基本单元电路功耗库(09);由于每个基本单元电路的规模很小,采用高精度 的HSPICE电路模拟器进行功耗仿真的速度很快,因此所述装置的功耗库构建模块(01)能 快速提供高精度的基本单元电路功耗库(09),而且一旦产生了基本单元电路功耗库(09), 则以后进行功耗评估时,只要电路的工作电压和工作频率以及环境温度不变,就可以直接 使用此功耗库,无需再重新构建基本单元电路功耗库。
3.如权利要求1所述的基于功耗库的大规模数字集成电路功耗动态评估装置,其特 征在于,所述装置的功耗评估模块(2) —旦获得了如权利要求2所述装置的功耗库构建模 块(1)为待功耗评估电路自动构建的基本单元电路功耗库(09),所述装置的功耗评估模 块⑵就可以通过分析电路经门级功能仿真获得的波形文件(11),以及电路的门级网表文 件(03),得到待功耗评估电路使用的所有基本单元电路实例的端口和存储节点在任意一个 仿真时钟周期的状态翻转信息(12)和互连线信号翻转信息(13),然后,所述装置的功耗评 估模块O)的功耗库检索子模块03)利用此信息(12)来检索电路的基本单元电路功耗 库(9),从而计算出此基本单元电路实例在此仿真时钟周期内消耗的功耗,而对于基本单元 电路实例之间的互连信号,所述装置的功耗评估模块O)中的互连线寄生电容反标子模块 (20)通过分析电路寄生参数提取文件(10),将这些互连线的寄生电容反标给电路的门级 网表(03),所述装置的功耗评估模块( 中的互连线功耗计算子模块0 再根据互连信号的翻转信息(13),计算出基本单元电路实例之间互连信号线翻转所消耗的功耗,所述装置 的功耗评估模块(2)再通过累计所有基本单元电路实例的功耗以及各它们之间的互连信 号线翻转消耗的功耗就可以计算出电路在此仿真时钟周期的总功耗。
4.如权利要求1所述的基于功耗库的大规模数字集成电路功耗动态评估装置,其特 征在于在电路的每一个仿真时钟周期,所述装置的功耗评估模块(0 检索所述装置的功 耗库构建模块(01)为电路自动构建的基本单元电路功耗库,得到电路中每个基本单元电 路实例在该周期的功耗,并进行累加,同时累加上基本单元电路实例之间所有互连信号翻 转消耗的功耗,这个过程只需要进行一次计算迭代就可得出电路在此一仿真时钟周期的功 耗,这与通常的晶体管级模拟器需要采用比一个仿真时钟周期小得多的时间步长进行多次 计算循环迭代才能计算出电路在一个仿真时钟周期的功耗相比,在评估精度差异不大的情 况下,评估速度提升达三到四个数量级。
全文摘要
本发明公开了一种基于功耗库的大规模数字集成电路功耗动态评估装置。该装置解决了对大规模数字集成电路功耗进行动态评估时存在的评估速度过慢,耗费时间过长的问题。该装置由功耗库构建模块和功耗评估模块组成。功耗库构建模块能为待功耗评估电路中使用的各种基本单元电路自动创建功耗模型并进行HSPICE仿真,从而为形成基本单元电路功耗库提供给功耗评估模块。功耗评估模块则通过分析电路设计过程中产生的电路门级网表、门级功能仿真波形文件、电路寄生参数提取文件,检索它所获取的基本单元电路功耗库,对电路的功耗进行动态评估。本发明的功耗动态评估装置在电路功耗动态评估过程中既保证了高的计算精度,又兼具高的计算速度。
文档编号G06F17/50GK102147822SQ201010610289
公开日2011年8月10日 申请日期2010年12月23日 优先权日2010年12月23日
发明者吴越, 姚荣, 田新华 申请人:上海高性能集成电路设计中心
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1