平均功耗是我们最常用到的功耗描述,在后端的很多场景下用的都是平均功耗,包括Static IR分析等。平均功耗下面我们先明确几个相关概念:
Tr(Toggle Rate):描述的是单位时间内时钟翻转的次数,例如在40ns内时钟翻转4次,那Tr = 4/40 =0.1;Sp(Static Probability)主要是描述时钟处于高电平的概率,用来计算Leakage Power = Σ(Pleakage_0*(1-Sp) + Pleakage_1*Sp)。
Paverage = Pleakage + Psw + Pinternal
Power的计算是一个非常复杂的计算过程,下面我们简单介绍一下Power的计算,通过上面的内容我们可以知道Psw和Pinternal都和反转率有关系,为了更加精确的得到功耗情况,可以由前端设计人员仿真得到VCD文件,进而加入Power计算的流程,这样可以得到更加准确的平均功耗和峰值功耗(Peak Power)。
对于没有VCD的流程,我们称为无向量分析法--工具会根据默认值和时钟计算得到一个反转率,我们也可以人为标记反转率,优先级会高于默认值。简单来说工具在计算Tr时会优先从VCD和SAIF文件中获取波形,其次去查找set_switching_activity中的设置。如果没有再去查找默认值等,在PTPX的文档中有更为详细的介绍,感兴趣的可以去翻阅。
目前业内主流的功耗分析工具是PTPX,对具体细节感兴趣的可以去查看Synopsys的官方文档,在下一篇文章中我们将介绍Average Power在IR分析中的应用。