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 · pdVerse Mentor Guide
Explanation
set_isolation defines which ports of a domain get isolation cells, what supply powers those isolation cells, and what fixed (or latched) logic value they clamp to once the domain is shut down -so downstream always-on logic never sees a floating or garbage value from a powered-off block.
Implementation Walkthrough
A canonical pattern is two commands: set_isolation ISO_OUTPUT domain PD_SHUTDOWN -isolation_power_net VDDG -isolation_ground_net VSS -clamp_value 0 -applies_to outputs; then set_isolation_control ISO_OUTPUT -domain PD_SHUTDOWN -isolation_signal ISOLATE_CTRL isolation_sense low -location parent, since the isolation_signal must be a net, not a port or pin. In Mychip, PD_COP's isolation power net is VDD1p0 -- the always-on input, deliberately NOT the switched VDD1p0_SW -- so the isolation cells themselves stay alive and can hold their clamp value while PD_COP is powered down.
Command
set_isolation ISO_OUTPUT -domain PD_SHUTDOWN -isolation_power_net VDDG isolation_ground_net VSS -clamp_value 0 -applies_to outputsSwitch-by-switch
-domain: the domain the strategy attaches to; -isolation_power_net /
-isolation_ground_net: the supply powering the isolation cell itself
(must remain always-on for the clamp to hold); -clamp_value {0|1|
latch}: the value forced on the output once isolated; -applies_to
{inputs|outputs|both}: which boundary ports get isolated; elements / -exclude_elements: restrict or exclude specific ports/
pins, supporting {.}; -no_isolation: explicitly declares that no
isolation is needed for the given elements.Expected Tool Behavior
create_mv_cells instantiates isolation cells on the specified ports, powered from the isolation supply and gated by the isolation_signal, ready for a real library cell mapping via map_isolation_cell.
Example
Mychip's PD_COP isolation strategy uses the always-on VDD1p0 as isolation power, later mapped to library cells O2ISO_T50 / A2ISO_T50.
Common Mistake
Powering the isolation cell from the domain's own switched supply instead of an always-on supply -- the isolation cell then loses power at exactly the moment it's needed to hold the clamp value.
Likely Error Or Warning
Every set_isolation strategy needs a matching set_isolation_control unless -no_isolation is used -- omitting it leaves the strategy without a defined control signal.
Debugging Approach
Confirm the isolation_signal referenced is a net (not a port/pin); note isolation cell insertion is purely directive-based via set_isolation and is not influenced by the power state table -- any inconsistency between the strategy and the PST is reported separately by check_mv_design.
Continue learning free
Get a practical low-power chapter
Receive the existing “Low Power and Multivoltage Fundamentals” PDF chapter and its download link by email.
Continue practising