IntermediateQuestion 2 of 60

How do you create supply ports and supply nets for a power domain?

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

Short Answer

You create the entry points with create_supply_port (UPF), the wires with create_supply_net (UPF), and join them with connect_supply_net (UPF). A net created for one domain can be extended into another with -reuse, so one physical rail spans the hierarchy. In IEEE 1801-2015 you then bundle nets into supply sets instead of naming them as domain primaries directly.

Technical Reference DiagramHow do you create supply ports and supply nets for a power domain?

Technical Explanation

  • Supply port: create_supply_port VDD1p0 (UPF) makes an entry point. ICC2 also creates a same-named net unless one exists, so create domain-scoped nets first.
  • Direction: IEEE 1801-2015 allows in, out and inout, default in. ICC2 adds internal for virtual nets that never exist physically.
  • Supply net: create_supply_net VDD1p0 (UPF) creates the net. With -domain PD_MYCHIP it is created in that domain scope.
  • -reuse creates nothing. It extends an existing net into another domain, and both the creating and reusing commands must carry -domain.
  • Connection: connect_supply_net VDD1p0 -ports {VDD1p0} (UPF) ties net to port. A new net is not a primary until a supply set or legacy binding makes it one.
  • ICC2 only accepts domain-independent nets in a supply set, so create the nets for SS_AON without -domain.
  • Every supply net needs an operating voltage; ICC2 reports UPF-057 when one is missing.
# [UPF]  mychip.upf
create_supply_net VDD1p0
create_supply_net GND
create_supply_net VDD0p9 -domain PD_MYCHIP
create_supply_net VDD0p9 -domain PD_CPU -reuse
create_supply_port VDD1p0 -direction in
create_supply_port VDD0p9 -direction in
create_supply_port GND -direction in
connect_supply_net VDD1p0 -ports {VDD1p0}
connect_supply_net VDD0p9 -ports {VDD0p9}
connect_supply_net GND -ports {GND}
create_supply_set SS_AON -function {power VDD1p0} -function {ground GND}
# [ICC2]  icc2_shell
report_supply_sets
check_mv_design -pg_netlist

What To Check

  • Every top-level supply port connects to exactly one net.
  • Each -reuse names a net that already exists, with -domain on both commands.
  • Nets bundled into supply sets are domain-independent.
  • Every supply net has an operating voltage.

Command Checks & Actions

UPF (design.upf)create_supply_net VDD0p9 -domain PD_CPU -reuse

Extend the existing VDD0p9 net into the PD_CPU extent

UPF (design.upf)connect_supply_net VDD0p9 -ports {VDD0p9}

Tie the net to the top-level supply port

ICC2 (icc2_shell)report_supply_sets

Show which net each power and ground function resolved to

ICC2 (icc2_shell)check_mv_design -pg_netlist

Check PG nets, including a supply net with no operating voltage

PrimeTime (pt_shell)report_supply_net

Confirm the same nets and voltages in PrimeTime

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): check_mv_design -pg_netlist shows no errors, and report_supply_sets resolves SS_AON to VDD1p0 and GND.
  • Suspicious (illustrative): A port shows no connected net, or a net exists in the PD_CPU scope that nothing references.
  • Hard stop: UPF-057 on VDD0p9 because it has no voltage, or load_upf fails because the -reuse target does not exist yet.

Common Mistake

The Trap: Creating a fresh VDD0p9 inside PD_CPU without -reuse when you meant the top-level rail.

  • You now have two unrelated nets with one name, and U_CPU sits on a net that no port drives until supply checks catch it.

What The Interviewer Is Testing

  • Do you know a port, a net and a connection are three separate objects?
  • Can you explain what -reuse extends and what it does not create?

Follow-up Question & Model Response

"When would you use -direction internal on a supply port?"

Candidate Model Response: When blocks are known to switch together and you want one name for their shared virtual supply. ICC2 treats a supply net that connects only to internal ports as a net that should not exist in the physical implementation. You can still reference it in connect_supply_net or find_objects. Keep in mind that internal is an ICC2 extension; IEEE 1801-2015 lists only in, out and inout.

Practical Example

Design Scenario: (illustrative) MYCHIP brings VDD1p0 at 1.0 V, VDD0p9 at 0.9 V and GND in at the top. VDD1p0 and GND are domain-independent and form SS_AON. VDD0p9 is created for PD_MYCHIP and extended into PD_CPU with -reuse, so U_CPU and the top-level level shifters share one rail. If report_supply_sets shows SS_AON on VDD1p0 and GND, and check_mv_design is clean, the supply skeleton is ready for strategies.

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.