ExpertQuestion 12 of 50

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, part of the pdVerse Mentor Guide

Short Answer

The ICC2 MV UG documents automatic, self, parent and other as -location values for set_level_shifter (UPF), and IEEE 1801-2015 also lists fanout; there is no sibling value in either. -rule and -threshold decide which crossings a strategy covers, and when strategies overlap ICC2 ranks -elements (port over instance over domain) first, then -no_shift, then -source or -sink, then the rest. Choose the location where both supplies are available and the fanout stays cheap.

Technical Reference DiagramWhat are the advanced level-shifter placement strategies (self/parent/fanout/automatic/sibling), and how do you choose?

Technical Explanation

  • automatic: the tool chooses. The ICC2 MV UG calls it the default, while IEEE 1801-2015 names self as the standard default.
  • self: inside the model or cell being shifted. parent: in the parent of that cell.
  • other: in the parent domain for an upper-boundary port, or the child domain for a lower-boundary port.
  • fanout (IEEE 1801-2015): at the sinks, which suits receivers at different voltages; the ICC2 GUI draws a location-fanout symbol for it.
  • Filters: -rule low_to_high|high_to_low|both and -threshold (UPF). A threshold of 0 means any voltage difference needs a shifter.
  • Precedence (same domain): -elements, then -no_shift, then -source or -sink, then everything else; -applies_to has no effect.
  • What breaks: if the chosen location lacks the input or output supply, the tool inserts no shifter and the crossing stays unfixed.
# [UPF]  mychip.upf
set_level_shifter LS_DSP_OUT -domain PD_DSP -applies_to outputs -rule both -threshold 0.05 -location self
set_level_shifter LS_IRQ -domain PD_DSP -elements {U_DSP/irq} -rule both -location parent
set_level_shifter LS_CPU_IN -domain PD_CPU -applies_to inputs -rule high_to_low -no_shift
# [ICC2]  icc2_shell
create_mv_cells -level_shifter
analyze_mv_design -level_shifter -through U_DSP/irq

What To Check

  • The domain at each location has both the input and the output supply available.
  • -rule and -threshold match the library: low-to-high always shifted, high-to-low only where the library needs it.
  • No two strategies tie on the same port.
  • A net whose receivers sit at different voltages gets one shifter per voltage.

Command Checks & Actions

UPF (design.upf)set_level_shifter LS_IRQ -domain PD_DSP -elements {U_DSP/irq} -rule both -location parent

Places the irq shifter in the parent domain and outranks the domain-wide strategy

ICC2 (icc2_shell)create_mv_cells -level_shifter

Inserts level shifters from the resolved strategies

ICC2 (icc2_shell)analyze_mv_design -level_shifter -through U_DSP/irq

Explains why a shifter was or was not inserted on that path

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): After create_mv_cells (ICC2), every PD_DSP output into 1.0 V logic has a shifter in PD_DSP, and irq has one in PD_MYCHIP.
  • Suspicious (illustrative): analyze_mv_design -level_shifter (ICC2) on U_DSP/irq says the input supply VDDdsp is not available in the parent domain.
  • Hard stop: A low-to-high crossing has no shifter because a -no_shift (UPF) strategy outranked the one meant to cover it.

Common Mistake

The Trap: Putting -no_shift (UPF) on all inputs of a domain to silence high-to-low messages.

  • It outranks every -source, -sink and plain strategy on those ports, so a low-to-high crossing in another mode loses its shifter too.

What The Interviewer Is Testing

  • Whether you know the real -location values and that sibling is not one of them.
  • Whether you can apply the level-shifter precedence order to a real conflict.

Follow-up Question & Model Response

"What does ICC2 do when one boundary pin feeds receivers at two different voltages?"

Candidate Model Response: ICC2 can insert one shifter before the boundary pin and more than one after it. In the ICC2 MV UG example a VDD1 net feeds loads on VDD2 and VDD3, and each branch gets its own shifter. That heterogeneous fanout is the case the fanout location is meant for. Each shifter still needs its supplies available where it lands.

Practical Example

Design Scenario: (illustrative) U_DSP/irq leaves PD_DSP, where VDDdsp is 0.9 V or 1.1 V, and enters PD_MYCHIP at 1.0 V. With -rule both and -threshold 0.05, the 0.1 V difference needs a shifter in both DSP modes, in opposite directions. LS_IRQ with -location parent puts the cell in PD_MYCHIP, so VDDdsp must be available there as its input supply. LS_DUAL_X1 is an illustrative cell name for a shifter that covers both directions.

Low-Power & UPF Handbook

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.

See what's inside the bundle
Low-Power VLSI & UPF Handbook โ€” nine chaptersLow-Power & UPFDomains, isolation, retention, and multivoltage UPF.