ExpertQuestion 4 of 50

What does a TOP-level power-intent structure look like, using the Mychip example as a reference?

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

Short Answer

A top-level UPF runs in a fixed order: domains, then supply ports and nets, then each domain primary supply, then switches and strategies, and last the power states. In MYCHIP that means four create_power_domain (UPF) calls, VDD1p0, VDD0p9, VDDdsp and VSS shared into subdomains with -reuse, a switch that makes VDD1p0_SW for PD_COP, and a table of legal rail combinations. Each section may only refer to objects an earlier section created.

Technical Reference DiagramWhat does a TOP-level power-intent structure look like, using the Mychip example as a reference?

Technical Explanation

  • Domains first: PD_MYCHIP at the top, then PD_CPU, PD_DSP and PD_COP by instance. No later command can name a domain that does not exist yet.
  • Supply nets: create each rail in PD_MYCHIP, then extend it with create_supply_net -reuse (UPF) so a subdomain shares that net instead of creating it again.
  • Primary supplies: set_domain_supply_net (UPF) gives each domain one primary power and one primary ground; PD_COP gets VDD1p0_SW.
  • Switch: create_power_switch (UPF) turns VDD1p0 into VDD1p0_SW under control of PSE from U_PC.
  • Strategies: isolation and retention for PD_COP run from VDD1p0; level shifters cover the VDD0p9 and VDDdsp crossings.
  • States last: create_pst (UPF) and add_pst_state (UPF) list the legal rail combinations, and any combination left out is illegal.
  • This page keeps the legacy form many flows still run. The 1801-2015 form uses create_power_domain -supply {primary SS_COP} (UPF) and add_power_state (UPF).
# [UPF]  mychip.upf
create_power_domain PD_MYCHIP -include_scope
create_power_domain PD_COP -elements {U_COP}
create_supply_net VDD1p0 -domain PD_MYCHIP
create_supply_net VDD1p0 -domain PD_COP -reuse
create_supply_net VSS -domain PD_MYCHIP
create_supply_net VSS -domain PD_COP -reuse
create_supply_net VDD1p0_SW -domain PD_COP
set_domain_supply_net PD_MYCHIP -primary_power_net VDD1p0 -primary_ground_net VSS
set_domain_supply_net PD_COP -primary_power_net VDD1p0_SW -primary_ground_net VSS
create_power_switch COP_SW -domain PD_COP -input_supply_port {in VDD1p0} -output_supply_port {out VDD1p0_SW} -control_port {ctrl PSE} -on_state {ON in {ctrl}}
create_pst MYCHIP_PST -supplies {VDD1p0 VDD0p9 VDDdsp VDD1p0_SW}

What To Check

  • Every domain has exactly one primary power and one primary ground before commit_upf (ICC2).
  • Shared rails are one net extended with -reuse, not created a second time.
  • PD_COP primary is VDD1p0_SW, and the COP_SW input is VDD1p0.
  • The table lists every rail and every mode the chip really enters.

Command Checks & Actions

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

Sets the switched rail and ground as PD_COP primary supplies

UPF (design.upf)create_pst MYCHIP_PST -supplies {VDD1p0 VDD0p9 VDDdsp VDD1p0_SW}

Declares the table columns, one per rail

ICC2 (icc2_shell)load_upf mychip.upf

Reads the file; a section out of order stops the load at the first unknown object

ICC2 (icc2_shell)report_power_domains

Confirms each domain primary supply

ICC2 (icc2_shell)report_pst -derived

Lists the merged state table the tool derived

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): report_power_domains (ICC2) shows PD_COP on VDD1p0_SW and the other three on always-on rails, and report_pst (ICC2) lists every planned mode.
  • Suspicious (illustrative): report_pst (ICC2) shows a mode nobody planned, or a subdomain net that is not the top VDD1p0.
  • Hard stop: A domain has no primary ground, or PD_COP never gets the top VDD1p0 because -reuse was dropped.

Common Mistake

The Trap: Dropping the dash so the line reads primary_ground_net VSS instead of -primary_ground_net VSS.

  • The command errors out, PD_COP gets no primary ground, and every later check that needs that domain supply fails with it.

What The Interviewer Is Testing

  • Whether you know the dependency order inside a UPF file.
  • Whether you can read and fix legacy UPF and name its 1801-2015 replacement.

Follow-up Question & Model Response

"Why extend a net with -reuse instead of creating it again in the subdomain?"

Candidate Model Response: With -reuse, create_supply_net does not create a net; it makes the existing VDD1p0, created for PD_MYCHIP, available in the extent of PD_COP. Without it the command tries to create VDD1p0 a second time instead of sharing the top rail. The standard requires -domain on both the creating and the reusing command. The -resolve value of the reusing command must not conflict with the creating one.

Practical Example

Design Scenario: (illustrative) Someone moves the set_domain_supply_net (UPF) line for PD_COP above create_supply_net VDD1p0_SW -domain PD_COP (UPF). VDD1p0_SW is unknown when that line runs, so the load stops there. Put back in order, the file loads, report_pst (ICC2) shows four modes PM1 to PM4, and check_mv_design (ICC2) moves on to the crossings.

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.