Feedback Trigger Handling#

See also

For a high-level overview of both feedback mechanisms available in the Cluster, see Synchronization and Feedback.

Qblox instruments support feedback by using an integrated trigger network of four parallel trigger lines (15 addresses) that interconnect all sequencers within the system and allow the user to create low-latency feedback sequences. Additionally, the external trigger input on each instrument is connected to the same trigger network. This allows other instruments to also contribute to any feedback sequence. The feedback works from any sequencer in any readout module to any sequencer in any module.

The trigger network uses 4 lines on the backplane to transmit the triggers. These lines map to 15 trigger addresses. Once a trigger is sent from any source, all sequencers will receive it simultaneously 212 ns later. Only one trigger may be sent over the backplane at once. After 252 ns, the network is ready for another trigger.

All Q1 sequencer can be configured to send a trigger to the backplane due to different events. These events are different for the different types of sequencers and are described in the specific sequencer pages (control, readout and timetag).

Additionally, every Q1 sequencer can receive triggers from the backplane in order to run instructions conditioned on the state of the triggers. A sequencer can either wait for a trigger on a particular address, or execute real-time instructions conditionally based on a condition. Both of these methods are described below.

Feedback Timing#

<sodipodi:namedview id=”namedview1637” pagecolor=”#ffffff” bordercolor=”#000000” borderopacity=”0.25” inkscape:showpageshadow=”2” inkscape:pageopacity=”0.0” inkscape:pagecheckerboard=”0” inkscape:deskcolor=”#d1d1d1” inkscape:document-units=”mm” showgrid=”false” inkscape:zoom=”5.656854” inkscape:cx=”71.85973” inkscape:cy=”37.56505” inkscape:window-width=”1920” inkscape:window-height=”991” inkscape:window-x=”-9” inkscape:window-y=”79” inkscape:window-maximized=”1” inkscape:current-layer=”g4487” showguides=”true”> <inkscape:grid type=”xygrid” id=”grid166” originx=”-14.740596” originy=”-5.2916676” spacingy=”1” spacingx=”1” units=”mm” visible=”false” /> </sodipodi:namedview> <inkscape:path-effect effect=”bspline” id=”path-effect8” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4702” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect29910” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect24178” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-6” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-67” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-67-8” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-8” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-8-7” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-7” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-6-7” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-5” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-7-7” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-8-2” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-8-7-8” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect24178-2” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-67-3” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-67-8-9” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect29910-2” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-50” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-50-6” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4702-4” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-67-8-5” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-9” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-9-4” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-1” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-1” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-1-8” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-6” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-1-0” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-6” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-1-8-0” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-6-2” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-1-0-4” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-6-1” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> SEQUENCER 1 Output OP Trigger Network [212-239ns] IP Input SEQUENCER 2 Propagation Delay

<sodipodi:namedview id=”namedview1637” pagecolor=”#ffffff” bordercolor=”#000000” borderopacity=”0.25” inkscape:showpageshadow=”2” inkscape:pageopacity=”0.0” inkscape:pagecheckerboard=”0” inkscape:deskcolor=”#d1d1d1” inkscape:document-units=”mm” showgrid=”false” inkscape:zoom=”5.656854” inkscape:cx=”82.643109” inkscape:cy=”50.646525” inkscape:window-width=”1920” inkscape:window-height=”991” inkscape:window-x=”-9” inkscape:window-y=”79” inkscape:window-maximized=”1” inkscape:current-layer=”g4487” showguides=”true”> <inkscape:grid type=”xygrid” id=”grid166” originx=”-14.740596” originy=”-5.2916676” spacingy=”1” spacingx=”1” units=”mm” visible=”false” /> </sodipodi:namedview> <inkscape:path-effect effect=”bspline” id=”path-effect8” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4702” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect29910” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect24178” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-6” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-67” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-67-8” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-8” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-8-7” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-7” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-6-7” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-5” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-7-7” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-8-2” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-8-7-8” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect24178-2” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-67-3” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-67-8-9” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect29910-2” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-50” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-50-6” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4702-4” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-67-8-5” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-9” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-9-4” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-1” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-1” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-1-8” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-6” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-1-0” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-6” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-1-8-0” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-6-2” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-1-0-4” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-6-1” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-6-1-6” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-1-0-4-8” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-6-2-6” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-1-8-0-8” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-6-1-6-0” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect8-1-0-4-8-3” is_visible=”true” lpeversion=”1.3” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-6-2-6-9” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-1-9-1-8-0-8-8” is_visible=”true” lpeversion=”1” weight=”33.333333” steps=”2” helper_size=”0” apply_no_weight=”true” apply_with_weight=”true” only_selected=”false” uniform=”false” /> SEQUENCER 1 Output OP Trigger Network [212-239ns] IP Input SEQUENCER 2 Propagation Delay

The figure above illustrates the different timing contributions within the instrument. OP and IP represent the output path and input path latencies, respectively. These latencies depend on several factors, including the sequencer type (Control Sequencers , Readout Sequencers, Timetag Sequencers) as well as any options enabled on the path (e.g., NCO, RTP). For most modules with base options, the combined base latency is OP + IP = 149 ns.

The propagation delay refers to the time required for the signal to travel from the output to the input through external cabling. This delay is experiment-dependent; in the data below it is assumed to be 0 ns. The trigger network itself introduces an additional latency of 212–239 ns, depending on when the message is sent relative to the trigger clock.

In total, the feedback time, defined as the duration from the last input sample received to the first output sample sent, is given by:

\[\text{Feedback time} = \text{OP} + \text{IP} + \text{TOF} + \text{Trig} = 40 + 109 + 0 + 239 = 388 \,\text{ns}\]

To help you understand how latency behaves across different sequencer types and configuration options, we’ve separated the information into two tables. The first table shows the base latency values for each sequencer, distinguishing between output and input paths where applicable. This represents the latency without any optional features enabled.

The second table lists the latency modifications introduced by specific options such as RTP, Marker, and TTL. These values represent the change (increase or decrease) from the base latency. Not all options apply to every sequencer or latency direction, so we indicate “N/A” where an option is not applicable.

Base latency per sequencer#

Sequencer Type

Output Latency (ns)

Input Latency (ns)

Control Baseband

40

N/A

Readout Baseband

40

109

Control RF

50

N/A

Readout RF

50

109

Latency modification by option#

Option

Extra output latency (ns)

Extra input latency (ns)

RTP

+24

0

TTL

N/A

-35

Trigger Network#

The figure below shows the four-line trigger network connecting the external trigger input and all sequencers. Access to this trigger network is address-based. When triggering the network using the external trigger input or any of the sequencers, the resulting trigger is converted into one of fifteen configurable addresses (i.e. 1 to 15). In turn, any sequencer can subscribe to one or multiple addresses and react to those incoming triggers using custom sequencer instructions to modify sequence flow (see section sequence_processor_operation_instructions).

../../../_images/trigger_network.svg

The trigger network operates on a 28 ns timegrid. This timegrid is started/aligned during module synchronization using the wait_sync instruction. Once synchronized, triggers are sent to the nearest timegrid point in the future. In other words, triggers that are not sent on this timegrid get a maximum time penalty of 24 ns. Any trigger that is sent on the trigger network takes 212 ns to propagate to any receiver on the trigger network, and be available for conditional operation. A trigger can be sent on the trigger network once every 252 ns (or 9 timegrid points). The figure below shows an example of the trigger network timegrid.

../../../_images/trigger_network_timegrid.svg

Sending triggers on the trigger network can be done via different instructions described below.

wait_trigger#

The wait_trigger <trigger_address> instruction stops the RT core until a trigger arrives to the sequencer at the specified address.

Warning

This means that the time required to execute a wait_trigger instruction is not deterministic.

set_cond#

Every sequencer has a trigger handling module which counts the number of triggers arriving at each trigger address and computes the boolean result of a condition that is configurable using the set_cond instruction.

The set_cond instruction is a Q1 core instruction that changes how real-time instructions are executed. The set_cond instruction takes 4 arguments: enable, mask, operator and else_time. A boolean condition is calculated before the RT core executes every real-time instruction. If the condition is true, the instruction is executed. If the condition is false, the RT core simply waits for else_time ns before moving on to the next real-time instruction in the queue.

Here is a description of the arguments to the set_cond instruction:

  • The enable argument can be either 1 or 0 and either enables or disables conditional execution.

  • The mask argument sets the 15 bit mask as described below.

  • The operator argument sets the operator to one of 6 as described below.

  • The else_time argument sets how long the RT core will wait after skipping execution of the real-time instruction if the condition is false.

The block diagram below followed by an explanation of how the boolean condition is determined.

../../../_images/trigger_network_conditional.svg
  1. Address Counters: The trigger handling module consists of 15 counters that count the number of triggers that arrive at each of the 15 trigger addresses. These counters can be activated and deactivated using the latch_en instruction. The counters can be reset to zero using the latch_rst instruction.

  2. Thresholds A threshold value can be set for each of the trigger address counters using Sequencer.trigger1_count_threshold() parameter. Each counter is individually compared (>=) with its associated threshold. The Sequencer.trigger1_threshold_invert() parameter can be used to invert this comparison to (<). The results of these static comparisons create a thresholds vector of boolean values with a true/false indication for each trigger address.

  3. Mask and operator A 15 bit mask (specified as either a decimal number: 72 or a hexadecimal number: 0x48) can be set using the second argument of the set_cond instruction. The 15 bit boolean thresholds vector and the 15 bit mask are combined using one of 6 different operations described in the table below to give one boolean value.

Argument

Select

Operator

Comment

0

AND mask

OR

Return true if any of the selected counters crossed their thresholds

1

AND mask

NOR

Return true if none of the selected counters crossed their threshold

2

OR NOT(mask)

AND

Return true if all of the selected counters crossed their threshold

3

OR NOT(mask)

NAND

Return true if any of the selected counters did not cross their threshold

4

AND mask

XOR

Return true if an odd number of selected counters crossed their threshold

5

AND mask

XNOR

Return true if an even number of selected counters crossed their threshold