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

描述

PPA, Performance, Power, Area 是衡量一颗芯片的基本指标,这三大指标中 Power 是最诡诈的,它不像 Performance 跟 Area 是可相对精确计算的,而 Power 在芯片回来之前都只能估算。至于为什么,老驴大致总结了几点,请驴友补充:

leakage power, 不论是综合还是 PostRoute, 计算 leakage 都是从某个固定 PVT library 中查表,然而实际芯片并不能确定地工作于某个固定的电压值,一方面是供电电源无法保证完全没有偏差,另一方面是 IR-drop 的影响;更不能保证工作温度一定卡到某个摄氏度;工艺偏差在 timing 上有各种模型进行模拟,然而在 power 上并没有。

internal power, 除了固定的 PVT 之外,toggle rate 也只是估算,通常工具只能从波形里读取时序逻辑、blackbox 等的翻转信息,至于组合逻辑的 toggle rate 大都是估算得到的。

Switch power,  除了无法精确得到 toggle rate 的信息之外,实际芯片的工作电压跟工作时钟频率都会有偏差。

Glitch power, 目前大部分 power 分析工具可以估算逻辑 Glitch 引起的功耗,然而要计算逻辑 Glitch 必须要反标 net delay,  不论是 cell Delay 还是 net Delay 在估算时都只在某个固定的 PVT 跟 RC corner, 如此计算得到的值势必跟实测值有差别。

其他,如 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 的结果有巨大差异的概率非常大,所以如果要带着波形去做动态功耗优化,就请从物理综合开始。


审核编辑 黄昊宇

 

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

全部0条评论

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

×
20
完善资料,
赚取积分