DigiFlop

Don't just cut the clock — ask first, and wait for a yes.

VLSI Concept · RTL
Q-Channel Protocol (Low-Power Clock Gating Handshake)
Don't just cut the clock — ask first, and wait for a yes.

Q-Channel is a standardized 4-signal handshake (part of Arm's AMBA Low-Power Interface family, alongside the related P-Channel for power gating) that lets a system-level power controller safely request that an IP block's clock be gated, instead of the controller just yanking the clock and hoping nothing was mid-transaction.

The IP block gets a say: it can accept immediately, ask the controller to wait, or actively refuse — and it can also spontaneously demand its clock back if it wakes itself up (an interrupt, a new request arriving) before the controller asks it to. Without a protocol like this, clock gating is a race condition waiting to happen.

QACTIVE (IP → controller)Asserted whenever the IP has work to do and needs its clock running. The controller should never even attempt to request quiescence while QACTIVE is high.
QREQn (controller → IP)Driven low by the power controller to request that the IP move to a quiescent (clock-gateable) state. In the real spec this is active-low, hence the "n".
QACCEPTn (IP → controller)Driven low by the IP once it has reached a safe, quiescent point — this is the green light for the controller to actually gate the clock. It stays low for as long as the clock remains gated.
QDENY (IP → controller)Asserted by the IP when it cannot honor a quiescence request right now (e.g. mid-transaction) — the controller must back off and retry later instead of forcing the clock off.
Handshake sequenceRUN → controller drops QREQn → IP is idle: asserts QACCEPTn (clock may gate) · IP is busy: asserts QDENY (try again) → once accepted, IP stays in STOPPED until QREQn is released or the IP itself needs to wake (QACTIVE goes high again) → back to RUN.
Why not just gate the clock directly?Turning off a clock mid-transaction can leave a state machine or a bus transfer half-completed with no way to safely resume — Q-Channel exists specifically so the IP itself decides the safe moment, not an external controller guessing.
Real usagePart of Arm's AMBA Low-Power Interface specification, used throughout real SoC low-power design alongside UPF/CPF power intent — low-power synthesis and verification tools understand Q-Channel natively when checking power-aware designs.
▶ Try the interactive version