What is retention supply architecture, and what does -retention_supply_net / -use_retention_as_primary control?
From PDVerse Low-Power Physical Design Mentor Guide · pdVerse Mentor Guide
Technical Explanation
A retention strategy is declared with set_retention -domain retention_power_net -retention_ground_net -elements, naming the always-on rail that backs up the listed state elements. UPF also provides a dedicated third net, -retention_supply_net, which lets you separate the retention backup supply out as its own distinct net rather than reusing the domain's primary or the isolation net; and -use_retention_as_primary, which flips this around and lets the retention supply itself be designated as the domain's primary supply.
Architecture-level Reasoning
Some retention register architectures (particularly the zero-pin/ balloon-latch style) genuinely need a physically distinct backup rail that is neither the domain's normal primary supply nor shared with isolation, and -retention_supply_net exists to model that third, separate rail explicitly rather than overloading retention_power_net.
Step-by-step Walkthrough
1) Base retention strategy: set_retention -domain retention_power_net retention_ground_net [-elements {...}]. 2) Pair it with set_retention_control -domain -save_signal {sig high|low} restore_signal {sig high|low}. 3) Where the retention supply needs to be modeled as a distinct third rail, add retention_supply_net in place of/alongside the power/ground net pair. 4) Where the retention rail should double as the domain's own primary supply, set -use_retention_as_primary.
Command
set_retention UP_RET_POLICY -domain PD_UP -retention_power_net VDDG
-retention_ground_net VSS
set_retention_control UP_RET_POLICY -domain PD_UP -save_signal {NSAV
low} -restore_signal {RETN high}Switch-by-switch
-retention_power_net / -retention_ground_net: the backup power/
ground nets used by the retention elements. retention_supply_net: a dedicated third retention supply net,
distinct from the power/ground net pair. use_retention_as_primary: designates the retention supply as the
domain's primary supply as well. -save_signal / -restore_signal
(in set_retention_control): must reference nets, not ports or
pins, and each carries its active sense ({sig high} or {sig
low}).Expected Result
Retention elements correctly backed by a well-defined, always-on retention supply, whether modeled as the existing power/ground pair, a dedicated third net, or promoted to be the domain's primary supply.
Possible Implementation Error
Declaring -save_signal or -restore_signal against a port or pin instead of a net, which is not allowed for these arguments.
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 port/pin used where a net is required; the rule is a direct requirement of the retention-control command.
Root Cause
set_retention_control's save/restore signal arguments are defined to accept only net objects — a port or pin reference does not satisfy the command's object-type requirement.
Debugging Sequence
1) Check the save_signal/restore_signal arguments in every set_retention_control call. 2) Confirm each references a net object, not a port or pin. 3) If a port/pin was used, trace back to the net it's connected to and substitute that net name. An invalid save/restore signal reference is a UPF authoring error that must be fixed before the retention strategy can be processed at all. Figure 1.7 — A retention flip-flop: the primary flip-flop is joined by a save-latch on a backup supply (VDDG); SAVE and NRESTORE, driven through always-on cells, move data into and out of the latch
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