BeginnerQuestion 36 of 50

What does the create_power_domain command do in UPF?

From PDVerse Low-Power Physical Design Mentor Guide, part of the pdVerse Mentor Guide

Short Answer

create_power_domain (UPF) names a power domain and lists the instances that belong to it, so every cell in those instances shares one primary supply and one set of strategies. The domain is created in the current scope, and every instance in the design must end up in exactly one domain.

Technical Reference DiagramWhat does the create_power_domain command do in UPF?

Technical Explanation

  • Syntax order: domain name first, then options: create_power_domain PD_CPU -elements {U_CPU} (UPF). No trailing semicolon.
  • -elements lists instances rooted in the current scope. Their descendants join too, unless they already belong to another domain.
  • -elements {.} puts the current scope itself in the domain. ICC2 examples also use -include_scope, which is not in the 1801-2015 syntax.
  • -exclude_elements removes listed instances from the element list; each excluded instance still needs a home in some other domain.
  • -supply {primary SS_CPU} is the IEEE 1801-2015 way to give the domain its primary supply set.
  • Legacy form (still accepted by ICC2/PT): set_domain_supply_net (UPF) with -primary_power_net and -primary_ground_net.
  • Every instance must belong to a domain before commit_upf (ICC2); one left out has no defined supply and ICC2 reports an error.
# [UPF]  design.upf
create_power_domain PD_MYCHIP -elements {.} -supply {primary SS_AON}
create_power_domain PD_CPU -elements {U_CPU} -supply {primary SS_CPU}
create_power_domain PD_DSP -elements {U_DSP} -supply {primary SS_DSP}
create_power_domain PD_COP -elements {U_COP} -supply {primary SS_COP}
# [ICC2]  icc2_shell
load_upf design.upf
commit_upf
report_power_domains

What To Check

  • Every top-level instance, including the power controller U_PC, lands in exactly one domain.
  • Each domain has a primary supply set.
  • Element names are rooted in the scope where the command runs.
  • No domain is left with an empty extent by mistake.

Command Checks & Actions

UPF (design.upf)create_power_domain PD_COP -elements {U_COP} -supply {primary SS_COP}

Create the domain and set its primary supply set

ICC2 (icc2_shell)load_upf design.upf

Read the power intent into the block

ICC2 (icc2_shell)commit_upf

Resolve power intent against PG connections

ICC2 (icc2_shell)report_power_domains

List each domain with its elements and supplies

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): report_power_domains shows four domains, each with its instances and a primary supply.
  • Suspicious (illustrative): A domain shows no primary supply set yet, so its cells have no defined rail until one is added.
  • Hard stop: An instance appears in two domains, or load_upf errors on an element name that does not exist in that scope.

Common Mistake

The Trap: Leaving an instance in no domain, for example by excluding it with -exclude_elements and never adding it to another domain.

  • ICC2 requires every instance to belong to a power domain before commit_upf (ICC2), so the flow stops with an error, and that logic has no defined supply.

What The Interviewer Is Testing

  • Can you explain scope versus extent without mixing them up?
  • Do you know the modern -supply form and the legacy supply-net form?

Follow-up Question & Model Response

"What happens if you create PD_CPU while the scope is set to U_SOC instead of the top?"

Candidate Model Response: The domain is created in scope U_SOC, and its element names are resolved relative to that scope. So -elements {U_CPU} now means U_SOC/U_CPU. If that instance does not exist, the command fails; if it does, the domain lives in the wrong place in the hierarchy. Always check the current scope before creating domains.

Practical Example

Design Scenario: (illustrative) In MYCHIP, PD_MYCHIP takes the top scope with -elements {.}, while PD_CPU, PD_DSP and PD_COP each take one instance. U_PC, the power controller, sits at the top and falls into PD_MYCHIP, so it stays on. If you had written PD_MYCHIP with -elements {U_CPU} by mistake, U_PC would have no domain at all.

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.