How do you buffer an always-on net that runs through a shutdown domain?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Short Answer
Buffers placed inside a shutdown voltage area on an always-on net must stay powered when the domain is off. You use dual-rail always-on buffers whose backup power pin connects to an always-on secondary supply, never single-rail buffers on the switched rail. ICC2 does this automatically during optimization, and fix_mv_design -buffer (ICC2) and create_mv_cells -always_on (ICC2) repair buffers that are on the wrong supply.
Technical Explanation
- Always-on net: a signal such as save, restore, isolation enable or a feedthrough that must keep working while the domain it crosses is off.
- Dual-rail AO buffer: primary pins on the local rail, backup power pin on an always-on supply that stays up in shutdown.
- The tool uses the driver or load supply for the buffer; if neither is available in the domain, it marks the net dont_touch.
fix_mv_design -buffer(ICC2) converts single-rail buffers with MV violations, such as ECO buffers, to dual-rail.create_mv_cells -always_on(ICC2) legalizes existing buffers and inverters; with-level_shifterit can also fix voltage violations in the same run.- Dual-rail buffers need a nearby secondary strap, so secondary PG placement constraints decide where they may go.
- A single-rail buffer on the switched rail cuts the net when the domain powers down, so the control signal floats.
# [ICC2] icc2_shell
create_mv_cells -always_on -level_shifter
fix_mv_design -buffer -verbose
get_cells -filter is_always_on_logic==true -hierarchical
check_mv_designWhat To Check
- Every buffer or inverter on an always-on net inside a shutdown voltage area is dual-rail with its backup pin on an always-on supply.
check_mv_design(ICC2) reports no MV violations on control nets such as isolation enable and save or restore.- Dual-rail AO buffers sit within the secondary PG placement margin.
- ECO buffers added late went through
fix_mv_design -buffer(ICC2).
Command Checks & Actions
create_mv_cells -always_on -level_shifterLegalizes buffers and inverters and inserts level shifters together.
fix_mv_design -buffer -verboseConverts single-rail buffers with MV violations to dual-rail and reports the buffer trees fixed.
get_cells -filter is_always_on_logic==true -hierarchicalLists always-on buffers, inverters and tie cells on a supply other than their domain primary.
check_mv_designConfirms no MV violations remain on always-on nets.
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): All 6 buffers on the PD_COP save and ISE nets are dual-rail on VDD1p0 backup, and
check_mv_design(ICC2) is clean. - Suspicious (illustrative): Buffers are dual-rail but two sit 40 um from the nearest VDD1p0 strap, beyond the 15 um margin.
- Hard stop: A single-rail buffer powered by VDD1p0_SW on ISE inside PD_COP.
Common Mistake
The Trap: Adding an ECO buffer with a normal buffer command on an always-on net and skipping the MV fix-up.
- The new buffer is single-rail and takes the switched rail of the voltage area it lands in.
- When PD_COP powers down, the net breaks, and isolation or retention control stops working exactly when it is needed.
What The Interviewer Is Testing
- Knows which signals must stay alive through a shutdown domain.
- Understands dual-rail cell power pins.
- Uses the ICC2 fix-up and check commands after ECOs.
Follow-up Question & Model Response
"Why not route the always-on net around the shutdown domain instead?"
Candidate Model Response: Sometimes you should; it is a floorplanning trade-off you decide. A detour avoids dual-rail cells but adds wire length, delay and congestion, and for a large domain the detour can be hundreds of microns. Dual-rail buffers inside the domain keep the route short but need a secondary strap and cost more area per buffer. For short critical controls such as ISE, the direct path with AO buffers is usually better.
Practical Example
Design Scenario: (illustrative) The ISE net from U_PC in PD_MYCHIP runs 350 um across PD_COP, which runs on VDD1p0_SW (header-switched from VDD1p0), to isolation cells on the far edge. Optimization adds three buffers along the route. create_mv_cells -always_on -level_shifter (ICC2) makes them dual-rail, backup pin on VDD1p0, placed within 15 um of the M9 VDD1p0 straps. A late ECO adds a fourth buffer as single-rail on VDD1p0_SW; check_mv_design (ICC2) flags it, and fix_mv_design -buffer (ICC2) swaps it to dual-rail.
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.

Continue practising