What are supply nets and supply ports in UPF?
From PDVerse Low-Power Physical Design Mentor Guide, part of the pdVerse Mentor Guide
Short Answer
A supply port is the entry point where power crosses a boundary, such as a chip pad or a block pin. A supply net is the wire that carries that power inside a scope, and connecting a net to a port joins them. UPF builds the power network from these two objects before any domain can use a supply.
Technical Explanation
- Supply port: a connection point for supply nets, created with
create_supply_port(UPF) on a scope boundary, with a direction. - Supply net: the UPF model of a power rail, created with
create_supply_net(UPF) inside a scope. - Connect:
connect_supply_net(UPF) joins a net to one or more ports so the value flows through. - Ports and nets carry a state (on, off, voltage) that the tools propagate to every domain using them.
- The nets then feed a domain's primary supply, directly or through a supply set, and power switches drive switched nets.
- Declare a net but never connect it to a port and the tools see a supply with no driver, so everything on it is treated as off.
# [UPF] design.upf
create_supply_port VDD1p0 -direction in
create_supply_port VSS -direction in
create_supply_net VDD1p0
create_supply_net VSS
connect_supply_net VDD1p0 -ports {VDD1p0}
connect_supply_net VSS -ports {VSS}Common Mistake
The Trap: Copying a snippet with a placeholder such as a bracketed port name that the web page or tool swallowed, leaving create_supply_port -domain (UPF) with no name.
- The UPF fails to load, or worse, loads with a net that has no port behind it and every cell on it simulates as unpowered.
Follow-up Question & Model Response
"Do you need a supply port at every level of hierarchy?"
Candidate Model Response: Only where power actually crosses a boundary you model. If a lower scope needs a supply from above, you create a port on that scope and connect the parent net to it. Within one scope, a net can be used directly without a port. Tools like ICC2 can also reuse a net across domains with the -reuse option of create_supply_net (UPF), which saves redundant port and net pairs.
Practical Example
Design Scenario: MYCHIP: top-level ports VDD1p0, VDD0p9 and VSS come in from the package. Nets of the same names connect to them. VDD1p0 feeds PD_MYCHIP, VDD0p9 feeds PD_CPU, and a power switch inside PD_COP takes VDD1p0 as input and drives the switched net VDD1p0_SW. Only VDD1p0_SW has no top-level port, because a switch, not a pad, drives it. Check: every net that feeds a domain has a driver, either a port or a switch output.
Low-Power & UPF Handbook
Master Low-Power VLSI & Multivoltage Design
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.

Continue practising