What happens if a retention strategy is given the wrong retention supply, and what UPF mechanism helps prevent this?
From PDVerse Low-Power Physical Design Mentor Guide, part of the pdVerse Mentor Guide
Short Answer
If -retention_supply (UPF) points at a switched supply such as VDD1p0_SW, the shadow latches die with the domain and every retained value is lost at shutdown. Nothing fails until wake-up, when restore loads garbage. UPF helps in two ways: in implementation a missing retention supply is an error, and in simulation the default RET_SUP_COR semantics corrupt the register whenever its retention supply is off, so the bug shows up as X.
Technical Explanation
- Rule: the retention supply must stay on in every state where the primary is off; in MYCHIP that is SS_AON on VDD1p0.
- Wrong supply: with VDD1p0_SW as the retention supply, the shadow latch loses power with the logic, so the value it saved disappears.
- Simulation: RET_SUP_COR, the 1801-2015 default for
-parametersonset_retention(UPF), corrupts the register when its retention supply is corrupt. - Setting NO_RET_SUP_COR to hide the X removes exactly the symptom that exposes this bug.
- Static: confirm the supply behind SS_AON with
report_supply_sets(ICC2), then runcheck_lp -stage upf(VCLP) and read every retention tag. - Implementation: 1801-2015 makes a missing retention supply an error, so always write it explicitly.
- Legacy form (still accepted by ICC2/PT):
-retention_power_net VDD1p0 -retention_ground_net VSS(UPF) onset_retention(UPF).
# [UPF] mychip.upf
set_retention RET_COP -domain PD_COP -retention_supply SS_AON -save_signal {save high} -restore_signal {restore high} -parameters {RET_SUP_COR}
# [ICC2] icc2_shell
report_supply_sets
report_mv_cells -retention -verbose
# [VC LP] vc_static_shell
check_lp -stage upf
report_violations -app LPWhat To Check
-retention_supply(UPF) names SS_AON, whose power is VDD1p0.- In every power state with PD_COP off, SS_AON is on.
- Every inserted retention cell has its backup pin on VDD1p0.
- Simulation keeps RET_SUP_COR, so a dead retention supply shows as X.
Command Checks & Actions
set_retention RET_COP -domain PD_COP -retention_supply SS_AON -save_signal {save high} -restore_signal {restore high} -parameters {RET_SUP_COR}Puts the shadow latches on the always-on set and keeps corruption semantics on
report_supply_setsShows the nets behind SS_AON and SS_COP
report_mv_cells -retention -verboseShows inserted retention cells and their supplies
check_lp -stage upfStatic check of the retention strategy against the power intent
report_violations -app LPLists the resulting low-power violations
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative):
report_mv_cells -retention(ICC2) shows all 2,400 retention cells with backup pins on VDD1p0. - Suspicious (illustrative): Retention cells map correctly, but SS_AON has been updated elsewhere to a net that turns off in one test mode.
- Hard stop: RET_COP names SS_COP, whose power is VDD1p0_SW, so every retained value is lost at shutdown.
Common Mistake
The Trap: Writing -retention_supply PD_COP.primary (UPF) because the strategy belongs to PD_COP.
- PD_COP.primary is VDD1p0_SW, the rail being switched off, so the shadow latch dies with the logic it was meant to save.
What The Interviewer Is Testing
- Whether you know the retention supply must be on whenever the primary is off.
- Whether you know how simulation semantics and static checks expose a wrong supply.
Follow-up Question & Model Response
"Why can a wrong retention supply pass RTL simulation?"
Candidate Model Response: If the testbench never actually powers PD_COP down, the retention path is never exercised. Some teams also set NO_RET_SUP_COR, which stops corruption when the retention supply goes off. Either way the saved values look fine. A power-aware test that saves, powers off, powers on and restores with the default RET_SUP_COR exposes it at once.
Practical Example
Design Scenario: (illustrative) RET_COP was written with -retention_supply SS_COP, whose power is VDD1p0_SW. In power-aware simulation save rises at 100 ns, PSE falls at 200 ns, and the retention registers go X as VDD1p0_SW decays. After restore at 1.5 ยตs they still hold X, and the first instruction after wake-up reads garbage. Changing the supply to SS_AON on VDD1p0 fixes it.
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