前言
可以把芯片设计粗略分为三个部分:功能、时序和电源,它们分别对应RTL(functional behavior)、SDC和UPF(power behavior)三种设计文件。前端工程师对RTL和SDC是非常熟悉的,但是UPF(SNPS叫UPF,Cadence叫CPF)更多地是跟后端相关。
一、UPF定义
UPF(Unified Power Format) is a power intent format. UPF的作用是基于工具命令语言(tcl)把功耗设计意图(power intent)传递给EDA工具,从而帮助实现物理设计。因为RTL只能实现功能设计,对于功耗设计意图则需要通过UPF实现,下面是两者的区别。
Power intent用于描述芯片工作的『电特性』,包括工作电压、电压的开关、芯片的power state(such as run/standby/retention/shutdown)、低功耗cell插入的策略等。
二、UPF术语
1. Power Domain
Power Domain:设计中的一组元素,它们共享一组公共的电源。默认情况下,电源域中的所有逻辑元素使用相同的主电源和主地。
2. Power Supply Network
Supply Nets:可以类比RTL里面的wire,用来定义一根电源线,而且只在声明它的PD中有效。
Supply Ports:可以类比RTL里面的port,在电路中它们对应的是电源pin。
Power Switches:这个没有可类比的RTL元素,它就是一个电源开关,其两端电源属于不同的Nets,控制信号来自RTL function电路。
3. Power State table
Power State table:用来定义芯片低功耗模式的一张表格,列出本设计中所有电源域的电压值和电源开关状态的允许组合。
4. Special Cells for Low Power Techniques
UPF包含level shifter/isolation cell/retention register/power switch/always_on buffer等单元,来实现多电压域等更复杂的低功耗设计。
Level Shifter
对于多电压设计,需要用Level-shifter来实现不同电压域之间信号的电平转换。根据信号电平由高到低和由低到高的转换,Level-shifter分为两类,一种是高到低、一种是低到高。
Isolation Cell
主要用于不同的电源域之间,其中一个电源域断电后,不对另外一个电源域造成影响。主要是将断电后电源域的输出信号钳位到高或者低电平,防止掉电后的X态传播。
Retention Register
电源关断模块有可能要求register对关断前的数据进行锁存或者在电源打开后要求对锁存的数据进行恢复,这就需要特殊的单元Retention Register。它可以在掉电的时候保持住一个数值,用于对后面电路的控制。
Power Switch
power switch是一个装置,打开和关闭电源的供应网络。一个开关有一个输入供应网,一个输出供应网,以及至少一个用于控制开关的输入信号,可以通过多个信号控制,也可以输出多个信号。
Always_On Logic
在电源关断模块还有可能需要有些信号线或逻辑长期工作,比如MTCOMS单元的控制信号线,Retention Register的save/restore控制信号,Isolation Cell的控制信号。为了实现这种功能,这就需要另外的特殊单元叫Always-On BUF。
三、UPF流程
1. determine power intent
首先需要确定整个低功耗的策略,define power intent主要包括两步:
For example:
在把整体的功耗设计意图(power intent)确定好之后,接下来就需要用commands来一步一步实现。
2. define power domains
create power domain command syntax:
For example:
3. define supply network
define supply network用到的commands如下:
create_supply_port : 创建一个supply port
create_supply_net : 创建一根supply net
connect_supply_net : 将port 和 net 连接起来
create_supply_set : 一组supply nets 的集合(a bundle of supply nets),每一组包含power和groud,方便调用。supply set 物理上不存在,一种抽象的概念,方便在upf中使用。
For example:
4. define supply sets power states
define power states command syntax:
examples:
5. define power management strategies
Level Shifting
define level shifter command syntax:
For example:
Isolation
define isolation cell command syntax:
For example:
State Retention
define retention register command syntax:
For example:
Power Switches
define power switch command syntax:
For example:
四、UPF实例
五、IEEE 1801(UPF) Key Command Subset
总结
UPF 语言提供了一种描述芯片功耗要求的方法, 能表述出IC 电路低功耗设计的供电意图,比如描述电压域、电压域的供电端口、电压域的电压变换、电压域的供电电压、电压域之间怎样加入低功耗元件,以及定义电路的电源网络、电源线间的行为等等。UPF 的运用贯穿低功耗电路始终,比如仿真验证、逻辑综合、物理实现、等价性验证和最终签核(SignOff)等。