功耗分析

功耗主要分为动态功耗和静态功耗。静态功耗是芯片中的部分或全部电路在通电但不工作的状态下的功耗;动态功耗是芯片在正常工作时因信号翻转引起的功耗。

静态功耗=leakage power(漏电功耗);

动态功耗=internal power(短路功耗) + switching power(开关功耗)。

 

leakage power,即漏电功耗,电路不活动或空闲时消耗的功率。所有输入都处于保持有效电平,没有开关活动,并且电路没有充电。然而,即使在这种“稳定状态”下,器件中也会存在一些泄漏电流,这会导致泄漏功率。这种功耗不取决于输入条件或负载电容,而是取决于器件。

Internal power,即短路功耗,主要由pmos和nmos晶体管同时导通产生的,内部开关功耗则由输入跳变,内部电容充电产生。是动态功耗的主要部分。通常会参考Timing Library中cell的查找表和占空比,与信号翻转率来进行计算。Internal Power是动态功耗的主要部分。

switch power,即开关功耗。cell外部的电容充放电引起的功耗。输出负载的充放电引起,所以其大小与单元类型无关,只与输出电容负载,开关频率和供电电压大小有关。

 

internal power的定义是在cell内部由于充放电而产生的功耗,每个cell的功耗数值都可以在.lib文件中通过特定的查表方式获取。其实贡献internal power的因素应该分为两个因素:一是信号翻转时由于NMOS和PMOS同时导通而产生的短暂但巨大的贯穿电流;二是给内部和外部负载充放电所消耗的能量。对于第一种贯穿电流可以参考,其中slew的大小会影响贯穿电流,进而影响功耗大小。

 

 

第一种cell类型:单输入cell。这类cell以inverter为代表,仅有一个输入和输出,它的internal power计算方式最为简单直接, 就是input transiton和output load的二维查表,而且需要注意,这里的internal power是定义在输出端的

 

 

第二种是多输入的组合逻辑门如nand,xor等。这类cell有一种共同点,那就是在特定条件下某一个或者几个pin的输入值对输出不造成影响,例如当nand的A1输入为0时,不管A2的输出是什么,最终输出都是1。此时尽管A2对输出没有贡献,但是它仍然会消耗一部分功耗,而这部分功耗会单独在.lib文件中有所体现:

 

 

第三种就是时序逻辑门如DFF。它的特殊之处主要有两点:一是输入的CLK pin即使在锁存的数值没有变化的时候仍然会消耗能量,具体原因大家可以参考DFF的内部结构;二是DFF一般都存在输出Q和取反值QN,每次Q的变化都会导致QN也发生变化,这部分QN的翻转也会消耗额外的能量,因此输出pin上的internal power会变成input, Q和QN负载的三维表格:

 

 switching power主要是和cell输出后挂接的负载相关,取决于负载的大小和开关速率和电压。

参考:https://zhuanlan.zhihu.com/p/278230691

 

posted @ 2022-12-07 17:29  验证cc  阅读(1695)  评论(0编辑  收藏  举报