How do you create a voltage area, and why add a guard band?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Short Answer
create_voltage_area (ICC2) turns a UPF power domain into a physical region where that domain's cells must be placed; the placer treats it like an exclusive move bound. A guard band is a hard keepout ring that grows outward from the voltage area edge, where no cell can sit. It keeps cells of neighbouring domains apart so their power rails and straps can be built without shorts.
Technical Explanation
- Voltage area: the placement region for a power domain's cells; all other cells must stay outside it.
create_voltage_area -power_domains(ICC2) needs at least the domain; with one domain the voltage area takes the domain's name.- Several domains in one voltage area need
-nameand must share the same primary supply net. - Shapes:
-regiontakes a rectangle {{llx lly} {urx ury}} or a rectilinear vertex list; shapes may abut, overlap or be disjoint. - Guard band:
-guard_band {{x y}}sets left/right width x and top/bottom width y; the default is no guard band. - The guard band extends outward, so it is part of the effective boundary but not the placeable area, and it eats parent-domain space.
- Without it, cells from two domains can abut at the edge, and power planning shorts their different rails.
# [UPF] design.upf
create_power_domain PD_COP -elements {U_COP} -supply {primary SS_COP}
# [ICC2] icc2_shell
create_voltage_area -power_domains PD_COP -region {{100 100} {300 250}} -guard_band {{5 2}}
get_voltage_area_shapes -of_objects PD_COP
report_voltage_areas -verbose PD_COP
check_mv_designWhat To Check
- Every UPF power domain that needs its own rails has a voltage area, and each shape matches the floorplan.
- Guard bands exist on every edge that faces a different voltage area or the parent domain.
- The parent domain still has room for its cells after the guard band ring is subtracted.
check_mv_design(ICC2) is clean for voltage-area and domain rules after creation.
Command Checks & Actions
create_voltage_area -power_domains PD_COP -region {{100 100} {300 250}} -guard_band {{5 2}}Creates the PD_COP voltage area with a 5 um left/right and 2 um top/bottom guard band.
get_voltage_area_shapes -of_objects PD_COPLists the shapes that make up the voltage area.
report_voltage_areas -verbose PD_COPReports shapes, guard bands, associated power domains and stacking order.
check_mv_designChecks the design for multivoltage violations after the voltage areas exist.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative):
report_voltage_areas(ICC2) shows PD_COP with one 200 x 150 um shape and guard band {5 2};check_mv_design(ICC2) reports no errors. - Suspicious (illustrative): The guard band is present but PD_MYCHIP cells around it sit at 92% utilization, so placement will struggle.
- Hard stop: No guard band on an edge where PD_COP abuts another voltage area, or a voltage area missing for a domain that has its own switched rail.
Common Mistake
The Trap: Sizing the voltage area for the domain's cells and forgetting that the guard band grows outward into the parent area.
- The parent domain loses the ring area, so its utilization jumps and cells get pushed away from the boundary.
- Late in the flow this forces a floorplan change, not a simple placement rerun.
What The Interviewer Is Testing
- Knows that a voltage area is physical placement, while a power domain is logical intent from the UPF.
- Understands what a guard band protects against and that it grows outward from the region.
- Verifies with reports and
check_mv_design(ICC2) instead of trusting the create command.
Follow-up Question & Model Response
"Can two power domains share one voltage area?"
Candidate Model Response: Yes, if their primary supplies are the same or equivalent. With create_voltage_area (ICC2) you list both domains in -power_domains and give the voltage area a -name, and all of them must share one primary supply net. For supplies that are connected or equivalent but not the same net, the UPF shared_voltage_area design attribute tells the tool they can share. Either way, one switch set serves the shared area.
Practical Example
Design Scenario: (illustrative) PD_COP needs about 19,400 um² of cells. The team creates a 200 x 150 um voltage area (30,000 um²), giving 65% utilization. A {5 2} guard band adds a ring outside it: (210 x 154) minus (200 x 150) = 2,340 um² taken from PD_MYCHIP. PD_MYCHIP had 8,000 um² of spare area around PD_COP, so it drops to 5,660 um², still enough. report_voltage_areas -verbose (ICC2) confirms the band, and check_mv_design (ICC2) is 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