数字IC设计学习笔记
低功耗设计1
1. 目的
2. 功耗的分析
2.1 功耗的类型
2.2 按结构分类
2.3 翻转率的计算
3. 低功耗设计方法
3.1 系统与架构级低功耗设计方法
3.2 RTL级低功耗设计方法
3.3 门级电路低功耗设计方法
3.4 物理级低功耗设计方法
1. 目的
- (1). 便携式设备的需求
- (2). 可靠性和性能的需求
功耗越高,热量越多,噪声越大,越影响器件正常工作,设备性能降低。 - (3). 成本
功耗越大,热量越高,后期封装增加散热设备等,增加成本。
2. 功耗的分析
-
2.1 功耗的类型
1). 动态功耗
(1). 开关功耗(翻转功耗,主)
对负载电容充放电消耗的功耗。
VDD:电源电压
Cload:负载电容
Tr:翻转率 = 2f (上升沿,下降沿)
平均功耗:
(2). 短路功耗(内部功耗)
PMOS, NMOS,同时导通时,VDD到VSS之间形成的短路电流,消耗的功耗。主要与状态,路径有关,即state dependent path dependent.
VDD:电源电压
Qx:一次翻转中电源到地的电荷量
Tr:翻转率 = 2f (上升沿,下降沿)
总结:动态功耗主要与电源电压,反转率,负载电容有关。
2). 静态功耗
由漏电流引发的功耗,主要与工艺和状态有关,输入在不同的状态下,功耗不同。
漏电流的组成:
(1). PN结反向电流(PN junction reverse current)
(2). 源极与漏极之间亚阈值漏电流(sub-threshold current): 栅极电压小于导通阈值电压,产生FET漏极到源极的泄漏电流。晶体管越窄,泄漏电流越大。
(3). 栅极与漏极之间感应漏电流(Gate induced drain leakage)
(4). 栅极与衬底之间隧道电流(Gate Tunneling): 栅极加信号,栅极与衬底之间产生电容,进而产生电流,存在功耗。这是超纳米工艺后的主要电流来源之一。
3). 浪涌功耗
浪涌电流引起的功耗,一般不关注。
浪涌电流:开机或者唤醒的时候,器件通过的最大电流。 -
2.2 按结构分类
(1). 时钟树功耗
(2). 处理器功耗
(3). 存储器功耗
(4). 其他逻辑和IP功耗
(5). 输入输出PAD功耗
-
2.3 翻转率的计算(Toggle rate)
概念:单位时间,信号的翻转次数。
Tr = 4次/80us = 50000 Hz
注:在EDA工具中使用report_lib slow -power 命令列出库中的功耗信息。
3. 低功耗设计方法
-
3.1 系统与架构级低功耗设计方法
系统与架构级的低功耗设计可以节省70%以上的功耗。
方法:
① 多电压设计技术(Multi-VDD)
(a) 各电压区域有固定的电压(固)
(b) 各电压区域有固定的多个电压,软件决定哪一个(动)
(c) 自适应方式,各电压域可变,软件决定哪一个(动)
② 软硬件协同设计
DVFS技术:动态电压频率调节,dynamic voltage dynamic frequency scaling:将不同的模块的电压和频率降到刚好满足体统最低要求,降低体统中不同模块的功耗。
③ 系统时钟分配
将系统设置为不同的工作模块,加入时钟控制模块,不同的工作模式下,选择不同的工作频率的时钟,不用的模块关闭。
④ 算法与IP选择
算法:对数系统比线性系统好
IP:实现相同的功能,哪个功耗大
⑤ 其他
方法:
异步设计:不需要全局时钟,通过握手信号,减少功耗
缓存:基于缓存体统,降低功耗(如DSP中FFT算法,在存储器与处理器之间添加缓存)
DFT:可测性设计上进行功耗降低,存储器的低功耗 -
3.2 RTL级低功耗设计方法
① 并行与流水选择
并行:降低系统时钟频率,降低功耗
流水线:在一个长的组合逻辑路径上,插入M级流水线,路径长度变为原来的1/M,从放电电容变为C/M,如果系统时钟频率不变,则可以采用较低的驱动电压,降低整体的功耗。
② 资源共享与状态编码
相同操作在多处出现,则可以采用资源共享,避免重复出现,降低功耗。
数据编码采用翻转率低的状态编码,可以减少动态功耗。(格雷码代替二进制编码)
③ 操作数隔离
在莫一段时间内,数据输出是没有用的,则可以将输入换成固定的值,这样数据通路不反转,降低功耗
注:增加面积,影响DFT
④ 门控时钟
时钟树是由大量的缓冲器和反相器组成,时钟信号在设计中的饭庄率最高,时钟树的功耗可高达整个设计功耗的40%,加入门控时钟电路,减少时钟树的翻转,降低功耗。同时由于减少了寄存器时钟引脚的翻转,寄存器的内部功耗也减少了,一般可以节省20%~60%的功耗 -
3.3 门级电路低功耗设计方法
概念:从完成门级网表映射开始,对设计进行优化,既满足设计规则,又,又满足时序。
可优化功耗类型:设计总功耗,静态功耗,动态功耗
方法: -
① 静态功耗优化
多阈值电压设计:
尺寸(↑),器件的供电电压(↑),阈值电压Vt(↑),漏电功耗(↓),门延迟(↑),速度(↓)。
尺寸(↓),器件的供电电压(↓),阈值电压Vt(↓),漏电功耗(↑),门延迟(↓),速度(↑)。
–>>在关键路径使用阈值电压低的单元(Lvt),非关键路径使用高阈值电压的单元(Hvt)–>降低功耗 -
② 基于EDA的动态功耗优化
需提供电路的开关行为,工具根据每个节点的翻转率,优化整个电路的功耗。
用compile/physopt命令可同时对时序和动态功耗优化。 -
③ 电源门控(power gating)
芯片中某个模块在一段时间内不工作,可以关掉的供电电源(关掉供电电源可以使用MTcmos开关,后端工具在布局布线时加入MTCMOS),模块处于休眠状态,功耗很低;唤醒时,需要保持关电前的状态,使用保持寄存器(retention register),用于记忆状态。 -
3.4 物理级低功耗设计方法
(1). 高翻转率的节点尽可能采用低电容金属层布线。
(2). 高翻转率的节点尽可能短。
(3). 高负载的节点,总线,采用低电容金属层。
(4). 特别宽的器件,可以采用特殊版图设计,减少漏极电容。
(5). 有些不限工具可以以功耗作为目标生成时钟树。
—部分内容源自对其他博客的学习Thanks^^
https://www.cnblogs.com/IClearner/p/6923585.html
【注】:个人学习笔记,如有错误,望不吝赐教,这厢有礼了~~~