Control Sequencers#

A control sequencer is a type of Q1 sequencer whose signal path is an arbitrary waveform generator (awg) and generates two streams of output signals called path_0 and path_1.

The following describes the parts or blocks of the signal path of a control sequencer along with examples to illustrate how the blocks work together. Some of the blocks perform mathematical operations to a signal. In these cases, a formula of the form \(y(t)=f(x(t))\) is presented, where \(t\) is time in discrete time steps of 1 ns corresponding to each time sample, \(y(t)\) is the output of the block, given that \(x(t)\) is the input to the block. The function \(f(x(t))\) can be manipulated using Q1ASM instructions or QCoDeS commands depending on the block.

Arbitrary waveform generator (AWG)#

<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=”10.522677” inkscape:cx=”55.404152” inkscape:cy=”23.235532” inkscape:window-width=”1854” inkscape:window-height=”1011” inkscape:window-x=”0” inkscape:window-y=”0” inkscape:window-maximized=”1” inkscape:current-layer=”layer1”> <inkscape:grid type=”xygrid” id=”grid166” originx=”-27.12614” originy=”-18.313632” /> </sodipodi:namedview> <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-6-75” 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-62” 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-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-9-4-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-50-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” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-50-6-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-7-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” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-8-28” 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-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-effect24178-29” 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-94” 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-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-effect29910-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-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-4-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-4-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-50-6-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” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-50-6-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-50-6-3-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” /> PATH 0 NCO QCODES Q1ASM QCODES Q1ASM PATH 1 WAVEFORMMEMORY

<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=”7.4406562” inkscape:cx=”54.430683” inkscape:cy=”31.784831” inkscape:window-width=”1920” inkscape:window-height=”1043” inkscape:window-x=”0” inkscape:window-y=”0” inkscape:window-maximized=”1” inkscape:current-layer=”layer1”> <inkscape:grid type=”xygrid” id=”grid166” originx=”-27.12614” originy=”-18.313632” /> </sodipodi:namedview> <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-6-75” 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-62” 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-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-9-4-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-50-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” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-50-6-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-7-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” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-8-28” 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-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-effect24178-29” 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-94” 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-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-effect29910-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-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-4-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-4-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-50-6-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” /> <inkscape:path-effect effect=”bspline” id=”path-effect4777-50-6-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-50-6-3-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” /> PATH 0 NCO PATH 1 QCODES Q1ASM QCODES Q1ASM WAVEFORMMEMORY

1. Waveform playback#

A control sequencer has a certain waveform memory from which signals can be played. The user can upload waveforms while uploading a sequence using the Sequencer.sequence() method. The method takes a dictionary as an argument, and one of the keys must be waveforms, which itself is a dictionary with a python list of floating point values in the range of 1.0 to -1.0 with a resolution of one nanosecond per sample. See below an example:

Important

The data supplied to the waveform dictionary must be a python list. It cannot be a numpy array.

The waveform memory for each sequencer is 16384 samples (total of all waveforms stored in one sequencer), and the maximum number of waveforms that can be stored on a sequencer is 1024. The stored waveforms can be retrieved using Sequencer.get_waveforms().

The play RT instruction is used to start waveform playback from the waveform memory. The instruction takes two arguments before the real-time duration argument. The first two are the waveform indices for path 0 and path 1. Once the play instruction is executed by the RT core, the waveform is then completely played irrespective of further instructions, except when the RT core issues the playback of another waveform, in which case the waveform will be stopped and the new waveform will start.

Note

If the waveform is shorter than duration, the output is zeros after waveform playback.

2. Gain#

A control sequencer has a dedicated gain step for both paths 0 and 1, which can either be configured using the ControlSequencer.gain_awg_path0() QCoDeS parameter or within a sequence using the set_awg_gain Q1ASM latched instruction of the Q1 sequencer which enables pulse parametrization. The QCoDeS and Q1ASM gain controls are multiplied together before the gain is applied to the signal.

The set_awg_gain Q1ASM latched instruction takes two integers from -32768 to 32767 as arguments for the gain of the two paths.

Mathematically, this block is:

\[ y(t) = Ggx(t) \]

where,

Note

If modulated IQ signals are used for an output pair, it is good practice to set the same gain for both paths, i.e., ControlSequencer.gain_awg_path0() = ControlSequencer.gain_awg_path1()

3. Offset#

A control sequencer has a dedicated offset step for both paths 0 and 1, which can either be configured using the ControlSequencer.offset_awg_path0() QCoDeS parameter or within a sequence using the set_awg_offs Q1ASM latched instruction of the Q1 sequencer which enables pulse parametrization. The QCoDeS and Q1ASM offset controls are added together before the gain is applied to the signal.

The set_awg_offs Q1ASM latched instruction takes two integers from -32768 to 32767 as arguments for the offset of the two paths.

Mathematically, this block is:

\[ y(t) = x(t) + O + o \]

where,

Note

If modulated IQ signals are used for an output pair, it is good practice to set the same offset for both paths, i.e., ControlSequencer.offset_awg_path0() = ControlSequencer.offset_awg_path1()

4. Numerically controlled oscillator (NCO)#

A control sequencer has a numerically controlled oscillator (NCO) whose frequency and phase parameters either be configured using the ControlSequencer.nco_freq() and ControlSequencer.nco_phase_offs() QCoDeS parameters or within a sequence using the set_freq, reset_ph, set_ph, and set_ph_delta Q1ASM latched instructions.

The NCO outputs a two signals (\(n_I\) and \(n_Q\)), which can be interpreted as a complex signal (\(\mathbf{n}(t)\)).

Real signals

\[\begin{split}\begin{align} n_I(t) &= \cos(\omega t' + \Phi + \phi)\\ n_Q(t) &= \sin(\omega t' + \Phi + \phi)\\ \end{align}\end{split}\]

Complex signals

\[\begin{align} \mathbf{n}(t) &= e^{\mathbf{i}(\omega t' + \Phi + \phi)} \end{align}\]

where,

  • \(\omega = 2\pi f\) where \(f\) is the frequency of the NCO.

    \(f\) can be set using the ControlSequencer.nco_freq() QCoDeS parameter or the set_freq Q1ASM instruction.

  • \(t'\) is the time internal to the NCO.

    It is set to zero with the reset_ph instruction. Note that the reset_ph instruction also sets \(\phi=0\) and \(\Phi=0\). The set_ph_delta Q1ASM instruction induces a phase kick \(t'\rightarrow t' + \delta\phi/\omega\) at the instant that the signal path is updated (when the next RT instruction is executed).

  • \(\Phi\) is the phase offset.

    It is set from the ControlSequencer.nco_phase_offs() QCoDeS parameter.

  • \(\phi\) is the phase offset.

    It is set from the set_ph Q1ASM latched register.

The ControlSequencer.nco_phase_offs() QCoDeS parameter and set_ph Q1ASM instruction are added together before it is applied to the NCO.

Warning

The ControlSequencer.nco_freq() QCoDeS parameter and set_freq Q1ASM instruction override each other. We highly recommend setting NCO frequencies only either using QCoDeS or Q1ASM and not both.

For further in depth details and a tutorial on how to use the Q1 sequencer NCO capabilities, please refer to the NCO tutorial.

5. Modulation (mixer)#

The two output signals from the NCO (\(\mathbf{n}(t) = n_I(t) + \mathbf{i}n_Q(t)\)) and the signal from paths 0 and 1 (\(\mathbf{x}(t) = x_0(t) + \mathbf{i}x_1(t)\)) are multiplied as complex signals in this block to output a modulated signal (\(\mathbf{y}(t) = y_0(t) + \mathbf{i}y_1(t)\)).

Real signals

\[\begin{split}\begin{align} y_0(t) &= \frac{n_I(t) x_0(t) - n_Q(t) x_1(t)}{\sqrt{2}}\\ y_1(t) &= \frac{n_Q(t) x_0(t) + n_I(t) x_1(t)}{\sqrt{2}}\\ \end{align}\end{split}\]

Complex signals

\[\begin{align} \mathbf{y}(t) &= \frac{\mathbf{n}(t)\mathbf{x}(t)}{\sqrt{2}} \end{align}\]

Note

The \(1/\sqrt{2}\) factor ensures that the output is limited to \(\pm 1\).

Modulation is enabled using the ControlSequencer.mod_en_awg() parameter.

5.1 Mixer Correction#

If the two signals (path 0 and 1) generated by the control sequencer are meant to be used as the I and Q signals to a physical mixer (such as in the RF modules), one may want to correct for mixer imperfections. The mixer correction block allows the user to set an amplitude ratio (\(\alpha\)) and a phase offset (\(\phi_m\)) between the I and Q signals, so that the output of the physical mixer is ideal. The output of the mixer correction block is calculated by the mixer correction block as follows:

\[\begin{split}\begin{align} y_0(t) &= x_0(t) - \tan(-\phi_m) x_1(t)\\ y_1(t) &= \frac{\alpha}{\cos(-\phi_m)} x_1(t)\\ \end{align}\end{split}\]

where,

Please refer to the Automatic mixer calibration tutorial and Manual mixer calibration tutorial for more details.