Execution flags#
ExecutionFlags updates each qubit’s flags from completed measurements.
The TCU checks the selected flag when an operation is triggered.
Connections#
Input: measurement completions from
ControlLinks::fast_results.Output: the selected flag and a delivery acknowledgment.
Owner:
TcuCycleModelcommits results after checking due events.
Flag updates#
Flag |
Value |
|---|---|
|
Latest completed measurement bit. |
|
Inverse of the latest completed measurement bit. |
|
One when the latest two completed measurements agree. |
always evaluates to true without reading measurement state.
Reset clears the three conditional flags. The first result sets
last_one and last_zero; equal remains zero until a second result arrives.
A result committed at 100 ns cannot affect an operation triggered at 100 ns.
With a 20 ns TCU period, the updated flags become usable at 120 ns.
ExecutionFlagsUpdated records the result commit.
Pending measurements do not invalidate these flags. fmr neither changes
nor consumes them.
Objects and state#
Member |
Role |
|---|---|
|
Per-qubit conditional flags and the last committed measurement ID. |
|
TCU-owned flag storage. |
Reset and errors#
Reset clears all conditional flags and measurement IDs. Old-epoch results
are discarded. Duplicate or out-of-order results for one qubit raise
Protocol. Selecting a conditional codeword with fast_feedback disabled
raises UnsupportedCapability.
Implementation and tests#
Source: feedback.cpp and feedback.hpp.
CTest: control.fast, protocol.flags, systemc.use_cases.
Tests cover all four execution conditions, target isolation, reset, consecutive results and result arrival on the trigger edge.