What are secondary PG placement constraints, and why does ICC2 need them?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Short Answer
Dual-rail cells in a shutdown domain, such as always-on buffers, isolation cells and level shifters, need a nearby strap for their secondary (backup) supply. By default ICC2 assumes that strap exists everywhere in the voltage area, which is rarely true. Secondary PG placement constraints tell the placer where the straps really are, so dual-rail cells land close enough for short, low-IR secondary PG routes.
Technical Explanation
- Default assumption: secondary straps are available across the whole voltage area, and supplies are physically available as the UPF says.
- Constraint:
create_secondary_pg_placement_constraints(ICC2) needs-layers(derive regions from existing straps) or-region(you give the areas). -marginsets how far from a strap a dual-rail cell may sit;-lib_cell_typeslimits which dual-rail cell types the constraint covers.-exclude_supply(ICC2) marks a UPF supply as physically unavailable in a voltage area when you cannot afford its straps.- Constraints take effect only after
commit_secondary_pg_placement_constraints(ICC2), and you must commit again after any constraint, floorplan or UPF change. - The advanced legalizer is required; for advanced nodes it is enabled when you set the technology node.
- A dual-rail cell far from its strap needs a long secondary PG route, which risks IR drop and electromigration.
# [ICC2] icc2_shell
create_secondary_pg_placement_constraints -name secpg_cop -supply VDD1p0 -layers {M9} -margin 15 -voltage_areas PD_COP -lib_cell_types {level_shifters isolation_cells repeaters}
commit_secondary_pg_placement_constraints
check_secondary_pg_placement_constraints
report_secondary_pg_placement_constraintsWhat To Check
- Every shutdown voltage area with dual-rail cells has a constraint for its secondary supply.
- Constraints were committed after the last floorplan or UPF change.
check_secondary_pg_placement_constraints(ICC2) shows no conflicts with the UPF or strap availability.- No dual-rail cell sits outside its allowed margin after placement.
Command Checks & Actions
create_secondary_pg_placement_constraints -name secpg_cop -supply VDD1p0 -layers {M9} -margin 15 -voltage_areas PD_COP -lib_cell_types {level_shifters isolation_cells repeaters}Allows dual-rail LS, ISO and repeater (AO buffer) cells only within 15 um of VDD1p0 straps on M9 in PD_COP.
derive_secondary_pg_placement_constraintsGenerates constraints automatically from existing straps on the layers you give it.
commit_secondary_pg_placement_constraintsApplies the constraints; rerun after any constraint, floorplan or UPF change.
check_secondary_pg_placement_constraintsReports conflicts with the UPF, netlist, strap availability or derived constraints.
report_secondary_pg_placement_constraintsLists committed and uncommitted constraints and whether each is user or tool derived.
check_legalityFinds cells that violate placement constraints after placement.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative):
report_secondary_pg_placement_constraints(ICC2) shows secpg_cop committed;check_legality(ICC2) reports no dual-rail cell outside the 15 um margin. - Suspicious (illustrative): Constraint exists but is listed as uncommitted after a floorplan update, so the placer is still using old regions.
- Hard stop: Dual-rail isolation cells placed 60 um from any VDD1p0 strap, or a supply excluded while a UPF isolation strategy still uses it.
Common Mistake
The Trap: Editing the floorplan or UPF after committing, and not running commit_secondary_pg_placement_constraints (ICC2) again.
- The placer keeps honouring stale regions that no longer match the straps.
- Dual-rail cells end up away from their straps, and the problem shows up later as long secondary routes and IR or EM violations.
What The Interviewer Is Testing
- Understands why dual-rail cells need proximity to a secondary strap.
- Knows the commit step and when to repeat it.
- Can make a supply physically unavailable without editing the UPF.
Follow-up Question & Model Response
"What happens if you exclude a supply that an isolation strategy uses?"
Candidate Model Response: By default ICC2 will not let you make a supply unavailable if it is the primary supply, is used by an existing cell or port, or is named in an isolation, level shifter, retention or repeater strategy of that domain. If an excluded supply is used by a strategy, the commit step ignores that constraint and issues a warning. You can override some restrictions with -force (ICC2) alongside -exclude_supply, but then you own the risk. Fix the strategy or add the straps instead.
Practical Example
Design Scenario: (illustrative) PD_COP (on VDD1p0_SW, header-switched from VDD1p0) contains 24 dual-rail isolation cells and 10 AO buffers whose backup pins need VDD1p0. Secondary VDD1p0 straps exist only on M9 at a 60 um pitch. The team creates secpg_cop with -layers {M9} -margin 15 (ICC2) for level shifters, isolation cells and repeaters, commits it, and places. Every dual-rail cell lands within 15 um of a strap, so the longest secondary route is under 20 um. Later the floorplan moves one strap; the team reruns commit_secondary_pg_placement_constraints (ICC2) before the next placement.
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