ExpertQuestion 5 of 50

What are supply-set relationships, and what does the -resolve option of create_supply_net control?

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

Short Answer

Supply sets are related when they resolve to the same nets, which you declare with associate_supply_set (UPF). -resolve on create_supply_net (UPF) decides the state and voltage of a net that has more than one supply source. The default, unresolved, allows one source only, so a net fed by two switches needs one_hot, parallel, parallel_one_hot or a named resolution function.

Technical Reference DiagramWhat are supply-set relationships, and what does the -resolve option of create_supply_net control?

Technical Explanation

  • Association: associate_supply_set (UPF) makes two supply sets resolve to the same power and ground nets, so tools treat them as connected.
  • unresolved is the default: one source only, and a second source is an error.
  • one_hot: sources with different root drivers, at most one on at a time. Two on together make the net UNDETERMINED.
  • parallel: switches in parallel from one root supply. The net is FULL_ON when all are on and PARTIAL_ON when only some are.
  • parallel_one_hot applies one_hot across root drivers and parallel within each; a custom function name covers anything else.
  • ICC2 wants -resolve parallel (UPF) when one net ties the internal PG pins of several macros with fine-grained switches.
  • ICC2 stores a custom function name and checks for conflicts but does not evaluate it; simulation does.
# [UPF]  design.upf
create_supply_net VDD_DVS -domain PD_GPU -resolve one_hot
create_power_switch SW_HI -domain PD_GPU -input_supply_port {in VDD0p9} -output_supply_port {out VDD_DVS} -control_port {ctrl sel_hi} -on_state {ON in {ctrl}}
create_power_switch SW_LO -domain PD_GPU -input_supply_port {in VDD0p75} -output_supply_port {out VDD_DVS} -control_port {ctrl sel_lo} -on_state {ON in {ctrl}}
associate_supply_set SS_GPU_IP -handle PD_GPU.primary
# [ICC2]  icc2_shell
report_supply_sets
check_mv_design

What To Check

  • Every supply net with more than one source has a -resolve (UPF) type that matches how its sources behave.
  • On a one_hot net, no legal power state turns two sources on at once.
  • A net reused in another domain keeps the resolve type of its creating command.
  • Associated supply sets really share both power and ground.

Command Checks & Actions

UPF (design.upf)create_supply_net VDD_DVS -domain PD_GPU -resolve one_hot

Allows two switch outputs on one net with at most one on

UPF (design.upf)associate_supply_set SS_GPU_IP -handle PD_GPU.primary

Ties the IP supply set to the domain primary so both resolve to the same nets

ICC2 (icc2_shell)report_supply_sets

Shows which nets each supply set resolves to

ICC2 (icc2_shell)check_mv_design

Reports supply connection and multi-driver problems

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): report_supply_sets (ICC2) shows SS_GPU_IP and PD_GPU.primary on the same nets, and check_mv_design (ICC2) reports no supply driver errors.
  • Suspicious (illustrative): The power states include one where both SW_HI and SW_LO are on: it loads, but simulation will show VDD_DVS as UNDETERMINED.
  • Hard stop: Two switch outputs drive a net left unresolved: that breaks the one-source rule and must be fixed before implementation.

Common Mistake

The Trap: Using parallel for two switches fed from different rails, VDD0p9 and VDD0p75.

  • Parallel requires every path to trace back to one root supply, so this is an error. One_hot fits two rails with only one on at a time.

What The Interviewer Is Testing

  • Whether you know the default is unresolved, one source only.
  • Whether you can match one_hot, parallel and parallel_one_hot to a real switch topology.

Follow-up Question & Model Response

"What does -reuse do to a resolved net?"

Candidate Model Response: -reuse makes a net created for one domain available in another domain of the same scope. The standard says the -resolve value on the reusing command must not conflict with the creating command. So a one_hot net stays one_hot everywhere it is reused. If you need different behaviour, create a separate net.

Practical Example

Design Scenario: (illustrative) PD_GPU runs from VDD_DVS, fed by SW_HI from VDD0p9 or SW_LO from VDD0p75, declared with -resolve one_hot. In turbo mode SW_HI is on and SW_LO is off, so VDD_DVS is FULL_ON at 0.9 V. If firmware opens both switches during a handover, the net goes UNDETERMINED and power-aware simulation corrupts PD_GPU. The fix is break-before-make sequencing plus a power state that marks both-on as illegal.

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.