How do nested or rectilinear voltage areas work, and which shape wins where they overlap?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Short Answer
Where voltage-area shapes overlap, ICC2 uses stacking order: by default the shape defined last sits on top and owns the overlap. To nest one voltage area inside another, you define the outer one first and the inner one second, so the inner shape is on top and the outer area's effective shape becomes a ring. Define them the other way round and the outer shape masks the inner one, which ends up with no placement area at all.
Technical Explanation
- Stacking order: by default the order of definition, with the last shape on top.
- Overlap between voltage areas: the top shape owns the overlap; the tool changes the interpretation but deletes no shapes.
- Effective shapes: the
effective_shapesattribute read withget_attribute(ICC2) shows what each voltage area really owns after resolution. - Merging within one voltage area:
-merge_regionsoncreate_voltage_areaorcreate_voltage_area_shape(ICC2) merges abutting or overlapping shapes into disjoint ones. create_voltage_area_shape(ICC2) adds one shape per call to an existing voltage area.- You can reorder shapes with
set_voltage_area_shape -top(ICC2) and friends instead of recreating them. - A masked inner area has no placeable region, so its cells fail placement or end up outside the intended domain.
# [ICC2] icc2_shell
create_voltage_area -power_domains PD1 -region {{0 0} {30 30}}
create_voltage_area -power_domains PD2 -region {{10 10} {20 20}}
get_attribute -objects [get_voltage_areas PD2] -name effective_shapes
get_attribute -objects [get_voltage_areas PD1] -name effective_shapes
create_voltage_area_shape -voltage_area PD1 -region {{30 0} {40 10}} -merge_regions
report_voltage_areas -verboseWhat To Check
- Every nested voltage area was created after its parent, or raised to the top afterwards.
effective_shapesof the inner voltage area is not empty and matches its intended region.- The outer voltage area's effective shape is a ring around the inner one, not a solid rectangle.
- After merging, each voltage area has the minimum set of disjoint shapes you expect.
Command Checks & Actions
create_voltage_area -power_domains PD1 -region {{0 0} {30 30}}Creates the outer voltage area first so it sits below the inner one.
create_voltage_area_shape -voltage_area PD1 -region {{30 0} {40 10}} -merge_regionsAdds one shape to PD1 and merges it with the existing shapes.
set_voltage_area_shape -top VOLTAGE_AREA_SHAPE_2Moves a shape to the top of the stack to fix a wrong order.
get_attribute -objects [get_voltage_areas PD2] -name effective_shapesShows the region PD2 really owns after overlap resolution.
report_voltage_areas -verboseReports shapes, guard bands and the stacking order.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): PD2 effective_shapes returns {10 10} {20 20}, and PD1 returns the ring outline around it.
- Suspicious (illustrative): Both effective_shapes are correct, but neither voltage area has a guard band, so PD1 and PD2 cells can abut at the ring edge; add one before power planning.
- Hard stop: PD2 effective_shapes is empty: the outer shape masks it, and every PD2 cell has nowhere legal to go.
Common Mistake
The Trap: Writing the voltage-area script inner-first, for example in alphabetical order of domain names.
- The outer shape lands on top and masks the inner voltage area, so its effective shape is empty.
create_voltage_area(ICC2) still succeeds, so the problem only appears when placement cannot legalize PD2 cells.
What The Interviewer Is Testing
- Knows that stacking order, not size or containment, decides who owns an overlap.
- Checks
effective_shapesrather than the shapes you typed. - Can fix a wrong order in place with
set_voltage_area_shape(ICC2).
Follow-up Question & Model Response
"What is the difference between merging shapes and resolving overlaps?"
Candidate Model Response: Merging works inside one voltage area: -merge_regions (ICC2) replaces abutting or overlapping shapes with a minimum set of disjoint shapes, and the merged shape takes the top shape's place. Resolving works between different voltage areas: the top shape owns the overlap, but no shape is removed; only the interpretation changes. So merging changes the shape list, while resolution changes only the effective shapes. Guard bands follow the same rules, and after merging the top shape's guard band applies.
Practical Example
Design Scenario: (guide example) PD1 is 30 x 30 at the origin and PD2 is 10 x 10 at (10,10)-(20,20). Created outer-first, PD2 effective_shapes is {10 10} {20 20} and PD1 becomes a ring with a 10 x 10 hole, 800 area units instead of 900. Created inner-first, PD2 effective_shapes comes back empty and PD1 reports the full {0 0} {30 30}. The fix without recreating anything: set_voltage_area_shape -top (ICC2) on the PD2 shape, then check both effective_shapes again.
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