How do you decide between placing a level shifter in "self" vs "parent" location?
From PDVerse Low-Power Physical Design Mentor Guide, part of the pdVerse Mentor Guide
Short Answer
Pick the side where the shifter can get both supplies cheaply: its row rail gives one supply and a secondary pin must reach the other. Self puts the cell inside the domain whose port is shifted; parent puts it in the surrounding domain. For MYCHIP, up-shifters on PD_CPU outputs usually sit in the parent, and down-shifters on PD_CPU inputs sit in self.
Technical Explanation
- Self: the cell sits in the shifted domain, here PD_CPU, on its VDD0p9 row rail.
- Parent: the cell sits in the parent domain, here PD_MYCHIP, on its VDD1p0 row rail. It is an error on a top-module port.
- Supply rule: ICC2 says you must make the needed supplies available at the location you choose.
- Which pin is secondary depends on the library cell. Check it with
report_mv_lib_cells(ICC2) before choosing. - Down-shifters are often single-rail cells powered from the output side, so self in PD_CPU needs no extra strap. Confirm this for your library.
- Routing: with parent, the unshifted 0.9 V net crosses the boundary, and many sinks can share one shifter at the port.
- Secondary straps need
create_secondary_pg_placement_constraints(ICC2) so dual-rail shifters land only where the strap exists.
# [UPF] mychip.upf
set_level_shifter FROM_PD_CPU_LST -domain PD_CPU -applies_to outputs -rule low_to_high -location parent
set_level_shifter TO_PD_CPU_LST -domain PD_CPU -applies_to inputs -rule high_to_low -location self
# [ICC2] icc2_shell
report_mv_lib_cells -verbose
create_mv_cells
check_mv_designWhat To Check
- For each shifter cell, you know which supply comes from the row and which from a secondary pin.
- That secondary supply has a strap in the host voltage area.
- Up-shifters on outputs do not sit in a domain that switches off while the receiver is on.
- The strategy fixes -location when written, because ICC2 will not accept it with -update.
Command Checks & Actions
set_level_shifter TO_PD_CPU_LST -domain PD_CPU -applies_to inputs -rule high_to_low -location selfPlace down-shifters inside PD_CPU
report_mv_lib_cells -verboseShow each shifter cell PG pins and their types
create_mv_cellsInsert shifters at the chosen locations
check_mv_designReport shifters with an unavailable or unconnected supply
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): Up-shifters sit in PD_MYCHIP rows within reach of the VDD0p9 strap, down-shifters in PD_CPU rows, and
check_mv_designis clean. - Suspicious (illustrative): Dual-rail shifters placed far from any strap of their secondary supply, which will need long PG routes.
- Hard stop: A shifter whose second supply is not available in its host domain, or -location parent on a top-module port.
Common Mistake
The Trap: Choosing -location parent for PD_CPU outputs without making VDD0p9 available in the PD_MYCHIP voltage area near the boundary.
- The dual-rail up-shifters have no input-side supply to connect, so insertion fails or leaves secondary pins unrouted.
What The Interviewer Is Testing
- Do you think about the rails a cell needs, not just the logical side of the boundary?
- Do you check the library cell before picking a location?
Follow-up Question & Model Response
"What changes if PD_CPU could shut down?"
Candidate Model Response: Then its outputs also need isolation, and the usual answer is an enable level shifter placed in the always-on parent. A shifter left in self would sit on a rail that disappears, exactly when its output must hold a safe value. The parent also keeps the always-on control and supply out of the switched area. PD_CPU in MYCHIP never switches, so plain shifters are enough there.
Practical Example
Design Scenario: (illustrative; LS_LH_X1 and LS_HL_X1 are illustrative cell names) PD_CPU at 0.9 V sends 64 outputs to PD_MYCHIP at 1.0 V and receives 40 inputs. The 64 LS_LH_X1 up-shifters sit in PD_MYCHIP, fed by a VDD0p9 strap placed just outside the PD_CPU edge. The 40 LS_HL_X1 down-shifters are single-rail on VDD0p9, so they sit inside PD_CPU with no extra strap.
Low-Power & UPF Handbook
Master Low-Power VLSI & Multivoltage Design
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.

Continue practising