Professional Documents
Culture Documents
可以使用PTP工具进行实际功耗分析.
stand by mode:待机模式;
降低功耗的几种方式,如图2所示:
Clock gating
multi-Threshold: low Vt延时小,high Vt延时大
Gate-level Power Optimization(效果不好)
architectural(效果好)
Advanced low power techniques: 1.多电压机制; 2.同一个电压,可以关闭不用的;3.多电
压+关闭+唤醒;4.多电压 + 低功耗。
power gating、
各个技术的优势:横坐标,影响的参数,纵坐标是技术。
几个参数
power domain工作电压,
设置level shifter:
set_level_shifter;
map_level_shifter_cell;
设置isolation:
因为isolation cell有连接两个vdd,如果domain电源关了,也还是有电压的,因为一定有一个vdd供
电。
set_isolation;
set_isolation_control;
set_isolation_cell;
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
//4.将Top层的port和net相连接
//5.确定pd1,top domain的使用电源
-primary_ground_net VSS
-primary_power_net VSS
DC中查看电源是多少V:check_mv_design,可以检查电源是否正确。
这里PD_SW_sw 箭头不是时钟,这里错了
创建power_switch:create_power_switch PD_SW_sw //把这个cell命名为PD_SW_sw
set_isolation隔离要在前,set_isolation_control控制信号在后面。applies_to output表示这个ISO
用于output.
-isolation_sense 指定control信号是高电平隔离还是低电平隔离。
parent: 表示不是在指定PD_SW域里面。
只有当两个cell的电压不同时,才需要ISO,如果两个cell电压一致,就不需要。
我们用-diff_supply_only true:检测两端是否一致。
set_level_shifter: self表示在自己的domain中,parent是自身domain的外部。
HL可以不放,因为高电压也可以直接运行在低电压工作域中。这样子可以省面积。但是LH,低电
压升高比较难
level-shifter(LS)
列出电压参
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}
名称
比如我们要定义下面PST
1.定义电压参数,把横坐标电压参数写出来。
UPF2.0的表示:
与1.0不同的地方就在第一个定义电压这里。1.0用的是add_port_state ,2.0用的是
add_power_state.
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
例子:
他的举例:将network比较将电牵到你家,而set相当于你买的插座
从上往下看,只有最下面mySS1有电了,mySS2,mySS3都有会有电。
调用例子:在第二讲
1.创建domain
set_domain_supply_net PD1
-primary_power_net ssPD1.power
-primary_ground_net SSPD1.ground
-clamp_value 1: 钳位电平,是掉电后保持的电平。
-retention_supply_set ssAO.
UPF synthesis
流程:
logic_expr要和power switch一致。
Single rail cells: inverters, buffers, AND, OR