IntermediateQuestion 14 of 20Source PDF page 69

How does a "virtual rail" get created in practice -walk through the switched supply net in the Mychip example.

From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide

Explanation

A virtual (switched) rail isn't produced by one dedicated command -it emerges from the combination of declaring a separate supply net inside the shutdown domain and making a power switch's output_supply_port bind to that net. The switch is what turns an ordinary-looking net into a rail that is only live when the switch is on.

Implementation Walkthrough

Step 1: inside PD_COP, declare the switched net, distinct from the always-on input: create_supply_net VDD1p0_SW -domain PD_COP. Step 2: make that switched net the domain's primary power so all of U_COP's logic references it: set_domain_supply_net PD_COP -primary_power_net VDD1p0_SW -primary_ground_net GND. Step 3: create the switch that actually produces the rail, explicitly naming VDD1p0_SW as its output: create_power_switch PD_COP_SW -domain PD_COP input_supply_port {VDDG VDD1p0} -output_supply_port {VDD VDD1p0_SW} -control_port {SLEEP U_PC/PSE} -ack_port {SLEEPOUT U_PC/PSE_ACK} ack_delay {SLEEPOUT 10} -on_state {SW_on VDDG !SLEEP} -off_state {SW_off SLEEP}. Step 4: give it a real cell with map_power_switch PF_COP_SW -domain PD_COP -lib_cells HEADBUF_T50.

Command

create_supply_net VDD1p0_SW -domain PD_COP

Switch-by-switch

-domain: the switched net belongs to PD_COP's local supply set; within the subsequent create_power_switch call, -output_supply_port {VDD VDD1p0_SW} names the switch's internal output port VDD and binds it to the newly declared virtual rail net VDD1p0_SW.

Expected Tool Behavior

VDD1p0_SW behaves electrically as PD_COP's actual power rail -- on when the switch's on_state condition (!SLEEP) holds, off when SLEEP is asserted -- while the always-on VDD1p0 remains available for isolation and retention supplies that must stay powered.

Example

Mychip's PD_COP domain: always-on input VDD1p0 feeds switch PD_COP_SW, which produces the virtual/switched rail VDD1p0_SW, which becomes PD_COP's primary power net for all of U_COP's logic.

Common Mistake

Wiring the domain's primary power net directly to the always-on input VDD1p0 instead of to a separate switched net -- this leaves the domain permanently powered and there is no virtual rail at all.

Likely Error Or Warning

This topic is not covered in enough depth here to give a fully reliable answer for an error specific to this mistake; more generally, a supply net lacking an assigned operating voltage triggers a check_mv_design error (UPF-057).

Debugging Approach

Run report_power_domain on PD_COP to confirm its Default Supplies show VDD1p0_SW as primary power, and use query_power_switch to confirm the switch's declared output_supply_port matches.

Visual explanationLow-power context: How does a "virtual rail" get created in practice -walk through the…
Low-power context: How does a "virtual rail" get created in practice -walk through the…A three-step concept map summarizes the focus, core answer, and practical verification for How does a "virtual rail" get created in practice -walk through the switched supply net in the Mychip example.Question focusHow does a "virtualrail" get created inpractice -walk throughthe…Core answerA virtual (switched)rail isn't produced byone dedicated command-it emerges…Verify in practicecreate_supply_netVDD1p0_SW -domain PD_COPUnderstand → explain the mechanism → verify the assumptions

Continue learning free

Get a practical low-power chapter

Receive the existing “Low Power and Multivoltage Fundamentals” PDF chapter and its download link by email.