What are the advanced level-shifter placement strategies (self/parent/fanout/automatic/sibling), and how do you choose?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Technical Explanation
set_level_shifter's -location option controls where the levelshifting cell physically sits relative to the domain boundary it's shifting. -location self places it inside the domain being shifted; -location parent places it in the parent domain; location fanout places a shifter at every sink fanout domain individually (useful when different fanout branches have heterogeneous supplies); and -location automatic lets the tool choose. UPF also adds -location sibling to this set for placement in a sibling domain, alongside an expanded location vocabulary (automatic, self, fanout, fanin, faninout, parent, sibling).
Architecture-level Reasoning
Where you put the level shifter changes which domain's voltage the shifting logic operates at and how many copies are needed — fanout placement trades extra cell count for correctly handling heterogeneous downstream supplies, while self/parent placement is a one-shifter-per-crossing choice suited to a single, uniform downstream domain.
Step-by-step Walkthrough
1) For a simple single-crossing boundary, choose -location self (inside the domain being shifted) or -location parent (inside the parent) depending on which side should host the shifting logic — the diagram below shows both placements for the same 1.0V/1.1V boundary. 2) Where the driving signal fans out to multiple downstream domains with different supplies, use -location fanout so a shifter is placed at each sink fanout domain individually. 3) Where the tool should decide based on the actual topology, use -location automatic. 4) Where the correct placement is in a domain that is neither ancestor nor descendant but a sibling in the hierarchy, use the -location sibling option.
Command
set_level_shifter LS_INPUTS -domain PD_SHUTDOWN -applies_to inputs rule low_to_high -location self
set_level_shifter LS_OUTPUTS -domain PD_SHUTDOWN -applies_to outputs
-rule high_to_low -location parentSwitch-by-switch
-location self: shifter placed inside the domain being shifted. location parent: shifter placed in the parent domain. -location
fanout: shifter placed at all sink fanout domains individually
(requires one of -source/-sink/-diff_supply_only, and cannot be
combined with -isolation_power_net-style constant power net
argument). -location automatic: tool chooses placement. -location
sibling: placement in a sibling domain. -applies_to inputs|
outputs: which side of the domain boundary the strategy governs.
-rule low_to_high|high_to_low|both: the voltage-direction the
strategy applies to.Expected Result
Level shifters correctly placed to minimize cell count while still handling every voltage-direction crossing, including heterogeneous fanout cases where fanout placement is genuinely required.
Possible Implementation Error
Using -location fanout together with -isolation_power_net, which is not permitted with fanout placement (fine with parent/self) — or using -location fanout without any of -source/-sink/diff_supply_only, which fanout placement requires.
Likely Tool / Clp Warning
No specific tool error code for the fanout/-isolation_power_net conflict exists; the rule is a direct usage restriction.
Root Cause
-location fanout's placement logic depends on the source/sink supply-set filtering machinery, so it structurally requires one of -source/-sink/-diff_supply_only and is incompatible with a directly specified isolation power net.
Debugging Sequence
1) Check every set_level_shifter using -location fanout for the presence of -source, -sink, or -diff_supply_only. 2) Confirm isolation_power_net is not also specified on a fanout-location strategy. 3) If derived_iso_strategy is set anywhere, verify it was set before -elements+source/sink/diff_supply_only, since fanout becomes the only valid location once that attribute is set. An invalid fanout-location strategy is a UPF authoring error that blocks correct level-shifter insertion and must be fixed before implementation.
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