When can two power domains share one voltage area?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Short Answer
Two power domains can share one voltage area when their primary supplies are equivalent: connected in the UPF, physically connected, or functionally equivalent with the same power states. You declare the sharing with the shared_voltage_area design attribute through set_design_attributes (UPF), and one of the domains acts as the primary domain. The shared voltage area gets one power switch implementation, and connect_power_switch (ICC2) wires it for all domains in the set.
Technical Explanation
- Equivalent primary supplies: connected in the UPF intent, electrically equivalent, or functionally equivalent with equivalent power states.
- Declare equivalence with
connect_supply_net(UPF),create_supply_set -update(UPF),set_equivalent(UPF) orassociate_supply_set(UPF). - Shared voltage area:
set_design_attributes(UPF) with theshared_voltage_areaattribute lists the domains; one is the primary domain. - One switch per shared voltage area: the switch follows the strategy of the primary domain.
connect_power_switch -connect_sleep_and_ack_in_shared_domains(ICC2) reuses and shorts the sleep and ack connections of the other domains.- Why share: fewer voltage-area edges, fewer guard bands and one switch fabric instead of two small ones.
- Sharing domains whose supplies are not truly equivalent makes one domain lose power with the other and breaks its isolation assumptions.
# [UPF] design.upf
create_power_domain PD_COP -elements {U_COP/core} -supply {primary SS_COP}
create_power_domain PD_COP_MEM -elements {U_COP/mem} -supply {primary SS_COP}
set_design_attributes -elements {.} -attribute shared_voltage_area {PD_COP PD_COP_MEM}
# [ICC2] icc2_shell
create_voltage_area -power_domains {PD_COP PD_COP_MEM} -name VA_COP -region {{100 100} {300 250}}
connect_power_switch -source U_PC/PSE -port_name pse_va_cop -mode daisy -ack_out U_PC/PSE_ACK -ack_port_name pse_ack_va_cop -voltage_area VA_COP -connect_sleep_and_ack_in_shared_domains
report_voltage_areas -verbose VA_COP
check_mv_design -power_switchWhat To Check
- The domains' primary supplies are the same net, or declared equivalent in the UPF.
- The
shared_voltage_areaattribute lists every domain that will live in the voltage area. - Only one switch strategy is implemented, from the primary domain.
- Sleep inputs and ack outputs of all shared domains are connected into one chain.
Command Checks & Actions
set_design_attributes -elements {.} -attribute shared_voltage_area {PD_COP PD_COP_MEM}Declares that PD_COP and PD_COP_MEM share one voltage area.
connect_supply_netConnects supplies so the tool treats the primaries as electrically equivalent.
create_voltage_area -power_domains {PD_COP PD_COP_MEM} -name VA_COPCreates one named voltage area for both domains; they must share a primary supply net.
connect_power_switch -source U_PC/PSE -port_name pse_va_cop -mode daisy -ack_out U_PC/PSE_ACK -ack_port_name pse_ack_va_cop -voltage_area VA_COP -connect_sleep_and_ack_in_shared_domainsChains the switch cells and connects sleep and ack of the shared domains.
report_voltage_areas -verbose VA_COPConfirms both domains are associated with the voltage area.
check_mv_design -power_switchChecks power switch strategies and switch cells after connection.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative):
report_voltage_areas(ICC2) lists PD_COP and PD_COP_MEM under VA_COP, andcheck_mv_design -power_switch(ICC2) is clean. - Suspicious (illustrative): Both domains are in VA_COP but PD_COP_MEM still has an unconnected sleep input; rerun the switch connection.
- Hard stop:
create_voltage_area(ICC2) fails because the domains have different primary supply nets and no equivalence is declared.
Common Mistake
The Trap: Sharing a voltage area between a switched domain and an always-on domain because both run at 1.0 V.
- Same voltage is not the same supply: one rail switches off and the other must stay up.
- The shared switch fabric would power down the always-on logic, so the tool rejects it or, worse, isolation is skipped.
What The Interviewer Is Testing
- Knows the three equivalence conditions for shared domains.
- Understands that one shared voltage area has one switch implementation, driven by the primary domain.
- Separates a voltage area from a power domain.
Follow-up Question & Model Response
"Why would you split logic into two power domains and then put them in one voltage area?"
Candidate Model Response: The split is logical and the sharing is physical. You may need two domains for different isolation or retention strategies, for example memories with different clamp rules than the logic. Physically they switch together on one rail, so separate voltage areas would only add edges, guard bands and a second switch fabric. Sharing keeps the UPF precise and the floorplan simple.
Practical Example
Design Scenario: (illustrative) U_COP is split into PD_COP (logic, primary) and PD_COP_MEM (memories with their own retention strategy), both on SS_COP fed by VDD1p0_SW. They share VA_COP, 200 x 150 um, instead of two areas that would need about 1,500 um² of extra guard band between them. One column set of 40 header cells serves both; connect_power_switch (ICC2) daisy-chains the sleep signal from U_PC/PSE through all 40 cells and ties the PD_COP_MEM sleep and ack into the same chain. check_mv_design -power_switch (ICC2) comes back clean.
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.

Continue practising