How is UPF hierarchy built for nested/composite power domains?
From PDVerse Low-Power Physical Design Mentor Guide, part of the pdVerse Mentor Guide
Short Answer
Hierarchy in UPF comes from scope: every command acts in the current scope, and you move it with set_scope (UPF) or run a block file in place with load_upf -scope (UPF). A domain created in a lower scope whose elements sit inside a parent domain simply nests there. create_composite_domain (UPF) groups several domains under one name for shared strategies, but it has no physical region.
Technical Explanation
- set_scope U_DSP makes later commands resolve names inside U_DSP;
set_scope /(UPF) returns to the design top,set_scope ..(UPF) goes up one level. - load_upf cop.upf -scope U_COP runs a block UPF with U_COP as its top, then restores the previous scope and top.
- Nesting: a domain created inside U_DSP claims its elements out of the parent domain; no extra command links them.
- Composite:
create_composite_domain PD_DSP_GRP -subdomains {...}(UPF) is a container. Strategies on it apply to each subdomain. - Tool support for create_composite_domain varies by release; the ICC2 MV guide marks its -subdomains option as not supported, so check before relying on it.
- -atomic on a block domain stops parents from pulling its descendants into other domains during hierarchical merge.
- Scope mistakes resolve element names in the wrong place, so domains end up empty or in the wrong block.
# [UPF] mychip.upf
create_power_domain PD_MYCHIP -elements {.} -supply {primary SS_AON}
load_upf cop.upf -scope U_COP
set_scope U_DSP
create_power_domain PD_DSP_CORE -elements {u_core}
create_power_domain PD_DSP_MEM -elements {u_mem}
set_scope /
create_composite_domain PD_DSP_GRP -subdomains {U_DSP/PD_DSP_CORE U_DSP/PD_DSP_MEM}
# [ICC2] icc2_shell
report_power_domainsWhat To Check
- Every set_scope is paired with a return to the scope you expect.
- Block UPF loaded with -scope uses names relative to the block top.
- Each instance still belongs to exactly one domain after nesting.
- Your tool release accepts create_composite_domain before you depend on it.
Command Checks & Actions
set_scope U_DSPResolve following UPF names inside U_DSP
load_upf cop.upf -scope U_COPRun the block UPF with U_COP as its top
create_composite_domain PD_DSP_GRP -subdomains {U_DSP/PD_DSP_CORE U_DSP/PD_DSP_MEM}Group two domains for shared strategies
report_power_domainsConfirm where each domain lives and what it holds
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative):
report_power_domainsshows PD_DSP_CORE and PD_DSP_MEM under U_DSP and the U_COP block domains under U_COP. - Suspicious (illustrative): A block domain appears at the top scope, which usually means a missing set_scope.
- Hard stop: An element-not-found error after set_scope, or an atomic merge error between block and top domains.
Common Mistake
The Trap: Forgetting set_scope / (UPF) after the U_DSP section, so the next top-level commands run inside U_DSP.
- Names such as U_COP no longer resolve, or new domains are created in the wrong block without an obvious error.
What The Interviewer Is Testing
- Do you know scope, not a parent option, is what builds UPF hierarchy?
- Can you explain what a composite domain is and is not?
Follow-up Question & Model Response
"When is a composite domain useful rather than just two separate domains?"
Candidate Model Response: When several domains share policy, such as the same isolation strategy toward the rest of the chip. You write the strategy once on the composite and it applies to each subdomain. The subdomains keep their own primaries and floorplan regions. If your tool does not support it, write the strategy on each subdomain instead.
Practical Example
Design Scenario: (illustrative) MYCHIP keeps PD_MYCHIP at the top. The coprocessor team delivers cop.upf, which the top loads with -scope U_COP so its names stay block-relative. Inside U_DSP, two domains split the core from its memories and are grouped as PD_DSP_GRP. One isolation strategy on PD_DSP_GRP then covers both toward PD_MYCHIP.
Low-Power & UPF Handbook
Master Low-Power VLSI & Multivoltage Design
Read the complete low-power guide library covering power domains, level shifters, isolation clamps, state retention, and UPF signoff verification.
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