ExpertQuestion 3 of 50

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 Reference DiagramHow does UPF define power-domain scope and extent, and what do the -applies_to_boundary options (upper/both/lower) control?

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 -elements plus 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_design

What 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_to direction is read from the strategy domain side.
  • The supplies that a -location choice needs are available in that domain.

Command Checks & Actions

UPF (design.upf)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

Isolates PD_BOT outputs where they enter PD_TOP

ICC2 (icc2_shell)report_power_domains

Shows each domain extent and primary supply

ICC2 (icc2_shell)check_mv_design

Flags 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

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.

See what's inside the bundle
Low-Power VLSI & UPF Handbook โ€” nine chaptersLow-Power & UPFDomains, isolation, retention, and multivoltage UPF.