See also

A Jupyter notebook version of this tutorial can be downloaded here.

RF control#

In this tutorial, we demonstrate control and calibration of RF modules.

  • Spectroscopy measurements - in which we measure the transmission parameter (S21) of the device under test;

    • Over a large frequency range (\(2.0\) - \(18.0\) GHz) by sweeping the LO frequency;

    • Over a smaller frequency range (\(5.0\) - \(5.2\) GHz) by sweeping the NCO frequency.

To run this tutorial, you will need:

  • QRM-RF

  • Device under test: a T-connector

  • Two SMA-cables

Setup#

First, we are going to import the required packages.

[1]:
import json

import matplotlib.pyplot as plt
import numpy as np
from numpy.typing import NDArray
[2]:
from __future__ import annotations

from typing import TYPE_CHECKING, Callable

from qcodes.instrument import find_or_create_instrument

from qblox_instruments import Cluster, ClusterType

if TYPE_CHECKING:
    from qblox_instruments.qcodes_drivers.module import Module

Scan For Clusters#

We scan for the available devices connected via ethernet using the Plug & Play functionality of the Qblox Instruments package (see Plug & Play for more info).

!qblox-pnp list

[3]:
cluster_ip = "10.10.200.42"
cluster_name = "cluster0"

Connect to Cluster#

We now make a connection with the Cluster.

[4]:
cluster = find_or_create_instrument(
    Cluster,
    recreate=True,
    name=cluster_name,
    identifier=cluster_ip,
    dummy_cfg=(
        {
            2: ClusterType.CLUSTER_QCM,
            4: ClusterType.CLUSTER_QRM,
            6: ClusterType.CLUSTER_QCM_RF,
            8: ClusterType.CLUSTER_QRM_RF,
        }
        if cluster_ip is None
        else None
    ),
)

Get connected modules#

[5]:
def get_connected_modules(cluster: Cluster, filter_fn: Callable | None = None) -> dict[int, Module]:
    def checked_filter_fn(mod: ClusterType) -> bool:
        if filter_fn is not None:
            return filter_fn(mod)
        return True

    return {
        mod.slot_idx: mod for mod in cluster.modules if mod.present() and checked_filter_fn(mod)
    }
[6]:
# QRM-RF modules
modules = get_connected_modules(cluster, lambda mod: mod.is_qrm_type and mod.is_rf_type)
[7]:
# This uses the module of the correct type with the lowest slot index
module = list(modules.values())[0]

Reset the Cluster#

We reset the Cluster to enter a well-defined state. Note that resetting will clear all stored parameters, so resetting between experiments is usually not desirable.

[8]:
cluster.reset()
print(cluster.get_system_status())
Status: OKAY, Flags: NONE, Slot flags: NONE

Spectroscopy Measurements#

A common experimental step is to find the resonance frequency of a resonator. To showcase the experience flow in this case we will sweep close to the full frequency range of the QRM-RF module (\(2\) - \(18\) GHz) and plot the frequency response.

We start by defining a function to plot the amplitude and phase of the output signal.

[9]:
def plot_spectrum(freq_sweep_range: NDArray, I_data: NDArray, Q_data: NDArray) -> None:
    amplitude = np.sqrt(I_data**2 + Q_data**2)
    phase = np.arctan2(Q_data, I_data) * 180 / np.pi

    fig, [ax1, ax2] = plt.subplots(2, 1, sharex=True, figsize=(15, 7))

    ax1.plot(freq_sweep_range / 1e9, amplitude, color="#00839F", linewidth=2)
    ax1.set_ylabel("Amplitude (V)")

    ax2.plot(freq_sweep_range / 1e9, phase, color="#00839F", linewidth=2)
    ax2.set_ylabel(r"Phase ($\circ$)")
    ax2.set_xlabel("Frequency (GHz)")
    fig.tight_layout()
    plt.show()

Setup#

Connect the output of QRM-RF to its input via a T-connector (one end of the T-connector should be left open so as to produce a resonator) as shown in the figure below.

Note: this will not work if a splitter is used.

Diagram.png

Initially, we need to define the waveforms and acquisition memory. As we are using the NCO to generate an IF signal, we can use a constant (DC) waveform. We need to make sure that the waveform is long enough to run during the whole acquisition integration length and to compensate for the delay of output to input (the holdoff_length). Finally, we will also add averaging to increase the signal-to-noise ratio (SNR) of the measurements.

[10]:
# Parameters
no_averages = 10
integration_length = 1024
holdoff_length = 200
waveform_length = integration_length + holdoff_length

For simplicity, a single bin is used in this tutorial.

[11]:
# Acquisitions
acquisitions = {"acq": {"num_bins": 1, "index": 0}}

Now that the waveform and acquisition have been specified for the sequence, we need a Q1ASM program that sequences the waveforms and triggers the acquisitions. This program plays a DC wave, waits for the specified hold-off time and then acquires the signal. This process is repeated for the specified number of averages, with the average being done within the hardware.

[12]:
seq_prog = f"""
      move    {no_averages},R0           # Average iterator.
      nop
      reset_ph
      set_awg_offs 10000, 10000          # set amplitude of signal
      nop
loop:
      wait     {holdoff_length}          # Wait time of flight
      acquire  0,0,{integration_length}  # Acquire data and store them in bin_n0 of acq_index.
      loop     R0,@loop                  # Run until number of average iterations is done.
      stop                               # Stop the sequencer
      """

# Add sequence to single dictionary and write to JSON file.
sequence = {
    "waveforms": {},
    "weights": {},
    "acquisitions": acquisitions,
    "program": seq_prog,
}
with open("sequence.json", "w", encoding="utf-8") as file:
    json.dump(sequence, file, indent=4)
    file.close()

# Upload sequence
module.sequencer0.sequence("sequence.json")

The device and sequencer can now be configured. In the RF modules, there is a switch directly before the output connector, which needs to be turned on to get a signal out of the device. The switch is controlled through the marker interface, first we must enable to override of the marker, then we must set the appropriate bits to enable the signal at the output.

Additionally, we set the output paths DC offset to known values. We look into the details of this parameter further on in this tutorial. Additionally, we configure the sequencer, the acquisition and set the NCO frequency. More information on these configurations can be found in the Basic Sequencing, Scope Acquisition and NCO tutorials, respectively.

[13]:
module.disconnect_outputs()
module.disconnect_inputs()

# Configure channel map
module.sequencer0.connect_sequencer("io0")

module.sequencer0.marker_ovr_en(True)
module.sequencer0.marker_ovr_value(3)  # Enables output on QRM-RF

# Set input attenuation to avoid reflections
module.in0_att(10)
# Set offset in mV
module.out0_offset_path0(5.5)
module.out0_offset_path1(5.5)

# Configure scope mode
module.scope_acq_sequencer_select(0)
module.scope_acq_trigger_mode_path0("sequencer")
module.scope_acq_trigger_mode_path1("sequencer")

# Configure the sequencer
module.sequencer0.mod_en_awg(True)
module.sequencer0.demod_en_acq(True)
module.sequencer0.nco_freq(100e6)
module.sequencer0.integration_length_acq(integration_length)
module.sequencer0.sync_en(True)

# NCO delay compensation
module.sequencer0.nco_prop_delay_comp_en(True)

Now we are ready to start the spectroscopy measurements.

[14]:
lo_sweep_range = np.linspace(2e9, 18e9, 161)

lo_data_0 = []
lo_data_1 = []

for lo_val in lo_sweep_range:
    # Update the LO frequency.
    module.out0_in0_lo_freq(lo_val)

    # Clear acquisitions
    module.sequencer0.delete_acquisition_data("acq")

    module.arm_sequencer(0)
    module.start_sequencer()

    # Wait for the sequencer to stop with a timeout period of one minute.
    module.get_acquisition_status(0)

    # Move acquisition data from temporary memory to acquisition list.
    module.store_scope_acquisition(0, "acq")

    # Get acquisition list from instrument.
    data = module.get_acquisitions(0)["acq"]

    # Store the acquisition data.
    lo_data_0.append(data["acquisition"]["bins"]["integration"]["path0"][0])
    lo_data_1.append(data["acquisition"]["bins"]["integration"]["path1"][0])

We plot the acquired signal’s amplitude and phase.

[15]:
# The result still needs to be divided by the integration length to make sure
# the units are correct.
lo_data_0 = np.asarray(lo_data_0) / integration_length
lo_data_1 = np.asarray(lo_data_1) / integration_length

# Plot amplitude/phase results
plot_spectrum(lo_sweep_range, lo_data_0, lo_data_1)
../../../../../_images/tutorials_q1asm_tutorials_basic_generated_QRM-RF_100_rf_control_28_0.png

From the spectroscopy measurements, we can see that the resonance dip of the resonator is at roughly \(6.5\) GHz.

Frequency sweep using NCO#

Instead of sweeping the LO frequency, we can instead sweep the NCO. More information on the NCO can be found in the NCO Control Tutorial. We perform a frequency sweep from \(5.0\) to \(5.2\) GHz by setting the LO frequency to \(4.95\) GHz, such that the NCO frequency is swept from \(50\) to \(250\) MHz. Due to possible LO leakage we avoid NCO frequencies below \(\pm10\) MHz. Additionally, due to the analog filters, which cause a decrease in the output signal as the frequency increases, see NCO Control Tutorial, we choose to remain below \(250\) MHz.

[16]:
freq_sweep_range = np.linspace(5.0e9, 5.2e9, 200)

# LO settings
lo_freq = 4.95e9
module.out0_in0_lo_freq(lo_freq)

# NCO delay compensation
module.sequencer0.nco_prop_delay_comp_en(True)

We run the frequency sweep. This is simply a loop where we set the frequency by updating the QCoDeS NCO frequency parameter and then run the Q1ASM program defined in the previous example. We measure the run time using the %%time IPython magic command.

[17]:
%%time
data_0 = []
data_1 = []

for freq_val in freq_sweep_range:
    # Update the NCO frequency.
    module.sequencer0.nco_freq(freq_val - lo_freq)

    # Clear acquisitions
    module.sequencer0.delete_acquisition_data("acq")

    module.arm_sequencer(0)
    module.start_sequencer()

    # Wait for the sequencer to stop with a timeout period of one minute.
    module.get_acquisition_status(0)

    # Move acquisition data from temporary memory to acquisition list.
    module.store_scope_acquisition(0, "acq")

    # Get acquisition list from instrument.
    data = module.get_acquisitions(0)["acq"]

    # Store the acquisition data.
    data_0.append(data["acquisition"]["bins"]["integration"]["path0"][0])
    data_1.append(data["acquisition"]["bins"]["integration"]["path1"][0])
CPU times: user 3.64 s, sys: 629 ms, total: 4.26 s
Wall time: 12.2 s
[18]:
# The result still needs to be divided by the integration length to make sure
# the units are correct.
data_0 = np.asarray(data_0) / integration_length
data_1 = np.asarray(data_1) / integration_length

# Plot amplitude/phase results
plot_spectrum(freq_sweep_range, data_0, data_1)
../../../../../_images/tutorials_q1asm_tutorials_basic_generated_QRM-RF_100_rf_control_33_0.png

Fast frequency sweep#

The same spectroscopy measurement can be done by sweeping the NCO frequency directly in the Q1ASM sequence, with a considerable time speed-up in comparison with updating the QCoDes parameters.

The Q1ASM sequencer program only supports integer values. However, the NCO has a frequency resolution of 0.25 Hz. As such, the frequency values in the sequencer program must be given as integer multiples of \(1/4\) Hz.

[19]:
freq_sweep_range = np.linspace(5.0e9, 5.2e9, 200)

lo_freq = 4.95e9
module.out0_in0_lo_freq(lo_freq)

start_freq = np.min(freq_sweep_range) - lo_freq
stop_freq = np.max(freq_sweep_range) - lo_freq
n_steps = len(freq_sweep_range)
step_freq = (stop_freq - start_freq) / n_steps

# NCO frequency range settings
nco_int_start_freq = int(4 * start_freq)
nco_int_step_freq = int(4 * step_freq)

We set up the QRM-RF for continuous wave output, similarly to what was done in the previous example, and binned acquisition with multiple bins - equal to the number of frequency steps. The maximum number of points that can be measured using this method is \(131072\) per sequencer, which corresponds to the maximum number of bins.

[20]:
# Acquisitions
acquisitions = {"multi": {"num_bins": n_steps, "index": 0}}

The Q1ASM sequence program is defined with two loops, one for the averaging and a second one for the frequency sweep, i.e. the measurement itself.

[21]:
# Program sequence
program = f"""
        move            {no_averages}, R0                   # Include number of averages
avg:
        move            {nco_int_start_freq}, R1            # Start frequency
        move            0, R2                               # Step counter
        reset_ph                                         # Reset phase of signal
        set_awg_offs    10000, 10000                        # Set amplitude of signal
nco_f:
        set_freq        R1                               # Set the frequency
        add             R1, {nco_int_step_freq}, R1      # Update the frequency register
        upd_param       200                              # Update settings and wait for time of flight
        acquire         0, R2, {integration_length}      # Acquire data and store them in bin_n0 of acq_index.
        add             R2, 1, R2                        # Update the step register
        nop
        jlt             R2, {n_steps}, @nco_f            # Loop over all frequencies
        loop            R0, @avg
        stop                                             # Stop
"""

# Upload sequence
module.sequencer0.sequence(
    {
        "waveforms": {},
        "weights": {},
        "acquisitions": acquisitions,
        "program": program,
    }
)

We perform the spectroscopy measurement using %%time magic command again, so that we can compare the run time of both measurement methods.

[22]:
%%time
module.delete_acquisition_data(0, "multi")
module.arm_sequencer(0)
module.start_sequencer()
module.get_acquisition_status(0)
module.store_scope_acquisition(0, "multi")
data = module.get_acquisitions(0)["multi"]
CPU times: user 6.03 ms, sys: 548 µs, total: 6.58 ms
Wall time: 37.2 ms

Comparing the run time of performing the same spectroscopy measurement by updating the QCoDes parameters and by sweeping the frequency within the Q1ASM sequence program, we see that the latter is two orders of magnitude faster. We now plot the results, to verify that they are equal to those measured in the first example.

[23]:
data_0 = np.asarray(data["acquisition"]["bins"]["integration"]["path0"]) / integration_length
data_1 = np.asarray(data["acquisition"]["bins"]["integration"]["path1"]) / integration_length

# Plot amplitude/phase results
plot_spectrum(freq_sweep_range, data_0, data_1)
../../../../../_images/tutorials_q1asm_tutorials_basic_generated_QRM-RF_100_rf_control_43_0.png

Signal Attenuation#

The QRM-RF module provides the possibility of attenuating both the output and input signals. The attenuation values can be set within the range from \(0\) to \(60\) dB, in \(2\) dB steps.

[24]:
# Output Attenuation (dB)
module.out0_att(4)

# Input Attenuation (dB)
module.in0_att(0)

# Fast NCO frequency sweep
module.delete_acquisition_data(0, "multi")
module.arm_sequencer(0)
module.start_sequencer()
module.get_acquisition_status(0)
data = module.get_acquisitions(0)["multi"]

data_0 = np.asarray(data["acquisition"]["bins"]["integration"]["path0"]) / integration_length
data_1 = np.asarray(data["acquisition"]["bins"]["integration"]["path1"]) / integration_length

# Plot amplitude/phase results
plot_spectrum(freq_sweep_range, data_0, data_1)
../../../../../_images/tutorials_q1asm_tutorials_basic_generated_QRM-RF_100_rf_control_45_0.png

Stop#

Finally, let’s stop the sequencers if they haven’t already and close the instrument connection. One can also display a detailed snapshot containing the instrument parameters before closing the connection by uncommenting the corresponding lines.

[25]:
# Stop both sequencers.
module.stop_sequencer()

# Print status of both sequencers (should now say it is stopped).
print(module.get_sequencer_status(0))
print(module.get_sequencer_status(1))
print()

# Print an overview of the instrument parameters.
print("Snapshot:")
module.print_readable_snapshot(update=True)

# Reset the cluster
cluster.reset()
print(cluster.get_system_status())
Status: OKAY, State: STOPPED, Info Flags: FORCED_STOP, ACQ_SCOPE_DONE_PATH_0, ACQ_SCOPE_DONE_PATH_1, ACQ_BINNING_DONE, Warning Flags: NONE, Error Flags: NONE, Log: []
Status: OKAY, State: STOPPED, Info Flags: FORCED_STOP, Warning Flags: NONE, Error Flags: NONE, Log: []

Snapshot:
cluster0_module8:
        parameter                        value
--------------------------------------------------------------------------------
in0_att                           :     0 (dB)
in0_offset_path0                  :     0 (V)
in0_offset_path1                  :     0 (V)
marker0_exp0_config               :     bypassed
marker0_exp1_config               :     bypassed
marker0_exp2_config               :     bypassed
marker0_exp3_config               :     bypassed
marker0_fir_config                :     bypassed
marker0_inv_en                    :     False
marker1_exp0_config               :     bypassed
marker1_exp1_config               :     bypassed
marker1_exp2_config               :     bypassed
marker1_exp3_config               :     bypassed
marker1_fir_config                :     bypassed
marker1_inv_en                    :     False
marker2_exp0_config               :     bypassed
marker2_exp1_config               :     bypassed
marker2_exp2_config               :     bypassed
marker2_exp3_config               :     bypassed
marker2_fir_config                :     bypassed
marker3_exp0_config               :     bypassed
marker3_exp1_config               :     bypassed
marker3_exp2_config               :     bypassed
marker3_exp3_config               :     bypassed
marker3_fir_config                :     bypassed
out0_att                          :     4 (dB)
out0_exp0_config                  :     bypassed
out0_exp1_config                  :     bypassed
out0_exp2_config                  :     bypassed
out0_exp3_config                  :     bypassed
out0_fir_config                   :     bypassed
out0_in0_lo_en                    :     True
out0_in0_lo_freq                  :     4950000000 (Hz)
out0_in0_lo_freq_cal_type_default :     off (Hz)
out0_latency                      :     0 (s)
out0_offset_path0                 :     5.5 (mV)
out0_offset_path1                 :     5.5 (mV)
present                           :     True
scope_acq_avg_mode_en_path0       :     False
scope_acq_avg_mode_en_path1       :     False
scope_acq_sequencer_select        :     0
scope_acq_trigger_level_path0     :     0
scope_acq_trigger_level_path1     :     0
scope_acq_trigger_mode_path0      :     sequencer
scope_acq_trigger_mode_path1      :     sequencer
cluster0_module8_sequencer0:
        parameter                       value
--------------------------------------------------------------------------------
connect_acq                      :      in0
connect_out0                     :      IQ
cont_mode_en_awg_path0           :      False
cont_mode_en_awg_path1           :      False
cont_mode_waveform_idx_awg_path0 :      0
cont_mode_waveform_idx_awg_path1 :      0
demod_en_acq                     :      True
gain_awg_path0                   :      1
gain_awg_path1                   :      1
integration_length_acq           :      1024
marker_ovr_en                    :      True
marker_ovr_value                 :      3
mixer_corr_gain_ratio            :      1
mixer_corr_phase_offset_degree   :      -0
mod_en_awg                       :      True
nco_freq                         :      2.5e+08 (Hz)
nco_freq_cal_type_default        :      off (Hz)
nco_phase_offs                   :      0 (Degrees)
nco_prop_delay_comp              :      0 (ns)
nco_prop_delay_comp_en           :      True (ns)
offset_awg_path0                 :      0
offset_awg_path1                 :      0
sync_en                          :      True
thresholded_acq_marker_address   :      1
thresholded_acq_marker_en        :      False
thresholded_acq_marker_invert    :      False
thresholded_acq_rotation         :      0 (Degrees)
thresholded_acq_threshold        :      0
thresholded_acq_trigger_address  :      1
thresholded_acq_trigger_en       :      False
thresholded_acq_trigger_invert   :      False
trigger10_count_threshold        :      1
trigger10_threshold_invert       :      False
trigger11_count_threshold        :      1
trigger11_threshold_invert       :      False
trigger12_count_threshold        :      1
trigger12_threshold_invert       :      False
trigger13_count_threshold        :      1
trigger13_threshold_invert       :      False
trigger14_count_threshold        :      1
trigger14_threshold_invert       :      False
trigger15_count_threshold        :      1
trigger15_threshold_invert       :      False
trigger1_count_threshold         :      1
trigger1_threshold_invert        :      False
trigger2_count_threshold         :      1
trigger2_threshold_invert        :      False
trigger3_count_threshold         :      1
trigger3_threshold_invert        :      False
trigger4_count_threshold         :      1
trigger4_threshold_invert        :      False
trigger5_count_threshold         :      1
trigger5_threshold_invert        :      False
trigger6_count_threshold         :      1
trigger6_threshold_invert        :      False
trigger7_count_threshold         :      1
trigger7_threshold_invert        :      False
trigger8_count_threshold         :      1
trigger8_threshold_invert        :      False
trigger9_count_threshold         :      1
trigger9_threshold_invert        :      False
upsample_rate_awg_path0          :      0
upsample_rate_awg_path1          :      0
cluster0_module8_sequencer1:
        parameter                       value
--------------------------------------------------------------------------------
connect_acq                      :      off
connect_out0                     :      off
cont_mode_en_awg_path0           :      False
cont_mode_en_awg_path1           :      False
cont_mode_waveform_idx_awg_path0 :      0
cont_mode_waveform_idx_awg_path1 :      0
demod_en_acq                     :      False
gain_awg_path0                   :      1
gain_awg_path1                   :      1
integration_length_acq           :      1024
marker_ovr_en                    :      False
marker_ovr_value                 :      0
mixer_corr_gain_ratio            :      1
mixer_corr_phase_offset_degree   :      -0
mod_en_awg                       :      False
nco_freq                         :      0 (Hz)
nco_freq_cal_type_default        :      off (Hz)
nco_phase_offs                   :      0 (Degrees)
nco_prop_delay_comp              :      0 (ns)
nco_prop_delay_comp_en           :      False (ns)
offset_awg_path0                 :      0
offset_awg_path1                 :      0
sync_en                          :      False
thresholded_acq_marker_address   :      1
thresholded_acq_marker_en        :      False
thresholded_acq_marker_invert    :      False
thresholded_acq_rotation         :      0 (Degrees)
thresholded_acq_threshold        :      0
thresholded_acq_trigger_address  :      1
thresholded_acq_trigger_en       :      False
thresholded_acq_trigger_invert   :      False
trigger10_count_threshold        :      1
trigger10_threshold_invert       :      False
trigger11_count_threshold        :      1
trigger11_threshold_invert       :      False
trigger12_count_threshold        :      1
trigger12_threshold_invert       :      False
trigger13_count_threshold        :      1
trigger13_threshold_invert       :      False
trigger14_count_threshold        :      1
trigger14_threshold_invert       :      False
trigger15_count_threshold        :      1
trigger15_threshold_invert       :      False
trigger1_count_threshold         :      1
trigger1_threshold_invert        :      False
trigger2_count_threshold         :      1
trigger2_threshold_invert        :      False
trigger3_count_threshold         :      1
trigger3_threshold_invert        :      False
trigger4_count_threshold         :      1
trigger4_threshold_invert        :      False
trigger5_count_threshold         :      1
trigger5_threshold_invert        :      False
trigger6_count_threshold         :      1
trigger6_threshold_invert        :      False
trigger7_count_threshold         :      1
trigger7_threshold_invert        :      False
trigger8_count_threshold         :      1
trigger8_threshold_invert        :      False
trigger9_count_threshold         :      1
trigger9_threshold_invert        :      False
upsample_rate_awg_path0          :      0
upsample_rate_awg_path1          :      0
cluster0_module8_sequencer2:
        parameter                       value
--------------------------------------------------------------------------------
connect_acq                      :      off
connect_out0                     :      off
cont_mode_en_awg_path0           :      False
cont_mode_en_awg_path1           :      False
cont_mode_waveform_idx_awg_path0 :      0
cont_mode_waveform_idx_awg_path1 :      0
demod_en_acq                     :      False
gain_awg_path0                   :      1
gain_awg_path1                   :      1
integration_length_acq           :      1024
marker_ovr_en                    :      False
marker_ovr_value                 :      0
mixer_corr_gain_ratio            :      1
mixer_corr_phase_offset_degree   :      -0
mod_en_awg                       :      False
nco_freq                         :      0 (Hz)
nco_freq_cal_type_default        :      off (Hz)
nco_phase_offs                   :      0 (Degrees)
nco_prop_delay_comp              :      0 (ns)
nco_prop_delay_comp_en           :      False (ns)
offset_awg_path0                 :      0
offset_awg_path1                 :      0
sync_en                          :      False
thresholded_acq_marker_address   :      1
thresholded_acq_marker_en        :      False
thresholded_acq_marker_invert    :      False
thresholded_acq_rotation         :      0 (Degrees)
thresholded_acq_threshold        :      0
thresholded_acq_trigger_address  :      1
thresholded_acq_trigger_en       :      False
thresholded_acq_trigger_invert   :      False
trigger10_count_threshold        :      1
trigger10_threshold_invert       :      False
trigger11_count_threshold        :      1
trigger11_threshold_invert       :      False
trigger12_count_threshold        :      1
trigger12_threshold_invert       :      False
trigger13_count_threshold        :      1
trigger13_threshold_invert       :      False
trigger14_count_threshold        :      1
trigger14_threshold_invert       :      False
trigger15_count_threshold        :      1
trigger15_threshold_invert       :      False
trigger1_count_threshold         :      1
trigger1_threshold_invert        :      False
trigger2_count_threshold         :      1
trigger2_threshold_invert        :      False
trigger3_count_threshold         :      1
trigger3_threshold_invert        :      False
trigger4_count_threshold         :      1
trigger4_threshold_invert        :      False
trigger5_count_threshold         :      1
trigger5_threshold_invert        :      False
trigger6_count_threshold         :      1
trigger6_threshold_invert        :      False
trigger7_count_threshold         :      1
trigger7_threshold_invert        :      False
trigger8_count_threshold         :      1
trigger8_threshold_invert        :      False
trigger9_count_threshold         :      1
trigger9_threshold_invert        :      False
upsample_rate_awg_path0          :      0
upsample_rate_awg_path1          :      0
cluster0_module8_sequencer3:
        parameter                       value
--------------------------------------------------------------------------------
connect_acq                      :      off
connect_out0                     :      off
cont_mode_en_awg_path0           :      False
cont_mode_en_awg_path1           :      False
cont_mode_waveform_idx_awg_path0 :      0
cont_mode_waveform_idx_awg_path1 :      0
demod_en_acq                     :      False
gain_awg_path0                   :      1
gain_awg_path1                   :      1
integration_length_acq           :      1024
marker_ovr_en                    :      False
marker_ovr_value                 :      0
mixer_corr_gain_ratio            :      1
mixer_corr_phase_offset_degree   :      -0
mod_en_awg                       :      False
nco_freq                         :      0 (Hz)
nco_freq_cal_type_default        :      off (Hz)
nco_phase_offs                   :      0 (Degrees)
nco_prop_delay_comp              :      0 (ns)
nco_prop_delay_comp_en           :      False (ns)
offset_awg_path0                 :      0
offset_awg_path1                 :      0
sync_en                          :      False
thresholded_acq_marker_address   :      1
thresholded_acq_marker_en        :      False
thresholded_acq_marker_invert    :      False
thresholded_acq_rotation         :      0 (Degrees)
thresholded_acq_threshold        :      0
thresholded_acq_trigger_address  :      1
thresholded_acq_trigger_en       :      False
thresholded_acq_trigger_invert   :      False
trigger10_count_threshold        :      1
trigger10_threshold_invert       :      False
trigger11_count_threshold        :      1
trigger11_threshold_invert       :      False
trigger12_count_threshold        :      1
trigger12_threshold_invert       :      False
trigger13_count_threshold        :      1
trigger13_threshold_invert       :      False
trigger14_count_threshold        :      1
trigger14_threshold_invert       :      False
trigger15_count_threshold        :      1
trigger15_threshold_invert       :      False
trigger1_count_threshold         :      1
trigger1_threshold_invert        :      False
trigger2_count_threshold         :      1
trigger2_threshold_invert        :      False
trigger3_count_threshold         :      1
trigger3_threshold_invert        :      False
trigger4_count_threshold         :      1
trigger4_threshold_invert        :      False
trigger5_count_threshold         :      1
trigger5_threshold_invert        :      False
trigger6_count_threshold         :      1
trigger6_threshold_invert        :      False
trigger7_count_threshold         :      1
trigger7_threshold_invert        :      False
trigger8_count_threshold         :      1
trigger8_threshold_invert        :      False
trigger9_count_threshold         :      1
trigger9_threshold_invert        :      False
upsample_rate_awg_path0          :      0
upsample_rate_awg_path1          :      0
cluster0_module8_sequencer4:
        parameter                       value
--------------------------------------------------------------------------------
connect_acq                      :      off
connect_out0                     :      off
cont_mode_en_awg_path0           :      False
cont_mode_en_awg_path1           :      False
cont_mode_waveform_idx_awg_path0 :      0
cont_mode_waveform_idx_awg_path1 :      0
demod_en_acq                     :      False
gain_awg_path0                   :      1
gain_awg_path1                   :      1
integration_length_acq           :      1024
marker_ovr_en                    :      False
marker_ovr_value                 :      0
mixer_corr_gain_ratio            :      1
mixer_corr_phase_offset_degree   :      -0
mod_en_awg                       :      False
nco_freq                         :      0 (Hz)
nco_freq_cal_type_default        :      off (Hz)
nco_phase_offs                   :      0 (Degrees)
nco_prop_delay_comp              :      0 (ns)
nco_prop_delay_comp_en           :      False (ns)
offset_awg_path0                 :      0
offset_awg_path1                 :      0
sync_en                          :      False
thresholded_acq_marker_address   :      1
thresholded_acq_marker_en        :      False
thresholded_acq_marker_invert    :      False
thresholded_acq_rotation         :      0 (Degrees)
thresholded_acq_threshold        :      0
thresholded_acq_trigger_address  :      1
thresholded_acq_trigger_en       :      False
thresholded_acq_trigger_invert   :      False
trigger10_count_threshold        :      1
trigger10_threshold_invert       :      False
trigger11_count_threshold        :      1
trigger11_threshold_invert       :      False
trigger12_count_threshold        :      1
trigger12_threshold_invert       :      False
trigger13_count_threshold        :      1
trigger13_threshold_invert       :      False
trigger14_count_threshold        :      1
trigger14_threshold_invert       :      False
trigger15_count_threshold        :      1
trigger15_threshold_invert       :      False
trigger1_count_threshold         :      1
trigger1_threshold_invert        :      False
trigger2_count_threshold         :      1
trigger2_threshold_invert        :      False
trigger3_count_threshold         :      1
trigger3_threshold_invert        :      False
trigger4_count_threshold         :      1
trigger4_threshold_invert        :      False
trigger5_count_threshold         :      1
trigger5_threshold_invert        :      False
trigger6_count_threshold         :      1
trigger6_threshold_invert        :      False
trigger7_count_threshold         :      1
trigger7_threshold_invert        :      False
trigger8_count_threshold         :      1
trigger8_threshold_invert        :      False
trigger9_count_threshold         :      1
trigger9_threshold_invert        :      False
upsample_rate_awg_path0          :      0
upsample_rate_awg_path1          :      0
cluster0_module8_sequencer5:
        parameter                       value
--------------------------------------------------------------------------------
connect_acq                      :      off
connect_out0                     :      off
cont_mode_en_awg_path0           :      False
cont_mode_en_awg_path1           :      False
cont_mode_waveform_idx_awg_path0 :      0
cont_mode_waveform_idx_awg_path1 :      0
demod_en_acq                     :      False
gain_awg_path0                   :      1
gain_awg_path1                   :      1
integration_length_acq           :      1024
marker_ovr_en                    :      False
marker_ovr_value                 :      0
mixer_corr_gain_ratio            :      1
mixer_corr_phase_offset_degree   :      -0
mod_en_awg                       :      False
nco_freq                         :      0 (Hz)
nco_freq_cal_type_default        :      off (Hz)
nco_phase_offs                   :      0 (Degrees)
nco_prop_delay_comp              :      0 (ns)
nco_prop_delay_comp_en           :      False (ns)
offset_awg_path0                 :      0
offset_awg_path1                 :      0
sync_en                          :      False
thresholded_acq_marker_address   :      1
thresholded_acq_marker_en        :      False
thresholded_acq_marker_invert    :      False
thresholded_acq_rotation         :      0 (Degrees)
thresholded_acq_threshold        :      0
thresholded_acq_trigger_address  :      1
thresholded_acq_trigger_en       :      False
thresholded_acq_trigger_invert   :      False
trigger10_count_threshold        :      1
trigger10_threshold_invert       :      False
trigger11_count_threshold        :      1
trigger11_threshold_invert       :      False
trigger12_count_threshold        :      1
trigger12_threshold_invert       :      False
trigger13_count_threshold        :      1
trigger13_threshold_invert       :      False
trigger14_count_threshold        :      1
trigger14_threshold_invert       :      False
trigger15_count_threshold        :      1
trigger15_threshold_invert       :      False
trigger1_count_threshold         :      1
trigger1_threshold_invert        :      False
trigger2_count_threshold         :      1
trigger2_threshold_invert        :      False
trigger3_count_threshold         :      1
trigger3_threshold_invert        :      False
trigger4_count_threshold         :      1
trigger4_threshold_invert        :      False
trigger5_count_threshold         :      1
trigger5_threshold_invert        :      False
trigger6_count_threshold         :      1
trigger6_threshold_invert        :      False
trigger7_count_threshold         :      1
trigger7_threshold_invert        :      False
trigger8_count_threshold         :      1
trigger8_threshold_invert        :      False
trigger9_count_threshold         :      1
trigger9_threshold_invert        :      False
upsample_rate_awg_path0          :      0
upsample_rate_awg_path1          :      0
Status: OKAY, Flags: NONE, Slot flags: NONE