简单的Voltus功耗分析

描述

数字威廉希尔官方网站 到了一定规模,把数字威廉希尔官方网站 网表转成原理图,通过跑Spectre/Ultramsim仿真来获得功耗就变得mission impossible了。 新的运算工具应运而生。Voltus的前生是EPS (Encounter Power System),是一款非常优秀的功耗分析工具。

数字威廉希尔官方网站 功耗包括下面三个部分。

1. Switching power

这部分功耗来自各个标准元之间的连线interconnect的充放电。描述这部分功耗的经典公式是VCD。这里F代表频率,A代表average switching activity。

从这个经典公式可以衍生出有趣的问题?如何降低switching power呢?通常CL在前端设计中无法控制。威廉希尔官方网站 的F是设计指标决定的,也改不了。前端设计能改变的只有A。这时前端设计中引入clock gating就很有必要了。 当然,有些使用场景可以降低V,但实现起来有些困难的,需要供电威廉希尔官方网站 能配合,需要库在不同电压下characterize。总体来说,降低A是前端设计最直接最有效的降低switching power的方法。

2. Internal power

这部分是标准元内部由switching造成的功耗。 工具根据.lib里的数据计算这部分功耗。 下面是一个AND gate的例子。

输入A变化引起的功耗。工具根据输入A的transition time查询rise_power, fall_power 表。这个例子简化了一些。通常这两个表中的数据多几个,工具插值计算更精确一些。

VCD

输出Y的变化可以是输入A变化引起的,也可以是输入B变化引起的。Y的internal power相对复杂一些。 这里rise_power,fall_power的表是二维的。工具根据相关输入的input_transition_time,Y输出的total_output_capacitance来查询这几个表。

VCD

标准元的internal power本质上依然是威廉希尔官方网站 中各个节点的switching引起的。 设计中尽量降低各个节点的switching可以有效地降低相联标准元地internal power。

3. Leakage power

这部分就是常说的漏电。 即使威廉希尔官方网站 处于静止状态,没有时钟,没有任何switching,这部分功耗依然存在。 在低功耗待机状态下,如何降低漏电功耗是设计挑战。

工具计算漏电功耗也是根据.lib中的数据。下面是一个AND gate例子。 这里可以看到leakage power是和A,B输入的状态有关的。A,B同时为高电平时leakage power最大,43.7371。如果A,B电平无法确定,工具取平均值,即第二个框里的33.4556。

VCD

Voltus虽然有几个工作模式,但各个模式下功耗的算法依然遵循上面分的三类。 各个模式的区别只是设置而已。

Voltus static power

Voltus static power 本质上算的是威廉希尔官方网站 的平均功耗。

Voltus static power 要求用户提供各个输入的activity。工具根据用户提供的activity,加上SDC文件内时钟的定义,就可以推算出内部各个节点的activity,再配合SPEF文件内各个连线的RC,就可以算出这个威廉希尔官方网站 的switching power。同时,工具也知道内部每个标准元的输入输出特性,各个标准元的internal power也就可以算出来了。

Voltus static power理论上可以算得蛮准的,但实际操作上是有陷阱的。如果用户提供的activity不准,计算的结果就偏离了。很多时候,默认的activity 0.1可能过于悲观,造成static power 也过于悲观。

Voltus dynamic power

Voltus dynamic power本质上是计算瞬时峰值功耗,分两种方法,vectorless 或 vector-driven。 Vectorless 估算每个节点的activity,意义不大,这里就略过了。 Vector-driven采用VCD标注内部各个节点的activity。VCD来自于后仿。VCD中每个节点的activity和实际威廉希尔官方网站 时一一对应的。显然,使用VCD的dynamic power可以算得很准。 通常VCD文件可以记录整个威廉希尔官方网站 完整的运行过程。 但对于峰值功耗,通常只需要取VCD中的一小段时间。 这里需要注意的是,指定的这一小段时间必须对应的是activity最集中的时间段。 如果自己是威廉希尔官方网站 的设计者,应该知道哪一段时间activity最多。另一个方法是先取比较长的一段时间跑一次dynamic power,在Voltus里调用Simvision打印出VDD 电流,根据VDD电流波形选择峰值时间段。随后在这个缩短的时间段再跑一下dynamic power,生成power database,供后续的IR drop分析使用。

这里引申出一个有趣的问题。Voltus dynamic power能否像S家的PTPX一样用来算威廉希尔官方网站 的功耗呢?当然是可以的。功耗基本的算法就是那三类,本质上是一样的。Voltus dynamic power里VCD时间段取得和PTPX功耗分析VCD时间段一样,两者计算出来的结果在2-3%以内。 个人认为Voltus dynamic power设置对了,Voltus static power就没必要了,PTPX也可以替代了。 这样做有个小小的缺陷。通常算average power需要取比较长的时间段。这样跑Voltus dynamic power 生成的power database非常庞大。后续的Voltus IR如果还用这个庞大的power database,基本就跑不动了。 解决方法也很简单。 就像上面提到的,取缩短的时间段再跑一次dynamic power,生成对应峰值电流的power database,随后用这个小很多的power database跑IR。

审核编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分