UPF Guide

3 minute read



1. Set the level of implementation constraints.

set_design_top SoC/Video_SB #Specify design_top as Video_SB

set_scope . #Specify the scope of the command as the current level, namely Video_SB

set_scope V1/LV1 #Specify the scope of the command as V1/LV1

2. Set the power_domain

There are the following 5 domains and sub_domains under the Video_SB top level

Video_SB/Video_PD, Video_SB/V1_PD, Video_SB/V2_PD, Video_SB/LV12_PD, Video_SB/LV34_PD

The steps to set power_domain are as follows:

set_scope  Video_SB # set the scope to Video_SB 
create_power_domain Video_PD -include_scope       # create Video_PD power domain in current scope.
create_power_domain V1_PD -elements {V1}            # creates V1's domain, its own power domain called V1_PD
create_power_domain LV12_PD -elements {V1/LV1 V1/LV2}
create_power_domain V2_PD -elements {V2}
create_power_domain LV34_PD -elements {V2/LV3 V2/LV4}

3. Describe the power network of power_domain: Supply Network

The definition of the power network in the power domain is as follows:

Mainly through the following four for the connection of the power network.

create_supply_port VDD -direction in
create_supply_port VSS -direction in

create_supply_net Pwr -domain Video_PD
create_supply_net Gnd -domain Video_PD

connect_supply_net Pwr -ports (VDD)
connect_supply_net Gnd -ports (VSS)

set_domain_supply_net   Video_PD \
              -primary_power_net Pwr \
              -primary_ground_net Gnd

In the figure below, the supply_net in the V_PD domain multiplexes the supply_net in the Video_PD domain. Requires -reuse to describe

create_supply_net Pwr -reuse -domain V_PD
create_supply_net Gnd -reuse -domain V_PD 

At the same time, the power_domain to which the statement net belongs must be displayed.

set_domain_supply_net V_PD \
      -primary_power_net Pwr \
      -primary_ground_net Gnd

4. Create power_switch

create_supply_net VDDsw -domain V_PD #Define the supply_net generated by switch.

create_power_switch SW  -domain V_PD \
                        -input_supply_port {pwin Pwr } \
                        -output_supply_prt {pwout VDDsw } \
                        -control_port {swctrl sw_ctrl } \
                        -on_state {Pwon swctrl} \
                        -off_state {Pwoff !swctrl}
set_domain_supply_net V_PD \ #The primary_power_net of V_PD is the net generated by the switch
                        -primary_power_net VDDsw \
                        -primary_ground_net Gnd

5. Set the value of Supply Port

add_port_state VDD -state {ON_10 1.0} #VDD has only one normally open state, and its voltage value is 1.0v

add_port_state VSS -state {ON_00 0.0}

add_port_state SW/VDDsw -state {ON_10 1.0} -state {OFF off} #switch switch voltage VDDsw, there are two states of ON and OFF.

6. Description of Power State Table

create_pst PST1  -supplies {VDD, VDDsw, VDD2, VSS}

add_pst_state Normal -pst PST1 -state {ON_10, ON_10, ON_08, ON_00}
add_pst_state Sleep  -pst PST1 -state {ON_10, OFF, ON_08, ON_00}
add_pst_state Normal -pst PST1 -state {ON_10, OFF, OFF, ON_00}

7. Set retention quickly restores the status of the shut down domain

The power and ground of the retention cell are red VDD and VSS

set_retention V_PD_retention \ #So the state of V_PD domain can be restored
                  -domain V_PD \
                  -retention_power_net Pwr \
                  -retention_ground_net Gnd

set_retention_control V_PD_retention \
                  -domain V_PD \
                  -save_signal{SRctrl posedge} \
                  -restore_signal{SRctrl negedge}

8. Use isolation cell to isolate ON domain and OFF domain

The output of the OFF domain is connected to the ON domain, so its output needs to be processed.

set_isolation  V_PD_isolation \
              -domain V_PD \
              -applies_to outputs \
              -clamp_value 0 \
              -isolation_power_net Pwr \
              -isolation_ground_net Gnd 

set_isolation_control V_PD_isolation \
                -domain V_PD \
                -isolation_signal vISO \
                -isolation_sense high \
                -location parent

9. The level shift cell handles the transmission of signals between different voltage domains.

set_level_shifter LV_PD_LS
                  -domain LV_PD \
                  -threshold 0.1 \
                  -applies_to both \
                  -rule both \
                  -location self