You are on page 1of 32

UPF

可以使用PTP工具进行实际功耗分析.

stand by mode:待机模式;

DVFS(Dynamic voltage and Frequency scaling):动态调整芯片电压范围;

降低功耗的几种方式,如图2所示:

Clock gating
multi-Threshold: low Vt延时小,high Vt延时大
Gate-level Power Optimization(效果不好)
architectural(效果好)
Advanced low power techniques: 1.多电压机制; 2.同一个电压,可以关闭不用的;3.多电
压+关闭+唤醒;4.多电压 + 低功耗。
power gating、
各个技术的优势:横坐标,影响的参数,纵坐标是技术。

几个参数

dynamic power reduction; -动态减功率;


Static Timing Reduction -静态定时减少

Timing & Area Penalty- 计时和区域处罚


Verification Impact 验证的影响

Implementation Impact 实现的影响


UPF: 因为RTL级不能够约束时钟,比如shutdown, isolation(隔离)这些信息,就是低功耗的信息无
法用RTL表示,所以增加UPF来描述,可以降低流片的风险。

UPF2.0 = IEEE 1801,是2009年提出的标准。

power domain工作电压,

PST: Power state table, 比如说上面3个domain, 就有 种状态。


为了保护电路,UPF的cell:有isolation cell(电平隔离), level shifter(电平转换), always-on
buffer(AO)用于enable信号或者控制信号,保持enable这些信号掉电不丢失; retention register(有
save 和 restore); power switch

将islation cell + level shifter = enable level shifters.

设置level shifter:

set_level_shifter;
map_level_shifter_cell;
设置isolation:

因为isolation cell有连接两个vdd,如果domain电源关了,也还是有电压的,因为一定有一个vdd供
电。

set_isolation;
set_isolation_control;
set_isolation_cell;

Power switch: create_power_switch

map_power_switch

retention registers:

用save保留状态,restore将状态唤醒。
UPF开发的流程:一共有3次,一开始一次,综合后一次,布局布线后一次。

如果电源是包含关系,要一层一层的关电源。先关内部,再关外部。
Power Domain
UPF 1.0使用的是port, net这些信号,而2.0的时候用set来管理

定义domain, domain一定要一开始定义好,后面不能随意修改。

top一般不 能 shutdown.

-elements: 表示可以关断的部分

supple network
Supply nets
Supply ports
Power switches
如何描述一个power supple network

1.定义开始的port:比如supplePort2、supplePort3;

2.定义开始的net: 比如suppleNet2;

3.将supplePort2 与 suppleNet2连接;

4.定义domain里面电源的起始port:比如supplePort3,将supplyport3 与 Net3连接,如果要直接
将suppleNet2和Net3连接,在create_supple_net Net3 时,后面加-reuse参数。

5.power switch;

例子:VDD,VDDL两个电源,vss地
1.创建domain; 2.创建supply ports, 定义一共有多少个电压值

//1.划分domain

1. create_power_domain Top
2. create_power_domain pd1 -elements u_dhm_core: 将u_dhm_core模块划分到pd1
domain下

//划分电压

1. create_supply_port VDD
2. create_supply_port VDDL
3. create_supple_port VSS

//2.定义Net

1.create_supple_net VDD -domain TOP // 在TOP domain中,创建vdd的net

2.create_supple_net VDDL -domain TOP

3.create_supple_net VSS -domain TOP

//3.将vddl 和 vss连接到pd1 domain中,在pd1 domain中也创建net


//这里网络的名字全部取一样

create_supple_net VDDL -domain pd1 -reuse //-reuse的含义,将top中的net直连到pd1 domain


中,如果没有-reuse的话,需要先在pd1中创建port, top domain的 net需要先连接pd1的port才能够连
上。

create_supple_net VSS -domain pd1 -reuse

create_supple_net VDDLS1 -domain pd1

//4.将Top层的port和net相连接

connect_supply_net VDD -ports {VDD} //第一个vdd是net, 第二个vdd是port,因为取名的时候取


得一样

connect_supply_net VDDL -ports VDDL


connect_supply_net VSS -ports {VSS}

//5.确定pd1,top domain的使用电源

set_domain_supply_net TOP -primary_power_net VDD //确定TOP层的电源来源,来自VDD

-primary_ground_net VSS

set_domain_supple_net PD1 -primary_power_net VDDLS1

-primary_power_net VSS

DC中查看电源是多少V:check_mv_design,可以检查电源是否正确。

这里PD_SW_sw 箭头不是时钟,这里错了
创建power_switch:create_power_switch PD_SW_sw //把这个cell命名为PD_SW_sw

on_state {on in {!sleep}}: 当sleep=0的时候,关闭休眠,VDD_SW_S打开。

applies_to output: 表示作用域在output,如图中的ISO。

set_isolation隔离要在前,set_isolation_control控制信号在后面。applies_to output表示这个ISO
用于output.

-isolation_sense 指定control信号是高电平隔离还是低电平隔离。

parent: 表示不是在指定PD_SW域里面。

原本1.0的UPF都是全部输入输出加上iso, 命令是 -applies_to input | output |both

为了更加精细,将ISO加到特定位置,我们使用source and sink


指定source 和 sink(入点与出点),

set_isolation iso_mult -domain MULT


-source TOP_p_set //含义,定义一个isolation iso_mult,归属与MULT域上,只
加在输入信号 是TOP_p_set中。
同理,-sink是指 只加上输出信号是TOP_p_sset端口上。

-domain应该在source的位置。因为AO supply by PD2.primary, 所以sink应该连接到PD2.

只有当两个cell的电压不同时,才需要ISO,如果两个cell电压一致,就不需要。
我们用-diff_supply_only true:检测两端是否一致。

set_level_shifter: self表示在自己的domain中,parent是自身domain的外部。

HL可以不放,因为高电压也可以直接运行在低电压工作域中。这样子可以省面积。但是LH,低电
压升高比较难

level-shifter(LS)

ELS = Isolation + LS = enable level shifter


在可关断的电源中,加一个retension. 内部关系的时候,VDD_SW_S关闭了,用VDD_SW供电将内
容保存在reg.

左下角紫色就是power state table,在右下角的几行来定义。


Using supply ports/nets using supply sets

列出电压参
add_power_state PD1. primary -state LO -
数(电压的
add_port_state spVPD1 - supply_expr{power == '{FULL_ON, 1.0}}
命名和他对
state {LO 1.0} //FULL_ON是关键字,表示on。
应的电压
add_power_state是不一样的
值)

Create_pst mypst -
supplies {spVPD1 create_pst mypst -supplies
列出横轴 pwrsw1/out spVSS} {PD1.primary.power pwrsw1/out
//mypst是你定义的横坐标 PD1.primary.ground}
名称

定纵轴和数 add_pst_state s0-pst add_pst_state s0-pst mypst -state {HI HI


值 mypst -state {HI HI ON} ON} //这条一样

supply_on("VDD", 1.0); supple_on("TOP.primary.power",1.0)


打开和关闭
supple_off("VDD"); supple_off("TOP.primary.power")

比如我们要定义下面PST

1.定义电压参数,把横坐标电压参数写出来。

注意的是VDD_PD1S, 这条的表达式是 u_dhm_core/pd1_sx/out.


2.定义横轴和纵轴信息。

UPF2.0的表示:

与1.0不同的地方就在第一个定义电压这里。1.0用的是add_port_state ,2.0用的是
add_power_state.

有3个参数,supply_expr, logic_expr, simstate。supply_expr一定要有,其他两个参数可有可


无,也比较少用。

boolean_funciton参数表:
simstate参数:如果on是开启,则用Normal,如果off是开启,则用corrupt

接上面例子,ssTOP, ssPD1是创建的两个set.
对电压名称 添加电压。要注意的点: 对于ground而言, on=0V, 对于power而言,off = 0v.

一个demo:
supple set
因为在一个domain中,有很多的net,为了更好的管理,我们定义一个set集合,来分组管理。

在verification的时候,只需要直接写set即可,不用写port, net,不用这么具体,他回verification
set下面的集合。

command: create_supple_set

supple set可以包含:power, ground(常用,其他不常用), pwell, nwell, depppwel, deepnwell


比如:

先定义一个set, 然后定义set下面的power and ground, -update是表示前面有错误,更新一下。

例子:

他的举例:将network比较将电牵到你家,而set相当于你买的插座
从上往下看,只有最下面mySS1有电了,mySS2,mySS3都有会有电。

连接关系:power domain -> power set(包含了primary, default_isolation, default_retention三


个属性) -> power / ground

调用例子:在第二讲
1.创建domain

2.创建suppy net, 连上.power, .ground; 因为是属性,用.调用,并且power, ground 归属于


primary

set_domain_supply_net PD1

-primary_power_net ssPD1.power

-primary_ground_net SSPD1.ground

// isolation 和 retention与supply set不能够使用同一个power,

set_isolation PDiso -domain PD1 //将PD1域 domain进行电源隔离

-isolation_supply_set ssAO //因为我们的电源来自ssPD1 set, 所以隔离电源要来自另一个电源,所


以用ssAO.

-clamp_value 1: 钳位电平,是掉电后保持的电平。

同理,retention 保护也是,不然怕ssPD1 set掉电了,没有候补

set_retention PDret -domain PD1

-retention_supply_set ssAO.

UPF-power intent strategies:UPF加上保护逻辑


Power switch strategies tradeoffs
Power switch: 有两种打开方式,一种是P管0打开,另外一种N管,1打开,一般更偏向用P管,0

power switch有两种结构:1.daisy chain; 2.High-fanout


1. daisy chain:链式结构,缺点就是响应慢,但是节约资源
2. high-fanout: 高扇出结构,优点,响应快,缺点,会消耗大量的资源。

UPF synthesis
流程:

SDC+RTL+UPF ->经过DC -> gatas + UPF' -> UPF''


因为是0.8 to 1.0所以需要level shift, 并且因为这两个domain,一个多了一个off状态,所以我们在
这里需要加个isolation.

logic_expr要和power switch一致。
Single rail cells: inverters, buffers, AND, OR

multi-rail cell: switch, retention,isolation..

SCMR: std_cell_main_rail, attribute in .lib,在lib中定义

pg_pin (power and ground pin)

HL是single rail, LH是dual rail.


既有HL,又有LH

ELS 不是简单的isolation + LS 拼接。


当信号要经过一个shutdown domain的时候,需要使用AO。
RR cell有两个结构,一个FF和一个Latch组成。当掉电的时候,FF的数值存到latch,恢复的时候,
latch将数值回到FF,

You might also like