ExpertQuestion 12 of 20Source PDF page 103

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 parent

Switch-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.

Visual explanationLow-power context: What are the advanced level-shifter placement strategies (self/parent/fanout/automatic/sibling), and how do you…
Low-power context: What are the advanced level-shifter placement strategies (self/parent/fanout/automatic/sibling), and how do you…A three-step concept map summarizes the focus, core answer, and practical verification for What are the advanced level-shifter placement strategies (self/parent/fanout/automatic/sibling), and how do you choose?Question focusWhat are the advancedlevel-shifter placementstrategies(self/parent/fanout/aut…Core answerset_level_shifter's-location optioncontrols where thelevelshifting cell…Verify in practiceset_level_shifterLS_INPUTS -domainPD_SHUTDOWN -applies_toinputs rule low_to_high…Understand → explain the mechanism → verify the assumptions

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.