upf学习supply_on/supply_off

本文介绍了如何在UPF文件中使用supply_on和supply_off来控制电源端口的上电和掉电,以及在测试平台tb_top.sv中如何调用这些指令。同时,对比了使用add_power_state和create_pst add_pst_state两种方法来设置电源状态,并给出了相应的示例代码。
AI助手已提取文章相关产品:

通过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}

转载于:https://www.cnblogs.com/lybinger/p/10482760.html

您可能感兴趣的与本文相关内容

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值