How does UPF define power-domain scope and extent, and what do the -applies_to_boundary options (upper/both/lower) control?
From PDVerse Low-Power Physical Design Mentor Guide, part of the pdVerse Mentor Guide
Short Answer
Scope is the instance where you create a domain, and extent is the set of instances that belong to it. One instance can be the scope of several domains but sits in the extent of only one. -applies_to_boundary (UPF) on an isolation or level-shifter strategy picks which edge it covers: the upper boundary facing the parent, the lower boundary facing a nested child domain, or both.
Technical Explanation
- Scope: the current scope when
create_power_domain(UPF) runs. It anchors names and the hierarchy where inserted cells can live. - Extent: the instances listed in
-elementsplus their children, unless a child is claimed by another domain. - Upper boundary: the LowConn (inside) side of each port on the domain boundary instances, facing the parent.
- Lower boundary: the HighConn (outside) side of ports on child instances in another domain, facing the nested child.
-applies_to_boundary upper|lower|both(UPF) filters a strategy by edge. On the lower boundary,-applies_to(UPF) reads from the strategy domain, so a child output counts as an input.- Defaults differ: the ICC2 MV UG treats upper as the default, while IEEE 1801-2015 lists both. Write the value every time.
- What breaks: a PD_TOP strategy left at the ICC2 default never reaches PD_BOT pins, so that crossing gets no cell until
check_mv_design(ICC2) flags it.
# [UPF] design.upf
create_power_domain PD_TOP -elements {.}
create_power_domain PD_BOT -elements {U_BOT} -supply {primary SS_BOT}
set_isolation ISO_LOW -domain PD_TOP -applies_to inputs -applies_to_boundary lower -isolation_supply SS_TOP -clamp_value 0 -isolation_signal iso_en -isolation_sense high
set_level_shifter LS_ALL -domain PD_TOP -applies_to both -applies_to_boundary both -rule low_to_high
# [ICC2] icc2_shell
report_power_domains
check_mv_designWhat To Check
- Every instance is in exactly one extent, and
report_power_domains(ICC2) shows the extent you meant. - Every nested crossing is covered by a strategy with an explicit
-applies_to_boundary(UPF). - On lower-boundary pins, the
-applies_todirection is read from the strategy domain side. - The supplies that a
-locationchoice needs are available in that domain.
Command Checks & Actions
set_isolation ISO_LOW -domain PD_TOP -applies_to inputs -applies_to_boundary lower -isolation_supply SS_TOP -clamp_value 0 -isolation_signal iso_en -isolation_sense highIsolates PD_BOT outputs where they enter PD_TOP
report_power_domainsShows each domain extent and primary supply
check_mv_designFlags crossings with no isolation or level shifter
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative):
check_mv_design(ICC2) is clean and every PD_BOT output into PD_TOP shows an ISO_LOW cell. - Suspicious (illustrative): Isolation appears only on the upper-boundary ports of PD_TOP, not at the PD_BOT pins: the strategy took the upper boundary.
- Hard stop: A PD_BOT output drives live PD_TOP logic with no isolation cell while PD_BOT is off.
Common Mistake
The Trap: Writing -applies_to outputs (UPF) on a PD_TOP lower-boundary strategy to catch signals leaving the child PD_BOT.
- From the PD_TOP side those pins are inputs, so the strategy hits the wrong pins and the child outputs stay unisolated.
What The Interviewer Is Testing
- Whether you separate scope from extent and know an instance lives in one extent only.
- Whether you read strategy direction from the domain side on a lower boundary.
Follow-up Question & Model Response
"What happens with -applies_to_boundary both and -location parent on a middle domain?"
Candidate Model Response: Take the ICC2 MV UG case: PD_MID owns instance A and PD_BOT owns A/B. An inputs strategy on PD_MID with both and -location parent is placed on A/in1 and A/in2, in PD_TOP. It is not applied to the lower pin A/B/out1, because the parent of PD_MID is PD_TOP and the cell cannot go there. The tool warns, and you add a self-located strategy for that pin.
Practical Example
Design Scenario: (illustrative) PD_TOP holds U_MID in PD_MID and U_MID/U_BOT in PD_BOT, and only PD_BOT switches off. You want isolation on PD_BOT outputs, inside PD_MID. Write the strategy on PD_MID with -applies_to inputs -applies_to_boundary lower (UPF), supplied by SS_MID. The PD_MID upper-boundary pins stay untouched because both sides of them stay on.
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