How does a power switch's control and acknowledgment signal pair work?
From PDVerse Low-Power Physical Design Mentor Guide, part of the pdVerse Mentor Guide
Short Answer
The controller drives the switch control input, and the switch chain returns an acknowledge once its last cell has turned on. The ack tells the controller the virtual rail is really up, so restore and isolation release happen only after it arrives. In UPF you declare the pair with -control_port and -ack_port on create_power_switch (UPF).
Technical Explanation
- Control in: U_PC drives PSE into the first switch cell, and each cell passes the enable to the next through its buffered output.
- Ack out: the enable leaving the last cell becomes PSE_ACK, so it arrives only after every cell has turned on.
- Why wait: VDD1p0_SW ramps over the chain delay. Restoring or releasing isolation earlier reads a rail that is still rising.
- UPF model:
-ack_port(UPF) names the ack net, and-ack_delay(UPF) sets how long after turn-on it changes in simulation. - IEEE 1801-2015 makes an ack port an error unless the switch has a
-supply_set(UPF) to power its control logic. - Physical:
connect_power_switch -mode daisy(ICC2) chains the placed cells from-sourceand wires the chain end to-ack_out. - What breaks: a controller running on a fixed timer, not the ack, releases isolation into a half-powered domain at the slow corner.
# [UPF] mychip.upf
create_power_switch COP_SW -domain PD_COP -supply_set SS_AON -input_supply_port {in VDD1p0} -output_supply_port {out VDD1p0_SW} -control_port {ctrl PSE} -ack_port {ack PSE_ACK} -ack_delay {ack 260ns} -on_state {ON in {ctrl}}
# [ICC2] icc2_shell
connect_power_switch -source PSE -port_name pse_chain -mode daisy -ack_out PSE_ACK -ack_port_name pse_ack -voltage_area VA_COP
check_mv_designWhat To Check
- The ack comes from the end of the chain, not from the first cell or the raw PSE net.
- U_PC waits for PSE_ACK before it restores and before it drops ISE.
- PSE and PSE_ACK are buffered with always-on cells where they cross the switched area.
- The ack polarity in UPF matches the library cell and the controller logic.
Command Checks & Actions
create_power_switch COP_SW -domain PD_COP -supply_set SS_AON -control_port {ctrl PSE} -ack_port {ack PSE_ACK} -ack_delay {ack 260ns}Declares the control and ack pair and the modeled ack delay
connect_power_switch -source PSE -port_name pse_chain -mode daisy -ack_out PSE_ACK -ack_port_name pse_ack -voltage_area VA_COPDaisy-chains the placed switch cells and wires the chain end to PSE_ACK
check_mv_designReports switch control and supply connection problems
check_lp -stage pgChecks switch control and ack connectivity on a PG netlist; skip it if the netlist has no PG connections
report_violations -app LPLists the low-power violations, such as PSW_ACK_UNDRIVEN
Healthy, Suspicious & Hard-stop Results
- Healthy (illustrative): In simulation PSE_ACK rises 260 ns after PSE, the modeled slow-corner chain delay, and SRE fires only after it.
- Suspicious (illustrative): PSE_ACK is taken from an early cell, so it rises while most of the chain is still off.
- Hard stop: U_PC drops ISE on a 200 ns timer while the slow-corner chain needs 260 ns.
Common Mistake
The Trap: Tapping the ack from the start of the daisy chain to save routing.
- The controller sees ack almost at once, restores and releases isolation while VDD1p0_SW is still ramping, and the first cycles run on a weak rail.
What The Interviewer Is Testing
- Whether you know the ack closes the handshake and why the controller must wait for it.
- Whether you can tie the UPF ack model to the physical daisy chain.
Follow-up Question & Model Response
"Why not wait a fixed number of cycles instead of using an ack?"
Candidate Model Response: The chain delay changes with process, voltage, temperature and the number of switch cells. A timer sized for the typical corner is too short at the slow corner, and one sized for the worst case wastes wake-up time everywhere else. The ack measures the real chain on this die at this moment. Many designs keep a timer only as a watchdog in case the ack never arrives.
Practical Example
Design Scenario: (illustrative) PD_COP has 440 HEADER_X4 switches (an illustrative cell name) daisy-chained inside VA_COP. U_PC raises PSE at t = 0, and PSE_ACK rises at about 180 ns at the typical corner and 260 ns at the slow corner. U_PC waits for PSE_ACK, restores with SRE, then drops ISE. A fixed 200 ns timer would release isolation 60 ns early at the slow corner.
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