What is the precedence order for isolation strategies when multiple strategies could apply to the same element?
From PDVerse Low-Power Physical Design Mentor Guide, part of the pdVerse Mentor Guide
Short Answer
When two isolation strategies could claim the same port, ICC2 ranks them in a fixed seven-level order, highest first: ports named in -elements, ports implied by an instance in -elements, ports implied by the domain name alone, -no_isolation, -source with -sink (both beats one), -diff_supply_only true, and -diff_supply_only false. The order of execution does not matter. If two strategies still conflict, the one created first keeps the port and later ones lose it.
Technical Explanation
- Levels 1 to 3 rank by how specifically the port is named: explicit port, then instance, then the whole domain.
- Level 4: strategies with
-no_isolation(UPF) rank below any strategy that names elements or only the domain. - Levels 5 to 7 are filter strategies:
-sourceand-sinktogether beat either alone, then-diff_supply_onlytrue, then false. - Conflicts: the strategy created first keeps the port. With ISO1 and ISO2 both listing p1, ISO1 wins p1 and ISO2 keeps only p2.
- Precedence is resolved per port, so one strategy can win some ports and lose others.
- Level-shifter and retention strategies have their own, shorter orders, so this ladder does not carry over to them.
- What breaks: a plain domain strategy with the wrong clamp beats the
-sink(UPF) strategy you meant, because naming the domain outranks filters.
# [UPF] mychip.upf
set_isolation ISO_ALL -domain PD_COP -applies_to outputs -isolation_supply SS_AON -clamp_value 0 -isolation_signal ISE -isolation_sense high
set_isolation ISO_DSP -domain PD_COP -applies_to outputs -sink PD_DSP -isolation_supply SS_AON -clamp_value 1 -isolation_signal ISE -isolation_sense high
set_isolation ISO_IRQ -domain PD_COP -elements {U_COP/irq_n} -isolation_supply SS_AON -clamp_value 1 -isolation_signal ISE -isolation_sense high
# [ICC2] icc2_shell
create_mv_cells
report_mv_cells
check_mv_designWhat To Check
- For each boundary port you can name the winning strategy and its level.
- No domain-only strategy takes ports that a filter strategy was written for.
- Strategies that conflict at the same level are created in the order you intend.
- The winning strategy on each port has the clamp its receiver needs.
Command Checks & Actions
set_isolation ISO_IRQ -domain PD_COP -elements {U_COP/irq_n} -isolation_supply SS_AON -clamp_value 1 -isolation_signal ISE -isolation_sense highNames the port explicitly, so it wins at level 1
create_mv_cellsInserts isolation cells according to the resolved strategies
report_mv_cellsLists the inserted multivoltage cells so you can see which strategy each port got
check_mv_designReports crossings left without the isolation they need
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): Every PD_COP output has the expected strategy: ISO_IRQ on irq_n and ISO_ALL on the rest.
- Suspicious (illustrative): The 4 ports that feed PD_DSP got ISO_ALL with clamp 0 although ISO_DSP asked for 1.
- Hard stop: An active-low PD_DSP reset input from PD_COP is clamped to 0 by the winning strategy, holding PD_DSP in reset whenever PD_COP is off.
Common Mistake
The Trap: Assuming the most specific-looking filter strategy beats a plain domain strategy.
- In the ICC2 order, naming only the domain ranks above
-source,-sinkand-diff_supply_only, so the plain strategy takes those ports.
What The Interviewer Is Testing
- Whether you know the exact ICC2 order rather than a guess such as last one wins.
- Whether you can predict the winning clamp on a specific port.
Follow-up Question & Model Response
"How would you make ISO_DSP win the ports that feed PD_DSP?"
Candidate Model Response: Take those ports out of the domain strategy, for example with -exclude_elements on ISO_ALL. Or list them explicitly in ISO_DSP with -elements, which lifts it to level 1. Then confirm the result in the inserted-cell report rather than trusting the UPF text. Keeping one strategy per clamp value per port group makes the intent easy to review.
Practical Example
Design Scenario: (illustrative) PD_COP has 64 outputs. ISO_ALL clamps them to 0, ISO_DSP asks for clamp 1 on the 4 ports that feed PD_DSP, and ISO_IRQ names irq_n with clamp 1. After insertion irq_n gets ISO_IRQ (level 1), but the 4 PD_DSP ports get ISO_ALL, because level 3 beats level 5. Adding -exclude_elements for those 4 ports on ISO_ALL gives them to ISO_DSP.
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.
Offline PDF Bundle
Want all 1109 questions offline?
Get the complete 4-book PDF bundle (PnR, STA, MMMC, Low Power) with a clickable table of contents - no ads, no internet needed.

Continue practising