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 · pdVerse Mentor Guide
Technical Explanation
Always-on logic is needed wherever a signal must keep functioning even while the domain around it is shut down — retention registers, isolation cells, retention control paths, and isolation enable paths all fall into this category, and any save/ restore signal that has to physically pass through a shutdown voltage area needs an always-on buffer to carry it across. An always-on cell is functionally an ordinary cell (buffer/inverter) but with an added backup power supply that keeps operating continuously through shutdown. The automatic inference rule is that the tool will only perform always-on buffering/optimization if the target library actually contains always-on inverters/ buffers, and those library cells must be marked with the always_on attribute for the tool to recognize and use them.
Architecture-level Reasoning
Always-on buffering can only be inserted automatically if the tool has a real library cell to insert — so the whole mechanism is gated on library characterization: no always_on-attributed cell, no automatic always-on network.
Step-by-step Walkthrough
1) Identify signals that must cross or exist inside a shutdown domain while remaining live — retention save/restore paths, isolation control/enable paths. 2) The tool checks whether the target library has cells carrying the always_on Liberty attribute. 3) If such cells exist, the tool automatically buffers/optimizes the identified always-on paths using them. 4) If the library has none, no automatic always-on insertion can occur for those paths.
Switch-by-switch
always_on (library cell attribute): marks a cell in the library
as usable for always-on buffering — this is the flag the tool
checks before it will perform always-on optimization at all.Expected Result
Save/restore and isolation control/enable signals that must remain functional through a domain shutdown are correctly buffered using always-on cells, with the buffering sourced from the domain's always-on backup supply.
Possible Implementation Error
Targeting a library that has no cells marked always_on, expecting the tool to still automatically insert always-on buffering on a save/restore path that physically crosses a shutdown voltage area.
Likely Tool / Clp Warning
This topic is not covered in enough depth here to give a fully reliable answer regarding a specific error code for a missing always_on library cell; the behavior is simply that the optimization does not occur without a qualifying library cell.
Root Cause
Always-on optimization is entirely library-driven — the tool has no generic always-on cell to fall back on, so the presence (or absence) of the always_on attribute on a real library cell is the sole gate on whether the feature can run.
Debugging Sequence
1) Check whether the target library has any cell with the always_on attribute set. 2) If not, either select a library that provides one or manually instantiate/mark the buffering. 3) Recheck every save/restore or isolation control path that physically crosses a shutdown voltage area for correct always-on buffering after library selection. A save/restore or isolation control signal left unbuffered (or buffered by a non-always-on cell) across a shutdown voltage area is a functional failure that must be caught before signoff.
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.
Continue practising