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