IntermediateQuestion 8 of 20Source PDF page 61

How do you write a level-shifter strategy with set_level_shifter, and what do its key options control?

From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide

Explanation

set_level_shifter defines a strategy for inserting level-shifting cells wherever a signal crosses a voltage boundary, specifying which ports it applies to, the direction of voltage change it should handle, and where the shifter cell should physically sit.

Implementation Walkthrough

Typically pair two strategies for a domain, one for inputs and one for outputs: 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. Mychip mirrors this for PD_CPU with FROM_PD_CPU_LST (outputs, low_to_high, parent) and TO_PD_CPU_LST (inputs, high_to_low, self).

Command

set_level_shifter LS_INPUTS -domain_name PD_SHUTDOWN -applies_to inputs -rule low_to_high -location self

Switch-by-switch

-domain_name: the domain the strategy attaches to; -element (list): restricts which ports/pins receive shifters; -applies_to inputs| outputs|both: which boundary ports the strategy covers; threshold : minimum voltage difference required to trigger insertion, overriding the library's own threshold; -rule low_to_high|high_to_low|both: the voltage-transition direction the strategy handles; -location self|parent|fanout|automatic: placement choice; -non_shift: marks elements that should NOT get a level shifter even where a voltage difference exists.

Expected Tool Behavior

create_mv_cells inserts a level-shifter cell on each qualifying boundary port, oriented for the direction specified by -rule and sited based on -location.

Example

PD_SHUTDOWN's LS_INPUTS strategy shifts incoming low-voltage signals up as they enter the domain (self); LS_OUTPUTS shifts outgoing signals down after they leave (parent).

Common Mistake

Mismatching -rule with the actual voltage relationship between domains -- e.g. specifying low_to_high on a domain that is actually the highervoltage side -- leaving the real crossing unshifted.

Likely Error Or Warning

This topic is not covered in enough depth here to give a fully reliable answer for a set_level_shifter-specific error string; general levelshifter insertion failures surface via analyze_mv_design as MV-1108 ('Cannot insert level shifter... because the path does not have an effective level shifter strategy') or MV-1104.

Debugging Approach

Run analyze_mv_design -level_shifter [-through net_or_pin] to get a diagnostic report of domains, related supplies, and any insertion failures for a given crossing.

Visual explanationLow-power context: How do you write a level-shifter strategy with set_level_shifter, and what do…
Low-power context: How do you write a level-shifter strategy with set_level_shifter, and what do…A three-step concept map summarizes the focus, core answer, and practical verification for How do you write a level-shifter strategy with set_level_shifter, and what do its key options control?Question focusHow do you write alevel-shifter strategywith set_level_shifter,and what do…Core answerset_level_shifterdefines a strategy forinserting level-shiftingcells wherever a signal…Verify in practiceset_level_shifterLS_INPUTS -domain_namePD_SHUTDOWN -applies_toinputs -rule low_to_hig…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.