前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >低功耗 | 从综合到PostRoute 功耗的Gap 有多大

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

作者头像
老秃胖驴
发布2020-07-09 11:52:49
1.8K0
发布2020-07-09 11:52:49
举报
文章被收录于专栏:陌上风骑驴看IC陌上风骑驴看IC

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, 其功耗模型有多精确?

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

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

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

再看,从综合到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 电容,有串扰信息;

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

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

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

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

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


驴说IC

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 陌上风骑驴看IC 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档