Power State 介绍
定义:电源状态表定义了设计运行期间可以同时存在的合法状态组合
- 由其电源端口的一组开关状态和电压电平组成
- 用于综合、分析和优化
编码风格:
- supply port based
- UPF 1.0 style, deprecated in UPF2.1, not recommended
- Use
add_port_state
/create_pst
/add_pst
- supply set based:
- UPF 2.0 and 2.1, use
add_power_state
, recommanded style
- UPF 2.0 and 2.1, use
- mixed style:
- UPF 2.0 and 2.1, synopsys style, not recommended

Supply Port Based coding style
Supply Port Based coding style
add_port_state VDD -state{high 1.2}
add_port_state VDD_Block \
-state {high 1.2} \
-state {low 1.0}
add_port_state VSS -state{gnd 0}
create_pst PST -supplies {VDD VDD_Block VSS}
add_pst ALL_HIGH -pst PST -state {high high gnd}
add_pst PARTIAL_HIGH -pst PST -state {high low gnd}
Supply Set Based coding style
# Supply Set Level
add_power_state SS_VDD_VSS \
-state HIGH {-supply_expr {power == {FULL_ON 1.2} && ground == {FULL_ON 0}}} -simstate NORMAL
add_power_state SS_VDD_Block_VSS \
-state HIGH {-supply_expr {power == {FULL_ON 1.2} && ground == {FULL_ON 0}}} -simstate NORMAL \
-state LOW {-supply_expr {power == {FULL_ON 1.0} && ground == {FULL_ON 0}}} -simstate NORMAL
# System Level
add_power_state PD_Top \
-state ALL_HIGH {-logic_expr {SS_VDD_VSS == HIGH && SS_VDD_Block_VSS == HIGH}} \
-state PARTIAL_HIGH {-logic_expr {SS_VDD_VSS == HIGH && SS_VDD_Block_VSS == LOW}}
Mixed Style
add_power_state SS_VDD_VSS \
-state HIGH {-supply_expr {power == {FULL_ON 1.2} && ground == {FULL_ON 0}}} -simstate NORMAL
add_power_state SS_VDD_Block_VSS \
-state HIGH {-supply_expr {power == {FULL_ON 1.2} && ground == {FULL_ON 0}}} \
-state LOW {-supply_expr {power == {FULL_ON 1.0} && ground == {FULL_ON 0}}} \
-simstate NORMAL
create_pst -supplies {SS_VDD_VSS.power SS_VDD_Block_VSS.power SS_VDD_VSS.ground}
add_pst ALL_HIGH -pst PST -state {HIGH HIGH GND}
add_pst PARTIAL_HIGH -pst PST -state {HIGH LOW GND}
Off Domain Scenario (1)

Off Domain Scenario Example
add_port_state VDD -state{high 1.2}
add_port_state psw_rule/VDD \
-state {high 1.2} \
-state {off off}
add_port_state VSS -state{gnd 0}
create_pst PST -supplies {VDD psw_rule/VDD VSS}
add_pst ALL_HIGH -pst PST -state {high high gnd}
add_pst PARTIAL_HIGH -pst PST -state {high off gnd}
Off Domain Scenario (2)
add_power_state SS_VDD_VSS \
-state HIGH {-supply_expr {power == {FULL_ON 1.2} && ground == {FULL_ON 0}}} -simstate NORMAL
add_power_state SS_VDD_Block_VSS \
-state HIGH {-supply_expr {power == {FULL_ON 1.2} && ground == {FULL_ON 0}}} -simstate NORMAL \
-state OFF {-supply_expr {power == {FULL_OFF 0} && ground == {FULL_OFF 0}}} -simstate CORRUPT
add_power_state PD_Top \
-state ALL_HIGH {-logic_expr {SS_VDD_VSS == HIGH && SS_VDD_Block_VSS == HIGH}} \
-state OFF {-logic_expr {SS_VDD_VSS == HIGH && SS_VDD_Block_VSS == OFF}}