功耗计算

静态功耗: 由于PN结存在反向漏电流产生的

其中$I{leak}$为漏电流,$V{DD}$为供电电压。此外随着温度的升高,漏电流也会随之升高。

动态功耗:动态功耗主要由CMOS从0和1的翻转过程中产生的功耗。具体可分为翻转功耗和短路功耗

翻转功耗:当门翻转时,负责电容充电和放电,称为翻转功耗。公式为:

$\alpha$为晶体管翻转比例,f为时钟频率,C为节点电容大小(常数)

短路功耗: pmos和nmos在翻转时二者会有短暂时间同时导通,这段时间$V{DD}$和$V{SS}$间有电流经过,公式为:

其中$t{sc}$是泄露时间,$I{peak}$是总的短路电流

随着工艺的进步,电源电压降低,泄露电流$I_{leak}$增加,因此静态功耗占比越来越大

功耗降低方式

抽象层次从高到低,依次有系统级、体系结构级、寄存器传输级(RTL级)、逻辑/门级、晶体管级(系统与标准级、功能模块级,行为级,寄存器传输级和门级)。越高抽象层次上的低功耗策略效果越好

系统级和体系结构级

  1. 动态电压频率调节(DVFS):不需要全速运行时,通过降低频率或电压来降低功耗。但是电压降低太多可能会导致电容无法完成充电从而造成亚稳态
  2. 多阈值电压(Multi-VDD): 高阈值(HVT)单元的速度较慢而漏电流小,静态功耗较低。设计时在非关键路径上可以使用高阈值单元降低功耗
  3. 电源门控: 开关一个模块的电源

RTL级与门级

  1. 门控时钟: 降低动态功耗
  2. 改变编码(gray码)
  3. 路径平衡, 减少毛刺
  4. 变化多的分支往逻辑锥体后端推