罗风 · 2021年01月06日

低功耗 | 从综合到PostRoute 功耗的Gap 有多大

PPA, Performance, Power, Area 是衡量一颗芯片的基本指标,这三大指标中Power 是最诡诈的,它不像Performance 跟Area 是可相对精确计算的,而Power 在芯片回来之前都只能估算,至于估算值跟实际值相差几何,也是一个说不清道不明的东西,部分讨论可回顾《探讨 | 功耗应该在哪个corner 看?》。至于为什么,老驴大致总结了几点,请驴友补充:

  • leakage power, 不论是综合还是PostRoute, 计算leakage 都是从某个固定PVT library 中查表,然而实际芯片并不能确定地工作于某个固定的电压值,一方面是供电电源无法保证完全没有偏差,另一方面是IR-drop 的影响;更不能保证工作温度一定卡到某个摄氏度;工艺偏差在timing 上有各种模型进行模拟,然而在power 上并没有;leakage 的计算可回顾《四月清和雨乍晴,静态功耗乱伊心》。
  • internal power, 除了固定的PVT 之外,toggle rate 也只是估算,通常工具只能从波形里读取时序逻辑、blackbox 等的翻转信息,至于组合逻辑的toggle rate 大都是估算得到的;toggle rate 的计算可回顾《论功耗 | 如何计算toggle rate》。
  • Switch power,  除了无法精确得到toggle rate 的信息之外,实际芯片的工作电压跟工作时钟频率都会有偏差;动态功耗的计算可回顾《2018世界杯第一日,撸一遍动态功耗计算》。
  • Glitch power, 目前大部分power 分析工具可以估算逻辑Glitch 引起的功耗,然而要计算逻辑Glitch 必须要反标net delay,  不论是cell Delay 还是net Delay 在估算时都只在某个固定的PVT 跟RC corner, 如此计算得到的值势必跟实测值有差别。Glitch 相关部分可回顾《Glitch, Glitch, Glitch》。
  • 其他,如I/O, 如package, 如Analog, 其功耗模型有多精确?

image1.png

先撇开Silicon, 从综合到Postroute 功耗的差别有多大呢?找到一本07年的老书《 Closing the Power Gap Between ASIC & Custom, Tools and Techniques for Low Power Design 》通篇有理有据,除了工艺老了一点,其他都很好。取书中一张图,涵盖了综合到Postroute 的每一步。

image2.png

先回顾一下功耗的三大部分Leakage, Internal, Switch 都跟哪些因素有关?

  • Leakage Power: 跟工作电压VDD, 阈值电压Vth, 管子宽长比及输入pin 的状态有关;
  • Internal Power: 跟Arc/pin 上有效的toggle rate, SDPD, 输入pin 的transition 及输出负载有关;
  • Switch power: 跟工作电压,工作时钟频率,Toggle rate 及输出负载有关。

image3.png

再看,从综合到PostRoute 在设计上发生了哪些变化?

  • 纯逻辑综合:没有线长的概念,没有长线的buffer, 没有clock tree, 没有hold buffer, clock 是ideal 的,通常需要过约从而导致使用更大面积跟功耗的cell,没有net 电容,没有串扰信息;
  • 物理综合:工具相对精确的估算线长并做buffering, 如果是Ispatial ECF flow 可以build clock  tree, 没有hold buffer, clock 是ideal 的,不需要过约,有net 电容,没有串扰信息;
  • P&R: 真实的绕线,真实的clock tree, 修过hold, clock 是propagated, 用signoff 约束,有net 电容,有串扰信息;

image4.png

每一部分设计上的改变对功耗影响有多大,取决于设计特性跟工艺:

  • 比如,对于Port 多Density 低的设计,会有许多长线,所以长线上的buffer 会有许多;
  • 比如,只有一个clock 跟几千个寄存器的设计和有几千个clock 跟几十万个寄存器的设计相比,clock tree 的结构长短区别会很大,clock tree 功耗占比自然也不同;
  • 比如,.18 跟5nm 相比,net 电容在整个设计中的比重完全不同,有没有net 电容对5nm 而言至关重要;
  • 比如,congestion 特别严重的设计,cell 会被推散,crosstalk 也可能更严重。

image5.png

等等不一而足,所以在讨论从综合到PostRoute 的功耗差异时,需要有明确的前提,需要根据不同类型的设计具体问题具体分析,只能在某个小范围内归纳总结,很难找到一个通用法则。

image6.png

最后再聊聊动态功耗优化,想要再强调一次为什么带波形优化动态功耗最好从物理综合开始?之前的讨论可回顾《论功耗:动态功耗优化》。如果不考虑多电压域,目前在实现端行之有效的动态功耗优化办法无非是:clock gating, MB merge, 带仿真波形。

image7.png

而带仿真波形的优化手段无非是Resize, Reconnect, Buffering, Cell replace, 而不论哪种方法都依赖于负载电容,在40nm之后如果在优化时只看pin 电容而看不到net 电容,综合后的结果跟PostRoute 的结果有巨大差异的概率非常大,所以如果要带着波形去做动态功耗优化,就请从物理综合开始。

image8.png

作者:陌上风骑驴
来源:https://mp.weixin.qq.com/s/XAUYLi3aTteR4EuT3_Ea-w
作者微信公众号
微信号二维码.jpg


相关文章推荐

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