What does UPF contain, and why is it separate from the netlist?
From PDVerse PnR Interview Handbook, part of the pdVerse Mentor Guide
Last updated:
Short Answer
UPF captures power intent, not connectivity — which logic belongs to which power domain, how supplies and power states are modeled, and what protection strategies (isolation, retention) are required. When a power-gated block shuts off, its outputs can float to invalid values, so neighboring always-on logic needs isolation cells; a crossing between two different voltage domains needs a level shifter; registers that must remember their state through a shutdown need retention.
Technical Explanation
- UPF captures power intent, not connectivity — which logic belongs to which power domain, how supplies and power states are modeled, and what protection strategies (isolation, retention) are required.
- When a power-gated block shuts off, its outputs can float to invalid values, so neighboring always-on logic needs isolation cells; a crossing between two different voltage domains needs a level shifter; registers that must remember their state through a shutdown need retention.
- A net literally named "VDD" in the netlist tells you nothing about the actual shutdown sequence or isolation policy — that behavioral intent lives only in UPF, describing domains, supply relationships, power states, and the specific strategies attached to them.
- The physical voltage area and power grid have to agree with this intent, but a voltage area isn't just a rebranded power domain — always verify that strategies actually bind to the objects they're supposed to, that power/ground conflicts are resolved, and that the UPF loaded with the correct scope; a file that loads without error but the wrong scope can quietly describe a different design than you intended.
Command Checks & Actions
load_upf block.upfLoads the power intent -- domains, supply nets, isolation, level-shifter, and retention strategies -- as data kept separate from the netlist itself.
commit_upfCommits the power intent and runs the global consistency checks. Most UPF-to-netlist mismatches surface at exactly this step, not at load_upf.
check_mv_designVerifies there are no multivoltage violations after the power intent is committed, the direct legality check for a UPF-driven design.
Common Mistake
The Trap: Assuming isolation and level shifting are interchangeable, or inserting cells without checking the receiving supply and power states.
Follow-up Question & Model Response
"Can a single-voltage design need UPF?"
Candidate Model Response: Yes, for example when power gating or retention is modeled, even if active domains share a nominal voltage.
Practical Example
Tapeout Scenario: If a switchable accelerator drives an always-on controller, isolation may hold the interface at a defined value during shutdown. Level shifting addresses voltage compatibility; it does not automatically provide the required shutdown clamp.
PnR Flow Mentor Guide
Master the Physical Design Implementation Flow
Read the complete 8-chapter PnR Flow Mentor Guide free on the web — library setup through placement, clock tree synthesis, routing, chip finishing, hierarchical implementation, and ECO, all the way to stream-out.
Offline PDF Bundle
Want all 1109 questions offline?
Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

Continue practising