ExpertQuestion 13 of 50

How is an always-on control network constructed, and what is the automatic inference rule for always-on cells?

From PDVerse Low-Power Physical Design Mentor Guide, part of the pdVerse Mentor Guide

Short Answer

Always-on logic is whatever must keep working inside a shutdown domain: retention cells, isolation cells, and the save, restore and isolation-enable paths that reach them. ICC2 builds it automatically, but only if the target library has always-on buffers and inverters marked with the always_on attribute. It then marks as always-on logic any buffer, inverter or tie cell whose supply differs from the primary supply of the domain it sits in.

Technical Reference DiagramHow is an always-on control network constructed, and what is the automatic inference rule for always-on cells?

Technical Explanation

  • What must stay on: control nets from an always-on domain into a shutdown domain, such as SRE and ISE, plus feedthroughs across a shutdown area.
  • Library gate: always-on optimization runs only when the target library has always-on buffers and inverters marked always_on.
  • Supply choice: an inserted buffer takes the driver or load supply; its backup pin may use a local bias supply that is at least as on.
  • If neither the driver nor the load supply is available in a feedthrough domain, the tool marks the net dont_touch instead of buffering it.
  • Inference rule: is_always_on_logic is true for any buffer, inverter or tie cell whose supply differs from its domain primary.
  • RTL buffers: mv.upf.ao_legalize_gtech_buf (ICC2) makes preinstantiated GTECH buffers dual-rail where needed; create_mv_cells -always_on (ICC2) covers all buffers and inverters.
  • What breaks: a single-rail buffer on SRE inside PD_COP dies at shutdown, so the restore pulse never reaches the retention flops.
# [ICC2]  icc2_shell
report_mv_lib_cells -always_on -verbose
create_mv_cells -always_on -level_shifter
get_cells -hierarchical -filter is_always_on_logic==true
check_mv_design

What To Check

  • The target library has always-on buffers and inverters with the always_on attribute.
  • Every buffer on SRE, ISE and PSE inside PD_COP is dual-rail with its backup pin on VDD1p0.
  • Feedthrough nets across VA_COP are buffered, or left dont_touch on purpose.
  • The MV-055 conversion count matches the buffers you expected.

Command Checks & Actions

ICC2 (icc2_shell)report_mv_lib_cells -always_on -verbose

Lists the always-on buffers, inverters and tie cells the libraries provide

ICC2 (icc2_shell)create_mv_cells -always_on -level_shifter

Legalizes buffers and inverters as always-on together with shifter insertion

ICC2 (icc2_shell)get_cells -hierarchical -filter is_always_on_logic==true

Lists every cell the tool treats as always-on logic

ICC2 (icc2_shell)check_mv_design

Reports always-on paths still driven by cells on a switched supply

Healthy, Suspicious & Hard-stop Results

  • Healthy (illustrative): MV-055 reports 2 GTECH buffers converted from single-rail to dual-rail, matching the two on SRE.
  • Suspicious (illustrative): A feedthrough net across VA_COP is dont_touch because neither the driver nor the load supply is available there.
  • Hard stop: A single-rail buffer powered by VDD1p0_SW sits on SRE inside PD_COP.

Common Mistake

The Trap: Hand-instantiating a plain buffer on the SRE path in RTL and marking it dont_touch.

  • AO legalization will not touch it, so it loses power with PD_COP and restore never reaches the retention flops.

What The Interviewer Is Testing

  • Whether you know what makes logic always-on and that the library gates it.
  • Whether you can confirm AO results with cell attributes and MV-055 messages.

Follow-up Question & Model Response

"Why does ICC2 sometimes put a regular buffer on an always-on feedthrough net?"

Candidate Model Response: Regular buffers cost less area and congestion than dual-rail ones. By default ICC2 uses one when the primary supply of the feedthrough area is more on than the sink supply and is off only when the source supply is off. Then the buffer is never off while the signal matters. Otherwise it needs an always-on buffer.

Practical Example

Design Scenario: (illustrative) SRE runs 500 ยตm from U_PC in PD_MYCHIP across VA_COP to retention flops in PD_COP, through two RTL GTECH buffers. With mv.upf.ao_legalize_gtech_buf (ICC2) true, create_mv_cells (ICC2) converts both to dual-rail AO_BUF_X2 cells with backup pins on VDD1p0, and MV-055 reports 2 conversions. The is_always_on_logic query then returns both cells, and the restore pulse reaches every retention flop in PD_COP after wake-up. AO_BUF_X2 is an illustrative name.

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.