一、功耗简介
传统分类:
动态功耗(Dynamic Power):晶体管门电路翻转时产生的功耗
静态功耗(Static Power):晶体管不翻转时由非理想效应产生的功耗
业内计算分类:
泄漏功耗(Leakage Power):由沟道、栅极、衬底等非理想漏电流产生
内部功耗(Internal Power):晶体管内部寄生参数充放电及短路电流产生
翻转功耗(Switching Power):晶体管负载充放电引起
计算依据:时序库(Timing Library)中的leakage_power查找表与信号占空比
查找表类型:
Average leakage power:平均漏电功耗
State Dependent table:状态相关漏电功耗表
关键参数:
与单元输入信号Duty cycle强相关
与单元输入输出信号Toggle Rate无关
影响功耗大小主要因素
1、电压:直接影响三种功耗,对翻转功耗影响最大(与{DD}^2成正比)
2、温度:主要影响泄漏功耗,温度与泄漏功耗呈指数关系
3、工艺:直接影响三种功耗,先进工艺节点通常供电电压更低
4、信号特性:
1)翻转率:主要影响翻转功耗和内部功耗
2)负载:主要影响翻转功耗与内部功耗
3)翻转时间:影响短路电流,从而影响内部功耗
总功耗公式:
Ptotal=CL⋅VDD2⋅f0→1+tsc⋅VDD⋅Ipeak⋅f0→1+VDD⋅IleakageP_{total} = C_L \cdot V_{DD}^2 \cdot f_{0 \to 1} + t_{sc} \cdot V_{DD} \cdot I_{peak} \cdot f_{0 \to 1} + V_{DD} \cdot I_{leakage}Ptotal=CL⋅VDD2⋅f0→1+tsc⋅VDD⋅Ipeak⋅f0→1+VDD⋅Ileakage
1.1、特殊工艺制程
FD-SOI工艺
1)采用绝缘体上硅(SOI)结构,通过埋氧层(BOX)隔离有源区与衬底
2)全耗尽(FD)沟道结构,显著减小寄生电容和漏电电流
1.2、芯片架构
1)多电压域架
2)电源关断
Power Switch(电源开关)Isolation(隔离单元)State Retention(状态保持单元)Always On Cell(常开单元)Level Shifter(电平转换器)
3)动态电压频率调节
1.3、芯片实现
1)时钟门控
2)多阈值电压和多沟道长度
多阈值电压:HVT(高阈值)、RVT(常规)、LVT(低阈值)、SLVT(超低阈值)
3)多位寄存器优化
4)翻转率及负载协同优化
1.4、低功耗设计与UPF架构
UPF全称Unified Power Format, 2007年由Accellera发布1.0版本,2009年成为IEEE 1801标准(UPF 2.0),2013年更新至IEEE 1801-2013(UPF 2.1)。
二、UPF电源网络编码
1、UPF电源网络:
Supply port
Supply Net
Supply Set
2.1、UPF在各个阶段的角色
综合
1)电压域划分: 通过UPF文件划分不同电压域(power domain),例如1.0V和1.2V的电压域需要分别绑定不同library cell
2)不同track规格(如9 track和12 track)的module需声明为不同power domain
3)综合后网表会加入isolation cell和level shifter,power switch在物理设计阶段加入,retention cell通常在综合阶段加入
物理设计
1)布局指导:根据UPF定义电压域进行芯片布局和电源规划,Innovus要求非空power domain必须定义为fence
2)低功耗单元布局:常规isolation/level shifter应放在domain边界,SRAM等macro接口的特殊情况需就近布局
物理优化:
1)基于domain coverage关系指导buffer插入
2)不同电压域间需要特殊处理(如always-on buffer)
布线控制:
1)防止低电压信号线穿越高电压区域
2)通过UPF设置绕线规则减少信号干扰
signoff:
Voltus利用UPF信息计算准确delay/transition,不同电压域需采用对应电压参数进行分析
验证:
检查语法正确性,验证power state合理性(避免无效状态)
确认isolation/level shifter位置和类型正确,检查buffer插入是否破坏原有低功耗结构,识别always-on buffer的过度使用
2.2、UPF电源网络
1、UPF电源网络—Supply Port
supply port是电源/地网络的逻辑源点。
create_supply_port <port_name> -domain参数指定supply port所属的scope层级
不推荐频繁使用domain设置,会导致UPF可读性和可调试性降低,更优方案是采用分层UPF编码风格
—direction,input: 电流从外部流入内部,output: 电流从内部驱动外部,inout: 双向电流(同时供电给内部和外部网络)
典型场景: 顶层电源端口通常为input,power switch输出端口应为output,跨电压域接口可能需要inout
2、UPF电源网络—Supply Net
supply net设计中使用的所有电源/地网络(PG net),必须在UPF中明确定义
仅声明网络名称,不定义功能属性(如power/ground/NY/PY),功能定义需通过supply set命令实现(与CPF格式不同)
每个supply net必须连接到supply port或hierarchical supply por
create_supply_net <net_name>,-domain : 指定网络作用域,未指定时默认当前工作域
-reuse 用于跨域复用同名网络(需配合-domain使用),示例: create_supply_net VDD -reuse -domain PD_top,注意: 不建议使用,易引发层次化设计问题
-resolve 定义多电源驱动时的状态解析规则
3、UPF电源网络—Supply Set
供电集是UPF2.0新增的语法特性,UPF1.0不支持此功能。
表示一组相关的电源网络,包括power/ground/nwell/pwell/deepnwell/deeppwell等网络,推荐使用"SS_电源网络_地网络"格式命名,如SS_VDD_VSS,便于后续调试
create_supply_set SS_VDD_VSS -function {power VDD} -function {ground VSS} -function {nwell VDD} -function {pwell VSS}
-update选项分步完善供电集内容
每一个电源域都需要绑定一个供电集,primary supply set: 每个电源域必须绑定一个主供电集,为标准单元提供电源。
Cadence工具会为未绑定的供电集自动创建internal power domain。
Supply Set Handle: power_domain_name.keyword,如PD.primary
预定义关键字:primary: 电源域的主供电集; default_isolation: 隔离单元默认供电集; default_retention: 保持单元默认供电集
下面以一个电源网络为例子,编写UPF:
2.3、UPF电压域编码
共享相同供电集合(supply set)的实例组,包含至少和两个电源网络
create_power_domain , 推荐格式:PD__
-include_scope:声明默认电压域(default power domain),未明确归属的实例自动归入默认域
-elements:指定域包含的实例列表 -elements {.}等效于-include_scope, 示例:-elements i_cpu1将CPU实例加入域
-exclude_elements:从当前域排除特定实例
-supply:定义供电集合句柄
-available_supplies:指定域内逻辑可用的供电集合
使用层次化实例(Hierarchical Instances),即Verilog网表中的module,包含细粒度标准单元和macro单元
不推荐方式1:分离实例(如Buffer1/Buffer2等单独标准单元);原因:物理设计时不可行
具体问题:标准单元通过底层金属层(如M1)的power rail统一供电,若单独创建电压域会导致:
需要切断原有power rail; 必须为单个单元单独创建电源走线; 造成布线资源浪费和设计不合理;
不推荐方式2:IP实例(如Memory1/Memory2等单独IP)
替代方案:采用层次化UPF风格(Hierarchical UPF Style)优势:便于低功耗单元(LP cell)插入; 例外情况:当IP单元信号引脚需要添加level shift/isolation等低功耗单元时,仍需特殊处理;
电压域的种类:
针对于cadance工具,Default Domain,Internal Domain,Virtual Domain,Physical Domain,Logical Domain,Macro Only Domain
供电集绑定
每个电源域必须明确指定主供电集(PD.primary),这是UPF流程中的强制要求,表示方法:采用PD.primary的句柄格式,如create_power_domain PD_test -supply(primary SS_VDD_VSS)
可选配置:default_isolation(PD.default_isolation)和default_retention(PD.default_retention)可不指定
-available_supplies选项声明域内逻辑可用的供电集
简单的示例:
低功耗工作模式编码
power_state,表示设计在某一时刻各供电集(Supply Set)的电压和开关状态组合
UPF2.0/2.1风格: 使用add_power_state命令,直接作用于Supply Set
下面是power table的一种写法,不过是不常用的写法;
常用的power table的一种写法
断电场景的UPF写法:电压域与芯片实现:
Location PD, 针对设计中所有instance的物理位置属性,由PR(布局布线)时instance所在的power domain fence决定。
Effective PD,针对instance的signal pin和design boundary port的供电属性,与location PD不同,effective PD描述的是信号传输时的供电属性。
使用set_port_attributes -ports -driver_supply -receiver_supply命令显式定义。
电压域覆盖:
PD1>=PD2:PD1 OFF=>PD2 OFF,PD2 ON=>PD1 ON,VDD1(t) >= VDD2(t) 且 VSS(t)=VSS2(t)
Equivalent关系:判定条件,当PD1 >=PD2且PD2 >=PD1时,两者等价
Independent关系:互不覆盖的域
domain based solution:
三、低功耗单元
Isolation cell(隔离单元)
Level shifter cell(电平转换单元)
Power switch cell(电源开关单元)
State retention cell(状态保持单元)
Always on cell(常开单元)
3.1、Isolation
Isolation cell是用于电源域接口的隔离单元,主要应用于shut-off power domain和always-on power domain之间的信号传输接口。
1)当shut-off domain断电时,其输出引脚会进入不确定的X状态(可能是0、1或中间值)。
2)当信号缓慢变化时(如从1缓慢放电到0),会导致PMOS和NMOS同时导通,产生短路电流。
Isolation的种类:
基本引脚: 包含1个data pin、1个enable pin和1个output pin;
功能分类:
AND型: 使能时输出逻辑0(低电平),非使能时输出data值
OR型: 使能时输出逻辑1(高电平),非使能时输出data值
Latch型: 使能时锁存关断前信号值,非使能时随时钟传递前级值
ISONOR型: 或非门结构,使能时输出0,需与特定retention cell配合使用
按照位置分类:
To Type Isolation:
From Type Isolation
3.2、Level Shifter
用于不同电压域(power domain)交界处的特殊标准单元,实现电平转换功能。
高压到低压不加level shifter(相差零点几伏特,不会给时序带来太大的影响),需要插值计算。
level shifter通常1个输入、1个输出,功能类似缓冲器(buffer),内部采用差分运放结构,通过交叉耦合实现电平转换。
LH型:仅支持低到高(low to high)电压转换
HL型:仅支持高到低(high to low)电压转换
双向型:同时支持高低双向电压转换(HL_LH)
to类型level shifter
from类型level shifter
3.3、Power Switch
power switch用于控制芯片中电源域的供电开关,实现电源关断(power shut off)或地线关断(ground shut off)
Header Switch: PMOS管连接always-on电源和可关断电源之间
Footer Switch:NMOS管连接always-on地和可关断地之间(电子迁移率高于空穴,开关速度更快)coarse grain:单个switch控制多个逻辑单元,标准单元电源管理
Fine Grain: 开关内置于每个逻辑单元,特定macro cell(如低功耗SRAM)
Power Switch的Cell Structure分类 :
1)单enable输入型
2)1输入+1输出型
3)2输入+2输出型(IR drop低一点,rush current小)
Power Switch的Switch Pattern分类:
Ring Type;Column Type;
Power Switch单元的Timing Library
3.4、State Retention
是一种特殊的寄存器单元,用于在电源关断时保持关键寄存器值。当电源域关闭时,通过额外的备用电源引脚(VRET)维持数据存储
state retention结构:
必须包含主电源引脚和备用电源引脚(VDD和 VRET),后者在电源关断时持续供电。
Balloon Latch型:在标准触发器slave latch上方增加气球状latch,由VRET供电的balloon latch保存slave latch数据
Master-Slave型:保持标准的主从latch结构,但slave latch由VRET供电,包含RETN引脚控制时钟门控和复位隔离
state retention替代方法:
1)standby mode,通过电压调节器降低电源电压至数据保持阈值(典型VDDmin=0.5V)
2)保存/恢复寄存器内容至RAM,关断前将寄存器值存入always-on RAM(面积权衡:1MB SRAM面积≈5000个retention cell面积)
3.5、Always On Cell
用于电源关断域或与驱动/接收端电源状态不同的域中保持信号有效的特殊单元
通常有2个电源引脚:主电源(VDD)和备用电源(VDD2),实际MOSFET由备用电源(VDD2)供电,主电源主要用于N-well供电
Common Well的Always On Cell:
与标准单元类似,具有连续N-well结构, N-well由主电源(VDD)供电,内部MOSFET由备用电源(VDD2)供电
使用限制:
1)要求主电源电压始终≥备用电源电压
2)主电源关断时备用电源也必须关断
3)不能用于主电源关断而备用电源保持开启的场景
Split Well的Always On Cell:
具有独立的N-well结构用于MOSFET,MOSFET及其N-well完全由备用电源(VDD2)供电,额外设置左右N-well由主电源(VDD)供电用于连接
需要Always On Buffer场景:
1)always on信号线穿过关断域,必须使用always on buffer保持信号通路,此时不能使用Common Well类型;
2)关断域信号线穿过always on域,理论上也需要always on buffer,备用电源需连接到关断域电源
替代方法:
1)尽量避免信号线穿越不同电源域
2)可手动添加isolation后使用regular buffer