Skip to content
DenseChip
Learn
PracticeCode labInterview

DenseChip

Navigate

Menu

LearnPracticeCode labInterview

Tools

All toolsSV editorCode repoResume
DenseChip

Practice, courses, and chip-design tools in one focused workspace.

LearnPracticeCode labInterviewToolsLearning paths

© 2026 DenseChip

AboutContactPrivacyTerms
Skip to lesson

Course contents

  • RTL Foundations36
  • Combinational Design25
  • Sequential Design27
  • FSM & Control27
  • Timing & Clocking39
  • Reset & CDC34
  • Memory & Buses57
  • Advanced RTL28
  • Senior & Interview76
    • Low-Power RTL Hub
    • DFT and Scan Hub
    • Physical Awareness Hub
    • Waveform Debug Hub
    • STA and ECO Hub
    • RTL-to-Implementation Closure
    • DFT-Ready RTL
    • Capstone: Resilient Streaming Peripheral
    • Principal Design Review
    • Senior RTL Interview Questions & Model Answers
      • Interview: Combinational and Arithmetic
      • Interview: Sequential and Pipelines
      • Interview: FSM and Control
      • Interview: Timing and STA
      • Interview: CDC and Reset
      • Interview: Memories and Buses
      • Interview: Low-Power Design
        • Dynamic power first
        • Clock gating done safely
        • Crossing a powered-off domain
        • The RTL and UPF split
      • Interview: Debug and ECO
      • Interview: Coding and Whiteboard
  • Glossary and Notation
Loading lesson

‹Interview: Low-Power Design
  1. Topics
  2. RTL Design
  3. Senior & Interview
  4. Senior RTL Interview Questions & Model Answers
  5. Interview: Low-Power Design
  6. Crossing a powered-off domain

Part 9 · Senior · Senior

Crossing a powered-off domain

Signals crossing from a powered-off domain, with an isolation clamp and testbench.

On this page

    Why this matters

    Outputs of a powered-off block float or go unknown, and that value fans into live control logic. The failure appears far from its cause, often as a stuck transaction, which is why interviewers ask about shutdown order.

    After this lesson you can: describe the shutdown and wake sequences, where isolation is released, and why a plain RTL mux is not isolation.

    The question

    The interviewer powers off a block and asks what happens to the signals it drives into always-on logic. It is testing isolation, sequencing, and the restore order.

    Complex SoCs split logic into power domains so always-on logic survives while optional domains power down. Every signal leaving a switchable domain needs a defined value while that domain is off.

    Model answer

    Clamp outputs of the off domain before they reach live logic. Clamp to the safe idle value, usually 0, so no floating net or unknown propagates into the controller.

    Direction

    Treatment

    Reason

    OFF drives ON

    Clamp to a fixed value while off

    Blocks unknowns from reaching control logic

    ON drives OFF

    Review powered-off input tolerance, isolation and level shifting

    Live drivers may back-power or overstress an unpowered receiver; permission depends on cells/supplies/topology

    State to keep

    Retain or restore explicitly

    Separate retained state from state rebuilt after wake

    Sequence matters on both ends. Quiesce and account for accepted work before shutdown. In the canonical always-on controller, external context capture happens before isolating its capture path, then power-off is permitted. Internal retention may have a different save/isolation order. Both must finish save before supply collapse. On wake keep isolation asserted through qualified power-good, restore completion, safe reset release and clock/domain readiness; release isolation before traffic resumes.

    Retention covers state that must survive collapse, such as context pointers and protocol epochs. Mark retained and reconstructable state early in the architecture.

    Common pitfall

    Power-good alone does not mean initialized state is safe to expose. Status inputs must be synchronized into the AON domain; restore_done and domain_ready belong to the current wake epoch. Domain readiness includes the applicable reset and clock checks. Brownout handling and electrical margin remain separate implementation obligations.

    Six states in a cycle: ON with isolation 0, SAVE with isolation 0, OFF, POWERUP, RESTORE and WAIT_READY with isolation 1. WAIT_READY returns to ON only when power_good, restore_done and domain_ready are all 1.
    The always-on controller's power cycle. Isolation is 1 from OFF until WAIT_READY leaves for ON, and that exit needs all three statuses.

    Follow the arrows from ON. The iso value in each state is the isolation enable while the controller sits there.

    • Isolation goes to 1 before power goes off and stays 1 through four states on the way back.

    • The only exit to ON is from WAIT_READY, and it needs all three statuses, not power_good alone.

    • The table below adds the delayed-acknowledgement rows: WAIT_READY can sit with restore_done = 1 and domain_ready = 0.

    Canonical AON phase / illustrative delayed acknowledgement

    Isolation

    Required action / observation

    ON -> SAVE

    0

    Already quiesced; capture external context in the live capture path

    OFF

    1

    Permit power-off only after save; no traffic

    POWERUP, power-good=0

    1

    Remove off request; wait, do not restore or expose outputs

    RESTORE, qualified power-good=1

    1

    One restore pulse, then WAIT_READY

    WAIT_READY, restore_done=1, domain_ready=0

    1

    Keep clamp while reset/clock readiness is incomplete

    WAIT_READY, all three statuses=1

    1 until next state edge

    Controller enters ON; isolation releases

    ON

    0

    Resume traffic after the boundary is released

    Temporal checker contract: from OFF until the qualified WAIT_READY-to-ON edge, require isolation=1 and traffic admission=0. In WAIT_READY require power_good && restore_done && domain_ready before transition to ON; count one restore pulse per wake. A bounded watchdog may report a stuck status, but must keep isolation asserted. These are digital sequencing obligations; the linked controller assumes stable power-good and fresh held acknowledgements, not arbitrary brownouts.

    Follow-ups

    • Clamp to 0, 1, or hold last value? Clamp to the value the receiver treats as idle, usually 0. Holding the last value needs a state element in the live domain and a reason for it.

    • Who generates the isolation enable? The always-on controller, sequenced with the power switch. RTL provides the boundary intent and the handshake; the tools insert the cells.

    • What breaks without isolation? Unknowns fan into live control logic and corrupt state machines. The failure shows up far from its cause, often as a dangling transaction.

    Common wrong answers

    • A plain RTL mux as the isolation. A mux sits in whatever power domain its hierarchy belongs to, so inside the switchable domain it powers off with the source. Tools do not recognise it as an isolation strategy, so power-aware checks report missing isolation and UPF may add a second clamp. Ordinary cells are also not characterised for a floating input.

    • Assuming ON-to-OFF is electrically safe. Review both directions against library power-off tolerance and supplies. Level conversion alone does not prove protection or prevent back-powering;

    • Switching off a live interface. Powering down mid-transaction strands the protocol. Quiesce first, then switch.

    Interview

    Shutdown: quiesce, save with the capture topology respected, isolate, power off. Wake: qualified power, restore, reset/clock readiness, release isolation, then traffic.

    Check yourself Isolation is released in the same cycle the switchable domain powers up, and live logic samples garbage. Which step was skipped?

    Isolation must remain through qualified power-good, restoration and domain readiness including safe reset release and usable clocks. Then release it before restarting traffic.

    Testbench

    A logical clamp model and tests for pass-through and both clamp values with unknown inputs. iso_clamp is a simulation stand-in for the UPF-inserted cell; in a real flow the clamp comes from set_isolation, not from RTL. Use the linked controller bench for delayed restore and readiness sequencing, and power-aware and physical checks for implementation.

    iso_clamp.sv
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    `timescale 1ns/1ps
    module iso_clamp (
      input  logic data_i,      // from the switchable domain
      input  logic iso_en,      // 1 while that domain is off
      input  logic clamp_val,   // the safe idle value for this signal
      output logic data_o
    );
      always_comb begin
        if (iso_en) data_o = clamp_val;
        else data_o = data_i;
      end
    endmodule
    

    Remember

    • Clamp the off domain's outputs to the receiver's idle value, usually 0, before they reach live logic.

    • Shutdown: quiesce, save, isolate, power off. Wake: qualified power, restore, safe reset release, then release isolation.

    • Power-good alone does not make a domain safe. Restore and readiness belong to the current wake epoch.

    Rule of thumb: isolation goes on before power goes off, and comes off only after the domain is ready.

    How this was checked

    Clamp bench Run with Icarus Verilog 13.0 (2026-10-16): prints PASS. It checks pass-through and both clamp values with unknown inputs. iso_clamp is a simulation stand-in for the UPF-inserted cell. The final release is a mux-selection check only and does not exercise the AON sequence, electrical power-off behaviour or retention.

    Keep going

    • Practice: Isolation cells and a boundary wrapper: clamp logic and power-good

    • Code lab: Isolation cell model

    • Interview: run a mock interview on this topic

    Previous

    339 / 350

    Next: The RTL and UPF split

    Up next

    Up nextThe RTL and UPF split

    Sign in to save progress

    Practice this lessonReport an error

    See also

    • Dynamic power first