IntermediateQuestion 4 of 60

How do you connect a supply net to a domain's primary power/ground using set_domain_supply_net?

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

Short Answer

set_domain_supply_net (UPF) names the primary power and ground nets of a domain, and every cell in that domain is then implicitly tied to them. IEEE 1801-2015 lists it as legacy: the modern form binds a supply set with create_power_domain PD_COP -supply {primary SS_COP} (UPF). Both still load in ICC2 and PrimeTime, so you need to read the old form and write the new one.

Technical Reference DiagramHow do you connect a supply net to a domain's primary power/ground using set_domain_supply_net?

Technical Explanation

  • Implicit connection: every standard cell in PD_COP gets its power and ground pins tied to the primary nets, with no per-instance connect.
  • Modern form: bundle VDD1p0_SW and GND into SS_COP, then give the domain -supply {primary SS_COP}.
  • Legacy form (still accepted by ICC2/PT): set_domain_supply_net PD_COP -primary_power_net VDD1p0_SW -primary_ground_net GND (UPF). Both options are required.
  • Shutdown domains: the primary must be the switch output VDD1p0_SW. Pointing it at VDD1p0 keeps PD_COP on forever.
  • A domain has one primary power and one primary ground. Other supplies reach it as isolation, retention or secondary supplies.
  • A new supply net is never primary on its own; ICC2 treats it as primary only after one of these bindings.
# [UPF]  mychip.upf
create_supply_set SS_COP -function {power VDD1p0_SW} -function {ground GND}
create_power_domain PD_COP -elements {U_COP} -supply {primary SS_COP}
# Legacy form (still accepted by ICC2/PT), use instead of the -supply binding
set_domain_supply_net PD_COP -primary_power_net VDD1p0_SW -primary_ground_net GND
# [ICC2]  icc2_shell
report_power_domains
check_mv_design

What To Check

  • PD_COP primary power is VDD1p0_SW, the switch output.
  • Primary ground is GND in every MYCHIP domain.
  • Each domain is bound once, by one method, so there is one source of truth.
  • Every primary net has an operating voltage.

Command Checks & Actions

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

Modern primary binding through a supply set

UPF (design.upf)set_domain_supply_net PD_COP -primary_power_net VDD1p0_SW -primary_ground_net GND

Legacy primary binding, still accepted by ICC2/PT

ICC2 (icc2_shell)report_power_domains

Show the primary supply each domain resolved to

ICC2 (icc2_shell)check_mv_design

Catch power domain and supply rule errors after binding

PrimeTime (pt_shell)report_power_domain

Confirm the same primaries in PrimeTime

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): report_power_domains shows PD_COP on VDD1p0_SW and GND, and PD_CPU on VDD0p9 and GND.
  • Suspicious (illustrative): PD_COP shows VDD1p0 as primary: the UPF loads, but the domain can never switch off.
  • Hard stop: load_upf fails because -primary_ground_net lost its leading dash, or a domain has no primary at all.

Common Mistake

The Trap: Setting the primary of the shutdown domain PD_COP to the always-on input VDD1p0 instead of the switched net VDD1p0_SW.

  • PD_COP stays powered in every mode, the switch does nothing, and power-aware checks never see the domain turn off.

What The Interviewer Is Testing

  • Do you know this command is legacy and what replaced it?
  • Do you tie a shutdown domain to the switch output, not the switch input?

Follow-up Question & Model Response

"If both forms still work, why migrate to supply sets?"

Candidate Model Response: Because the rest of IEEE 1801-2015 is built around sets. Isolation and retention strategies take -isolation_supply and -retention_supply as sets, and power states are written on sets with add_power_state. Mixing a net-based primary with set-based strategies works, but you end up tracking one supply under two names. New UPF should use the -supply binding and keep the legacy command only in inherited files.

Practical Example

Design Scenario: (illustrative) PD_CPU is always on at 0.9 V, so its primary is VDD0p9 and GND. PD_COP shuts down, so its primary is VDD1p0_SW, the output of switch PD_COP_SW fed from VDD1p0 at 1.0 V. In the modern file these are SS_CPU and SS_COP, bound with -supply. If PD_COP pointed at VDD1p0, report_power_domains would still look tidy, but no power state could ever turn PD_COP off.

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.