罗风 · 6月29日

论功耗:library 中的internal power为何为负值?

题记:大概一个月之前有人在驴群里问到,为什么internal power会是负值,驴也是第一次看到负的internal 功耗,当初有大神已答 internal power 为负的原因,在此基础上,驴研读了一些library的材料,整理于此,知其然知其所以然。

陈述

下图是library中一个寄存器Q pin 的internal\_power table, 表中该pin 的internal power 大多都是负值。其实library 中的internal\_power 不是功率,而是热量,单位是焦耳不是瓦特。

1.jpg

原因

Internal power 为负值是由Liberate K 库的建模方式决定的,Liberate K 库的时候,对internal power 的建模有三种模式,由变量 pin\_based\_power 的值控制。

  • pin\_based\_power=1, Default值,monitor Vdd and Gnd, 这种建模方式,上升『热量』跟下降『热量』分别是上升/下降的实测『热量』减去1/2*CVout^2, 在该模式下,上升『热量』永远都是正值,因为上升过程对电容进行充电,负载看到的Vout 不可能超过Vdd; 但是下降功耗可能为负,因为有时一些电流会由于耦合电容而流回电源,导致输出节点的电压过冲,在输出电压开始下降之前Vout超过Vdd, 从而下降『热量』为负。

2333.jpg

  • pin\_based\_power=0, monitor Vdd only, 这种建模方式,上升『热量』是实测上升『热量』减去负载消耗的『热量』CVout^2, 下降『热量』就是实测热量。所以该模式下,上升『热量』可能为负,但下降『热量』永远为正。

3.jpg

  • pin\_based\_power=2, also monitor current on side inputs, 这种建模方式跟第一种建模方式情况一致,只是在K 库的时候考虑了输入pin 的状态。

4.jpg

不论哪种建模方式,虽然上升『热量』或下降『热量』有可能为负,但是总的『热量』(Edyn,fall + Edyn,rise ) 肯定是正的。

5.jpg

补充

在K 库时,internal power分Switching power 跟 Hidden power 两类。

  • Switching power: 输入翻转会导致输出翻转,通常在library中对应pin 的internal power 有『related\_pin』, 表是二维表,index 分别是输入transition 跟输出load. 也有输出pin 的internal power 没有『related\_pin』, 此时表是一维表,index 是输出load.
  • Hidden power: 输入翻转不会导致输出翻转,用library 中input pin 的internal power 做计算,input pin 的internal power 只跟该pin 的transition 相关,所以用transition 做index 进行查表。

666.jpg


跋:

本文陈述了驴所理解的internal power 为负的原因,欢迎大家继续探讨。动态功耗相关的文章请查看《2018世界杯第一日,撸一遍动态功耗计算》《论功耗:动态功耗优化》。

作者:陌上风骑驴
原文链接:https://mp.weixin.qq.com/s/xh6PUv6cuLRsDHtYTPm1Ug
微信公众号:
陌上风.jpg

相关文章推荐

更多IC设计技术干货请关注IC设计技术专栏。
1 阅读 508
推荐阅读
0 条评论
关注数
2448
内容数
621
主要交流IC以及SoC设计流程相关的技术和知识
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
Arm中国学堂公众号
关注Arm中国学堂
实时获取免费 Arm 教学资源信息
Arm中国招聘公众号
关注Arm中国招聘
实时获取 Arm 中国职位信息