How does a virtual rail behave differently from a primary rail inside a shutdown domain, using the Mychip PD_COP example?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Technical Explanation
In PD_COP, the domain's primary power net is set to VDD1p0_SW — a supply net created specifically inside PD_COP (create_supply_net VDD1p0_SW -domain PD_COP) that is the switched output of the power switch. This is the rail that actually collapses when the domain shuts down. VDD1p0, by contrast, is the always-on input rail feeding the switch, and it stays up regardless of PD_COP's power state — it's deliberately used as the isolation_power_net and retention_power_net so that isolation clamps and retention storage keep working even while the switched (virtual) rail is dead.
Architecture-level Reasoning
If isolation cells or retention latches were powered from the same switched rail they are protecting, they would lose power at exactly the moment they're needed to hold state or clamp outputs — so the architecture always powers those specific power-management cells from the always-on primary rail, not the domain's own switchable/virtual rail.
Step-by-step Walkthrough
1) create_supply_net VDD1p0_SW -domain PD_COP creates the switched (virtual) output rail local to PD_COP. 2) set_domain_supply_net PD_COP designates VDD1p0_SW as PD_COP's primary power net — ordinary logic in U_COP is powered from this switchable rail and does go down. 3) For isolation: set_isolation for PD_COP specifies isolation_power_net = VDD1p0 (the always-on input), not VDD1p0_SW — so isolation logic is powered by the always-on supply and can hold its clamp while the domain is off. 4) For retention: set_retention PD_COP_RET's retention_power_net is likewise VDD1p0, the always-on rail, so the retention latches survive the shutdown of the switched primary rail.
Command
create_supply_net VDD1p0_SW -domain PD_COP
set_domain_supply_net PD_COP -primary_power_net VDD1p0_SW primary_ground_net GND
set_isolation PD_COP_ISO -domain PD_COP -isolation_power_net
VDD1p0 ...
set_retention PD_COP_RET -domain PD_COP -retention_power_net VDD1p0
-elements {U_COP/reg1 U_COP/pc U_COP/int_state}Switch-by-switch
-primary_power_net (set_domain_supply_net): the switchable/
virtual rail that ordinary domain logic is powered from and that
collapses on shutdown. -isolation_power_net / retention_power_net: deliberately point at the always-on input
rail (VDD1p0), not the switched rail, so those specific power-management functions survive shutdown.Expected Result
Ordinary PD_COP logic correctly loses power when the switch is off, while isolation clamps hold their values and retention latches preserve state throughout the shutdown, because those functions are wired to the always-on rail rather than the virtual switched rail.
Possible Implementation Error
Accidentally specifying -isolation_power_net VDD1p0_SW (the switched rail) instead of VDD1p0, which would power the isolation cell from the very rail it's supposed to clamp against once it collapses — the clamp would lose its own power exactly when the domain shuts down.
Likely Tool / Clp Warning
No specific error code for this misconfiguration is documented; the practical symptom is an isolation or retention cell whose declared power net is not actually always-on relative to the domain it protects.
Root Cause
UPF does not automatically infer that isolation/retention power nets must be always-on — the always-on choice is purely a modeling decision the author makes explicitly in isolation_power_net/-retention_power_net.
Debugging Sequence
1) For every isolation and retention strategy on a shutdown domain, check the declared power net. 2) Confirm that net is genuinely always-on relative to the domain's own switch (i.e. it is the switch's input rail, not its output). 3) Cross-check against the PST to ensure the declared always-on net truly never goes off in any power mode the domain shuts down in. An isolation/retention power net that is not actually alwayson is a functional correctness failure that must be caught before signoff — it would silently corrupt state or lose the clamp exactly when the shutdown domain powers down.
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.
Continue practising