电子爱好者小张
哈,这个问题我太熟了,之前面试被问麻了。面试官最爱揪着报告分析问,因为工具点按钮谁都会,但看懂报告、找出问题才是工程师的价值。
他们常问的问题包括:动态功耗和静态功耗的主要构成是啥?在报告里怎么体现?你怎么判断一个模块的功耗高是不是合理的?如果发现某个寄存器组的功耗异常高,你会怎么排查?
我的思路是这样的:拿到报告,先看总结页,看总功耗和动态/静态的比例。如果静态功耗占比超过20%(看工艺),就要警惕了,可能是标准单元选型有问题或者温度假设太高。
然后看动态功耗的细分。开关功耗(switching power)和内部功耗(internal power)哪个大?开关功耗大往往意味着信号翻转太频繁,电容负载大;内部功耗大可能是单元内部短路电流大,或者驱动强度太大。
定位热点模块,直接找层次化功耗报告里百分比排前三的模块。但关键是要结合设计预期判断。比如一个加密模块,功耗高可能是正常的;但一个控制状态机功耗排第一,那就不正常了。这时候要去看这个模块的开关活动文件,是不是某些信号在无效时段也在疯狂翻转。
优化建议要具体。比如发现时钟树功耗占了动态功耗的40%,那就要考虑更激进的时钟门控,甚至调整时钟结构。如果发现某个总线切换率极高,可以考虑编码方式(比如格雷码)减少翻转。
最后提醒一点,面试官可能会问工具本身的局限性。比如功耗分析依赖于输入的活动文件,如果活动文件不典型,结果可能不准。所以通常要用多种场景(典型、最坏、最好)的活动文件来分析,看最坏情况下的功耗是否满足规格。
