upf學習supply_on/supply_off


通過supply_on/supply_off可以給UPF中定義的supply_port上電和掉電。

例如在upf中定義了:

create_supply_port VDD_DIG

create_supply_net VDD_DIG

connect_supply_net VDD_DIG -ports VDD_DIG

create_supply_port VSS_DIG

create_supply_net VSS_DIG -resolve parallel

connect_supply_net VSS_DIG -ports VSS_DIG

create_power_domain VDD -update -supply { primary VDD_SS}

create_supply_set VDD_SS \

                              -function {power VDD_DIG} \

                              -function {ground VSS_DIG} \

                              -function {nwell VDD_DIG}

add_power_state VDD_SS -sate MEM_NOM \

                              {\

                                    -supply_expr { power == `{ FULL_ON, 0.848 }} \

                                    -simstate NORMAL \

                              }

add_power_state VDD_SS -sate MEM_RET \

                              {\

                                    -supply_expr { power == `{ FULL_ON, 0.488 }} \

                                    -simstate NORMAL \

                              }

add_power_state VDD_SS -sate MEM_TURBO \

                              {\

                                    -supply_expr { power == `{ FULL_ON, 0.904 }} \

                                    -simstate NORMAL \

                              }

add_power_state VDD_SS -sate off \

                              {\

                                    -supply_expr { power == `{ OFF }} \

                                    -simstate CORRUPT \

                              }

在tb_top.sv中,通過supply_on/supply_off上電或掉電:

initial begin

  if(power_on)

    supply_on("tb_top/dut/VDD_DIG",0.904);

  else

    supply_off("tb_top/dut/VDD_DIG");

end

需要注意的是supply_on/off作用的是在upf中定義的port,且用到的電壓值也應該在upf中有定義。

注意在tb_top中使用UPF內容時候需要import UPF::*

上面例子中的add_power_state語句如果采用create_pst add_pst_state實現的話,可寫成以下方式:

add_port_state VDD_DIG \

                                     -state { VDD_NORMAL 0.848 } \

                                     -state { VDD_RET 0.488 } \

                                     -state { VDD_TURBO 0.904 } \

                                     -state { OFF off }

add_port_state VSS_DIG -state { gnd 0 }

create pst pt -supplies { VDD_DIG VSS_DIG }

add_pst_state POWER_NORMAL -pst pt -state {VDD_NORMAL gnd}

add_pst_state POWER_RET -pst pt -state {VDD_RET gnd}

add_pst_state POWER_TURBO -pst pt -state {VDD_TURBO gnd}

add_pst_state POWER_CORRUPT -pst pt -state { OFF gnd}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM