How do you write an isolation strategy with set_isolation, and what do its key options control?
From PDVerse Low-Power Physical Design Mentor Guide, part of the pdVerse Mentor Guide
Short Answer
set_isolation (UPF) tells the tool which boundary ports of a switchable domain need an isolation cell, what powers that cell, and what value it holds while the domain is off. Pair it with a control signal, and the always-on side never sees a floating input.
Technical Explanation
- What gets isolated:
-applies_to inputs|outputs|both, narrowed with-elementsor filtered with-source,-sinkor-diff_supply_only. - ICC2 default: with no -applies_to and no source or sink filter, the strategy covers outputs only.
- What powers the cell:
-isolation_supply SS_AON. It must stay on while the domain is off, or the clamp dies with it. - What it holds:
-clamp_value 0 | 1 | latch. Pick 0 for active-high enables and 1 for active-low resets. ICC2 defaults to 0. - Control:
-isolation_signal U_PC/ISE -isolation_sense highsits onset_isolationitself in 1801-2015. ICC2 defaults the sense to high. - Legacy form (still accepted by ICC2/PT):
-isolation_power_net VDD1p0 -isolation_ground_net GND, with the signal onset_isolation_control(UPF). - -location self, parent, other or fanout picks the domain that hosts the cell; IEEE 1801-2015 defaults to self.
# [UPF] mychip.upf
set_isolation ISO_COP_OUT -domain PD_COP -applies_to outputs -isolation_supply SS_AON -clamp_value 0 -isolation_signal U_PC/ISE -isolation_sense high -location parent
# Legacy form (still accepted by ICC2/PT), control moves to set_isolation_control
set_isolation ISO_COP_OUT -domain PD_COP -applies_to outputs -isolation_power_net VDD1p0 -isolation_ground_net GND -clamp_value 0
# [ICC2] icc2_shell
create_mv_cells
check_mv_design -isolationWhat To Check
- Every PD_COP output that reaches an always-on receiver is covered by a strategy.
- The isolation supply is on in every state where PD_COP is off.
- The clamp value matches what each receiver treats as inactive.
- The control comes from always-on logic, and its sense matches the cell enable.
Command Checks & Actions
set_isolation ISO_COP_OUT -domain PD_COP -applies_to outputs -isolation_supply SS_AON -clamp_value 0 -isolation_signal U_PC/ISE -isolation_sense highDefine ports, supply, clamp and control in one strategy
create_mv_cellsInsert the isolation cells from the strategy before placement
check_mv_design -isolationCheck isolation strategy and isolation cell rules
check_lp -stage upfStatically check the strategies against the power intent
report_violations -app LPList tags such as ISO_STRATEGY_MISSING or ISO_CONTROL_INVERT
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative):
check_mv_design-isolation is clean, and every PD_COP output has an isolation cell on SS_AON. - Suspicious (illustrative): The same net is isolated twice, once by PD_COP and once by the receiver domain; the tool can merge these, but confirm the intent.
- Hard stop: ISO_CONTROL_INVERT from VC LP, or an isolation supply that turns off together with PD_COP.
Common Mistake
The Trap: Powering the isolation cell from the domain's own switched supply, for example -isolation_supply SS_COP.
- The cell loses power at the exact moment it must hold the clamp, so the always-on receiver sees a floating input.
What The Interviewer Is Testing
- Can you say what each option controls and what fails when it is wrong?
- Do you know the 1801-2015 form and the legacy set_isolation_control split?
- Do you know the ICC2 defaults: outputs only, clamp 0, sense high?
Follow-up Question & Model Response
"What happens if two isolation strategies claim the same port?"
Candidate Model Response: ICC2 resolves it by precedence, not by the order you wrote them. Ports named explicitly in -elements win, then ports implied by an instance in -elements, then domain-wide strategies, then -no_isolation, then -source/-sink, then -diff_supply_only true, then false. If two strategies still conflict, the one created first keeps the port. So a broad strategy never silently overrides a port you named on purpose.
Practical Example
Design Scenario: (illustrative; ISO_AND_X1 is an illustrative cell name) PD_COP at 1.0 V drives irq and req into PD_MYCHIP. ISO_COP_OUT covers both outputs with clamp 0, SS_AON as isolation supply and U_PC/ISE active high. create_mv_cells uses ISO_AND_X1 cells, placed in PD_MYCHIP because of -location parent. Before U_PC opens the PD_COP switch it raises ISE, so irq and req read 0 until ISE drops after wake-up.
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