IntermediateQuestion 30 of 60Source: Synopsys IC Compiler II Multivoltage User Guide: Multiple Power Domains in a Single Voltage Area

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 Reference DiagramWhen can two power domains share one voltage area?
One hatched voltage area VA_COP containing two power domains, PD_COP (primary, logic) and PD_COP_MEM (subordinate, memories), both on the switched supply VDD1p0_SW, served by one set of four header switch columns (40 cells) whose sleep input and ack output are daisy-chained from PD_COP into PD_COP_MEM.

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) or associate_supply_set (UPF).
  • Shared voltage area: set_design_attributes (UPF) with the shared_voltage_area attribute 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_switch

What To Check

  • The domains' primary supplies are the same net, or declared equivalent in the UPF.
  • The shared_voltage_area attribute 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

UPF (design.upf)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.

UPF (design.upf)connect_supply_net

Connects supplies so the tool treats the primaries as electrically equivalent.

ICC2 (icc2_shell)create_voltage_area -power_domains {PD_COP PD_COP_MEM} -name VA_COP

Creates one named voltage area for both domains; they must share a primary supply net.

ICC2 (icc2_shell)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

Chains the switch cells and connects sleep and ack of the shared domains.

ICC2 (icc2_shell)report_voltage_areas -verbose VA_COP

Confirms both domains are associated with the voltage area.

ICC2 (icc2_shell)check_mv_design -power_switch

Checks 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, and check_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

Read the complete low-power guide library covering power domains, level shifters, isolation clamps, state retention, and UPF signoff verification.

Low-Power VLSI & UPF Handbook — nine chaptersLow-Power & UPFDomains, isolation, retention, and multivoltage UPF. →