{ "cells": [ { "cell_type": "markdown", "id": "68a7beb3", "metadata": {}, "source": [ "Advanced sequencing\n", "================\n", "\n", "In this tutorial we will demonstrate advanced sequencer based operations, where we focus on waveform parametrization (see [Sequencer Operation](https://qblox-qblox-instruments.readthedocs-hosted.com/en/main/cluster/q1_sequence_processor.html#operation)). We will demonstrate this by creating a sequence that will show various sequencer features,\n", "including complex looping constructs, dynamic gain control, hardware-based modulation and marker output control.\n", "\n", "The sequence itself will use four waveform envelopes with a duration of 1μs each; a gaussian, a sine, a sawtooth and a block. We will have several nested loops\n", "in the sequence. The first loop will increase the wait period between the start of the iteration and playback of the waveform envelope and also increase the gain of\n", "the waveform envelope on every iteration. At the end of this loop a second loop will do the inverse operations. A third loop will loop over the first and\n", "second loops to iterate over the four waveform envelopes. And finally a fourth loop will function as an infinite loop over the third loop.\n", "At the same time, the sequence will also control marker output 1 and create a trigger point at the start of each iteration of the first and second loops as well an\n", "\"enable\" during playback. Finally, each waveform envelope will be modulated at 10MHz.\n", "\n", "The result of this sequence, when observed on an oscilloscope, will be iterating waveform envelopes that will be sliding over the modulation frequency with varying gain,\n", "encapsulated by an \"enable\" on the marker output. We highly recommend that you take a look at it, to get an impression of what is possible with the sequencers.\n", "\n", "We can perform this tutorial with a Cluster QCM/QRM . We use the term 'module' encompassing both QCM and QRM modules." ] }, { "cell_type": "markdown", "id": "0b4b0624", "metadata": { "tags": [] }, "source": [ "Setup\n", "-----\n", "\n", "First, we are going to import the required packages." ] }, { "cell_type": "code", "execution_count": 1, "id": "1b711745", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:28.778911Z", "iopub.status.busy": "2024-10-17T13:19:28.778132Z", "iopub.status.idle": "2024-10-17T13:19:30.751084Z", "shell.execute_reply": "2024-10-17T13:19:30.749651Z" } }, "outputs": [], "source": [ "from __future__ import annotations\n", "\n", "import json\n", "import math\n", "from typing import TYPE_CHECKING, Callable\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import scipy.signal\n", "from qcodes.instrument import find_or_create_instrument\n", "\n", "from qblox_instruments import Cluster, ClusterType\n", "\n", "if TYPE_CHECKING:\n", " from qblox_instruments.qcodes_drivers.module import Module" ] }, { "cell_type": "markdown", "id": "29e3ebb5", "metadata": {}, "source": [ "### Scan For Clusters\n", "\n", "We scan for the available devices connected via ethernet using the Plug & Play functionality of the Qblox Instruments package (see [Plug & Play](https://qblox-qblox-instruments.readthedocs-hosted.com/en/main/api_reference/tools.html#api-pnp) for more info)." ] }, { "cell_type": "markdown", "id": "aef78a0d", "metadata": {}, "source": [ "`!qblox-pnp list`" ] }, { "cell_type": "code", "execution_count": 2, "id": "64bc9df7", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:30.756051Z", "iopub.status.busy": "2024-10-17T13:19:30.755415Z", "iopub.status.idle": "2024-10-17T13:19:30.761553Z", "shell.execute_reply": "2024-10-17T13:19:30.760255Z" } }, "outputs": [], "source": [ "cluster_ip = \"10.10.200.42\"\n", "cluster_name = \"cluster0\"" ] }, { "cell_type": "markdown", "id": "fcf8d805", "metadata": {}, "source": [ "### Connect to Cluster\n", "\n", "We now make a connection with the Cluster." ] }, { "cell_type": "code", "execution_count": 3, "id": "d23e6c84", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:30.766017Z", "iopub.status.busy": "2024-10-17T13:19:30.765128Z", "iopub.status.idle": "2024-10-17T13:19:32.394943Z", "shell.execute_reply": "2024-10-17T13:19:32.393703Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "cluster = find_or_create_instrument(\n", " Cluster,\n", " recreate=True,\n", " name=cluster_name,\n", " identifier=cluster_ip,\n", " dummy_cfg=(\n", " {\n", " 2: ClusterType.CLUSTER_QCM,\n", " 4: ClusterType.CLUSTER_QRM,\n", " 6: ClusterType.CLUSTER_QCM_RF,\n", " 8: ClusterType.CLUSTER_QRM_RF,\n", " }\n", " if cluster_ip is None\n", " else None\n", " ),\n", ")" ] }, { "cell_type": "markdown", "id": "9186100b", "metadata": { "lines_to_next_cell": 2 }, "source": [ "#### Get connected modules" ] }, { "cell_type": "code", "execution_count": 4, "id": "41b1af19", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:32.399718Z", "iopub.status.busy": "2024-10-17T13:19:32.398721Z", "iopub.status.idle": "2024-10-17T13:19:32.406252Z", "shell.execute_reply": "2024-10-17T13:19:32.405023Z" } }, "outputs": [], "source": [ "def get_connected_modules(cluster: Cluster, filter_fn: Callable | None = None) -> dict[int, Module]:\n", " def checked_filter_fn(mod: ClusterType) -> bool:\n", " if filter_fn is not None:\n", " return filter_fn(mod)\n", " return True\n", "\n", " return {\n", " mod.slot_idx: mod for mod in cluster.modules if mod.present() and checked_filter_fn(mod)\n", " }" ] }, { "cell_type": "code", "execution_count": 5, "id": "e0ae7d62", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:32.410692Z", "iopub.status.busy": "2024-10-17T13:19:32.409747Z", "iopub.status.idle": "2024-10-17T13:19:32.442438Z", "shell.execute_reply": "2024-10-17T13:19:32.440651Z" } }, "outputs": [ { "data": { "text/plain": [ "{4: ,\n", " 17: }" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# QRM modules\n", "modules = get_connected_modules(cluster, lambda mod: mod.is_qrm_type and not mod.is_rf_type)\n", "modules" ] }, { "cell_type": "code", "execution_count": 6, "id": "59d2106e", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:32.446881Z", "iopub.status.busy": "2024-10-17T13:19:32.446119Z", "iopub.status.idle": "2024-10-17T13:19:32.451727Z", "shell.execute_reply": "2024-10-17T13:19:32.450412Z" }, "lines_to_next_cell": 0 }, "outputs": [], "source": [ "module = modules[4]" ] }, { "cell_type": "markdown", "id": "12c1be06", "metadata": {}, "source": [ "### Reset the Cluster\n", "\n", "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." ] }, { "cell_type": "code", "execution_count": 7, "id": "a67776ad", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:32.456546Z", "iopub.status.busy": "2024-10-17T13:19:32.455539Z", "iopub.status.idle": "2024-10-17T13:19:34.899628Z", "shell.execute_reply": "2024-10-17T13:19:34.898406Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Status: OKAY, Flags: NONE, Slot flags: NONE\n" ] } ], "source": [ "cluster.reset()\n", "print(cluster.get_system_status())" ] }, { "cell_type": "markdown", "id": "ab1efc45", "metadata": {}, "source": [ "Generate waveforms \n", "------------------\n", "\n", "Next, we need to create the gaussian, sine, sawtooth and block waveform envelopes for the sequence." ] }, { "cell_type": "code", "execution_count": 8, "id": "d41ee978", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:34.904413Z", "iopub.status.busy": "2024-10-17T13:19:34.903530Z", "iopub.status.idle": "2024-10-17T13:19:34.914028Z", "shell.execute_reply": "2024-10-17T13:19:34.912872Z" } }, "outputs": [], "source": [ "# Waveform parameters\n", "waveform_length = 1000 # nanoseconds\n", "\n", "# Waveform dictionary (data will hold the samples and index will be used to select the waveforms in the instrument).\n", "waveforms = {\n", " \"gaussian\": {\n", " \"data\": scipy.signal.windows.gaussian(waveform_length, std=0.12 * waveform_length).tolist(),\n", " \"index\": 0,\n", " },\n", " \"sine\": {\n", " \"data\": [math.sin((2 * math.pi / waveform_length) * i) for i in range(0, waveform_length)],\n", " \"index\": 1,\n", " },\n", " \"sawtooth\": {\n", " \"data\": [(1.0 / (waveform_length)) * i for i in range(0, waveform_length)],\n", " \"index\": 2,\n", " },\n", " \"block\": {\"data\": [1.0 for i in range(0, waveform_length)], \"index\": 3},\n", "}" ] }, { "cell_type": "markdown", "id": "5d706445", "metadata": {}, "source": [ "Let's plot the waveforms to see what we have created." ] }, { "cell_type": "code", "execution_count": 9, "id": "f4fdb833", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:34.918569Z", "iopub.status.busy": "2024-10-17T13:19:34.917665Z", "iopub.status.idle": "2024-10-17T13:19:35.423774Z", "shell.execute_reply": "2024-10-17T13:19:35.408810Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "time = np.arange(0, max(map(lambda d: len(d[\"data\"]), waveforms.values())), 1)\n", "fig, ax = plt.subplots(1, 1)\n", "\n", "for wf, d in waveforms.items():\n", " ax.plot(time[: len(d[\"data\"])], d[\"data\"], label=wf)\n", "\n", "ax.legend()\n", "ax.grid(alpha=1 / 10)\n", "ax.set_ylabel(\"Waveform primitive amplitude\")\n", "ax.set_xlabel(\"Time (ns)\")\n", "\n", "plt.draw()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "facdd7b5", "metadata": {}, "source": [ "Create Q1ASM program\n", "--------------------\n", "\n", "Now that we have the waveforms for the sequence, we need a Q1ASM program that sequences the waveforms as previously described." ] }, { "cell_type": "code", "execution_count": 10, "id": "a1d075ff", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:35.456970Z", "iopub.status.busy": "2024-10-17T13:19:35.456543Z", "iopub.status.idle": "2024-10-17T13:19:35.492317Z", "shell.execute_reply": "2024-10-17T13:19:35.483739Z" } }, "outputs": [], "source": [ "# Sequence program.\n", "seq_prog = \"\"\"\n", " wait_sync 4 #Wait for synchronization\n", " reset_ph #Reset absolute phase\n", " upd_param 4 #Update all parameters and wait 4ns\n", "start: move 4,R0 #Init number of waveforms\n", " move 0,R1 #Init waveform index\n", "\n", "mult_wave_loop: move 166,R2 #Init number of single wave loops (increasing wait)\n", " move 166,R3 #Init number of single wave loops (decreasing wait)\n", " move 24,R4 #Init number of dynamic wait time (total of 4us)\n", " move 3976,R5 #Init number of dynamic wait time remainder\n", " move 32768,R6 #Init gain (Maximum gain)\n", "\n", "sngl_wave_loop_0: move 800,R7 #Init number of long wait loops (total of 40ms)\n", " set_mrk 15 #Set marker to 0xF\n", " upd_param 4 #Update all parameters and wait 4ns\n", " set_mrk 0 #Set marker to 0\n", " upd_param 96 #Update all parameters and wait 96ns\n", "\n", " wait R4 #Dynamic wait\n", " add R4,24,R4 #Increase wait\n", "\n", " set_mrk 1 #Set marker to 1\n", " play R1,R1,996 #Play waveform and wait 996ns\n", " set_mrk 0 #Set marker to 0\n", " upd_param 4 #Update all parameters and wait for 4ns\n", "\n", " wait R5 #Compensate previous dynamic wait\n", " sub R5,24,R5 #Decrease wait\n", "\n", " sub R6,98,R6 #Decrease gain\n", " nop\n", " set_awg_gain R6,R6 #Set gain\n", "\n", "long_wait_loop_0: wait 50000 #Wait 50 us\n", " loop R7,@long_wait_loop_0 #Wait total of 40ms\n", " loop R2,@sngl_wave_loop_0 #Repeat single wave loop\n", "\n", "sngl_wave_loop_1: move 800,R7 #Init number of long wait loops (total of 40ms)\n", " set_mrk 15 #Set marker to 0xF\n", " upd_param 8 #Update all parameters and wait 8ns\n", " set_mrk 0 #Set marker to 0\n", " upd_param 92 #Update all parameters and wait 92ns\n", "\n", " wait R4 #Dynamic wait\n", " sub R4,24,R4 #Decrease wait\n", "\n", " set_mrk 1 #Set marker to 1\n", " play R1,R1,996 #Play waveform and wait 996ns\n", " set_mrk 0 #Set marker to 0\n", " upd_param 4 #Update all parameters and wait 4ns\n", "\n", " wait R5 #Compensate previous dynamic wait\n", " add R5,24,R5 #Increase wait\n", "\n", " sub R6,98,R6 #Decrease gain\n", " nop\n", " set_awg_gain R6,R6 #Set gain\n", "\n", "long_wait_loop_1: wait 50000 #Wait for 50 us\n", " loop R7,@long_wait_loop_1 #Wait total of 40ms\n", " loop R3,@sngl_wave_loop_1 #Repeat single wave loop\n", "\n", " add R1,1,R1 #Adjust waveform index\n", " loop R0,@mult_wave_loop #Repeat with next waveform envelope\n", " jmp @start #Repeat entire sequence\n", "\"\"\"" ] }, { "cell_type": "markdown", "id": "1f04f48c", "metadata": {}, "source": [ "Upload sequence\n", "---------------\n", "\n", "Now that we have the waveforms and Q1ASM program, we can combine them in a sequence stored in a JSON file." ] }, { "cell_type": "code", "execution_count": 11, "id": "00396543", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:35.500301Z", "iopub.status.busy": "2024-10-17T13:19:35.499870Z", "iopub.status.idle": "2024-10-17T13:19:35.722503Z", "shell.execute_reply": "2024-10-17T13:19:35.721391Z" } }, "outputs": [], "source": [ "# Add sequence to single dictionary and write to JSON file.\n", "sequence = {\n", " \"waveforms\": waveforms,\n", " \"weights\": {},\n", " \"acquisitions\": {},\n", " \"program\": seq_prog,\n", "}\n", "with open(\"sequence.json\", \"w\", encoding=\"utf-8\") as file:\n", " json.dump(sequence, file, indent=4)\n", " file.close()" ] }, { "cell_type": "markdown", "id": "c6ab087d", "metadata": {}, "source": [ "Let's write the JSON file to the instruments. We will use sequencer 0 and 1, which will drive outputs $\\text{O}^{[1-2]}$ and $\\text{O}^{[3-4]}$ respectively." ] }, { "cell_type": "code", "execution_count": 12, "id": "0d3976d7", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:35.727073Z", "iopub.status.busy": "2024-10-17T13:19:35.726684Z", "iopub.status.idle": "2024-10-17T13:19:36.049268Z", "shell.execute_reply": "2024-10-17T13:19:36.048071Z" } }, "outputs": [], "source": [ "# Upload sequence.\n", "module.sequencer0.sequence(\"sequence.json\")\n", "module.sequencer1.sequence(\"sequence.json\")" ] }, { "cell_type": "markdown", "id": "7a2f03d0", "metadata": {}, "source": [ "Play sequence\n", "-------------\n", "\n", "The sequence has been uploaded to the instrument. Now we need to configure the sequencers in the instrument to use the `wait_sync` instruction\n", "at the start of the Q1ASM program to synchronize and to enable the hardware-based modulation at 10MHz." ] }, { "cell_type": "code", "execution_count": 13, "id": "47a8351c", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:36.052609Z", "iopub.status.busy": "2024-10-17T13:19:36.052334Z", "iopub.status.idle": "2024-10-17T13:19:36.135782Z", "shell.execute_reply": "2024-10-17T13:19:36.135012Z" } }, "outputs": [], "source": [ "# Configure the sequencers to synchronize and enable modulation at 10MHz.\n", "module.sequencer0.sync_en(True)\n", "module.sequencer0.mod_en_awg(True)\n", "module.sequencer0.nco_freq(10e6)\n", "module.sequencer1.sync_en(True)\n", "module.sequencer1.mod_en_awg(True)\n", "module.sequencer1.nco_freq(10e6)\n", "\n", "# Map sequencers to specific outputs (but first disable all sequencer connections).\n", "module.disconnect_outputs()\n", "\n", "# If it is a QRM, we only map sequencer 0 to the outputs.\n", "module.sequencer0.connect_sequencer(\"out0_1\")\n", "if module.is_qcm_type:\n", " module.sequencer0.connect_sequencer(\"out2_3\")" ] }, { "cell_type": "markdown", "id": "16ba6247", "metadata": {}, "source": [ "Now let's start the sequence. If you want to observe the sequence, this is the time to connect an oscilloscope to marker output 1 and one or more\n", "of the four outputs. Configure the oscilloscope to trigger on marker output 1." ] }, { "cell_type": "code", "execution_count": 14, "id": "4ef3bdc9", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:36.138665Z", "iopub.status.busy": "2024-10-17T13:19:36.138438Z", "iopub.status.idle": "2024-10-17T13:19:36.156607Z", "shell.execute_reply": "2024-10-17T13:19:36.155848Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Status: OKAY, State: RUNNING, Info Flags: NONE, Warning Flags: NONE, Error Flags: NONE, Log: []\n", "Status: OKAY, State: RUNNING, Info Flags: NONE, Warning Flags: NONE, Error Flags: NONE, Log: []\n" ] } ], "source": [ "# Arm and start sequencers.\n", "module.arm_sequencer(0)\n", "module.arm_sequencer(1)\n", "module.start_sequencer()\n", "\n", "# Print status of sequencers.\n", "print(module.get_sequencer_status(0))\n", "print(module.get_sequencer_status(1))" ] }, { "cell_type": "markdown", "id": "c0cea81f", "metadata": {}, "source": [ "Before we continue, have you looked at the oscilloscope? Pretty nifty right? This is just an example. Imagine what else you can do with the power of\n", "the sequencers to control and/or speed up your experiments." ] }, { "cell_type": "markdown", "id": "4ac3d32d", "metadata": { "tags": [] }, "source": [ "Stop\n", "----\n", "\n", "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\n", "closing the connection by uncommenting the corresponding lines." ] }, { "cell_type": "code", "execution_count": 15, "id": "0987ae34", "metadata": { "execution": { "iopub.execute_input": "2024-10-17T13:19:36.159367Z", "iopub.status.busy": "2024-10-17T13:19:36.159144Z", "iopub.status.idle": "2024-10-17T13:19:42.113859Z", "shell.execute_reply": "2024-10-17T13:19:42.112567Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Status: OKAY, State: STOPPED, Info Flags: FORCED_STOP, Warning Flags: NONE, Error Flags: NONE, Log: []\n", "Status: OKAY, State: STOPPED, Info Flags: FORCED_STOP, Warning Flags: NONE, Error Flags: NONE, Log: []\n", "\n", "Snapshot:\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "cluster0_module4:\n", "\tparameter value\n", "--------------------------------------------------------------------------------\n", "in0_gain :\t-6 (dB)\n", "in0_offset :\t0 (V)\n", "in1_gain :\t-6 (dB)\n", "in1_offset :\t0 (V)\n", "marker0_exp0_config :\tbypassed \n", "marker0_exp1_config :\tbypassed \n", "marker0_exp2_config :\tbypassed \n", "marker0_exp3_config :\tbypassed \n", "marker0_fir_config :\tbypassed \n", "marker0_inv_en :\tFalse \n", "marker1_exp0_config :\tbypassed \n", "marker1_exp1_config :\tbypassed \n", "marker1_exp2_config :\tbypassed \n", "marker1_exp3_config :\tbypassed \n", "marker1_fir_config :\tbypassed \n", "marker1_inv_en :\tFalse \n", "marker2_exp0_config :\tbypassed \n", "marker2_exp1_config :\tbypassed \n", "marker2_exp2_config :\tbypassed \n", "marker2_exp3_config :\tbypassed \n", "marker2_fir_config :\tbypassed \n", "marker2_inv_en :\tFalse \n", "marker3_exp0_config :\tbypassed \n", "marker3_exp1_config :\tbypassed \n", "marker3_exp2_config :\tbypassed \n", "marker3_exp3_config :\tbypassed \n", "marker3_fir_config :\tbypassed \n", "marker3_inv_en :\tFalse \n", "out0_exp0_config :\tbypassed \n", "out0_exp1_config :\tbypassed \n", "out0_exp2_config :\tbypassed \n", "out0_exp3_config :\tbypassed \n", "out0_fir_config :\tbypassed \n", "out0_latency :\t0 (s)\n", "out0_offset :\t0 (V)\n", "out1_exp0_config :\tbypassed \n", "out1_exp1_config :\tbypassed \n", "out1_exp2_config :\tbypassed \n", "out1_exp3_config :\tbypassed \n", "out1_fir_config :\tbypassed \n", "out1_latency :\t0 (s)\n", "out1_offset :\t0 (V)\n", "present :\tTrue \n", "scope_acq_avg_mode_en_path0 :\tFalse \n", "scope_acq_avg_mode_en_path1 :\tFalse \n", "scope_acq_sequencer_select :\t0 \n", "scope_acq_trigger_level_path0 :\t0 \n", "scope_acq_trigger_level_path1 :\t0 \n", "scope_acq_trigger_mode_path0 :\tsequencer \n", "scope_acq_trigger_mode_path1 :\tsequencer \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "cluster0_module4_sequencer0:\n", "\tparameter value\n", "--------------------------------------------------------------------------------\n", "connect_acq_I :\tin0 \n", "connect_acq_Q :\tin1 \n", "connect_out0 :\tI \n", "connect_out1 :\tQ \n", "cont_mode_en_awg_path0 :\tFalse \n", "cont_mode_en_awg_path1 :\tFalse \n", "cont_mode_waveform_idx_awg_path0 :\t0 \n", "cont_mode_waveform_idx_awg_path1 :\t0 \n", "demod_en_acq :\tFalse \n", "gain_awg_path0 :\t1 \n", "gain_awg_path1 :\t1 \n", "integration_length_acq :\t1024 \n", "marker_ovr_en :\tFalse \n", "marker_ovr_value :\t0 \n", "mixer_corr_gain_ratio :\t1 \n", "mixer_corr_phase_offset_degree :\t-0 \n", "mod_en_awg :\tTrue \n", "nco_freq :\t1e+07 (Hz)\n", "nco_freq_cal_type_default :\toff (Hz)\n", "nco_phase_offs :\t0 (Degrees)\n", "nco_prop_delay_comp :\t0 (ns)\n", "nco_prop_delay_comp_en :\tFalse (ns)\n", "offset_awg_path0 :\t0 \n", "offset_awg_path1 :\t0 \n", "sync_en :\tTrue \n", "thresholded_acq_marker_address :\t1 \n", "thresholded_acq_marker_en :\tFalse \n", "thresholded_acq_marker_invert :\tFalse \n", "thresholded_acq_rotation :\t0 (Degrees)\n", "thresholded_acq_threshold :\t0 \n", "thresholded_acq_trigger_address :\t1 \n", "thresholded_acq_trigger_en :\tFalse \n", "thresholded_acq_trigger_invert :\tFalse \n", "trigger10_count_threshold :\t1 \n", "trigger10_threshold_invert :\tFalse \n", "trigger11_count_threshold :\t1 \n", "trigger11_threshold_invert :\tFalse \n", "trigger12_count_threshold :\t1 \n", "trigger12_threshold_invert :\tFalse \n", "trigger13_count_threshold :\t1 \n", "trigger13_threshold_invert :\tFalse \n", "trigger14_count_threshold :\t1 \n", "trigger14_threshold_invert :\tFalse \n", "trigger15_count_threshold :\t1 \n", "trigger15_threshold_invert :\tFalse \n", "trigger1_count_threshold :\t1 \n", "trigger1_threshold_invert :\tFalse \n", "trigger2_count_threshold :\t1 \n", "trigger2_threshold_invert :\tFalse \n", "trigger3_count_threshold :\t1 \n", "trigger3_threshold_invert :\tFalse \n", "trigger4_count_threshold :\t1 \n", "trigger4_threshold_invert :\tFalse \n", "trigger5_count_threshold :\t1 \n", "trigger5_threshold_invert :\tFalse \n", "trigger6_count_threshold :\t1 \n", "trigger6_threshold_invert :\tFalse \n", "trigger7_count_threshold :\t1 \n", "trigger7_threshold_invert :\tFalse \n", "trigger8_count_threshold :\t1 \n", "trigger8_threshold_invert :\tFalse \n", "trigger9_count_threshold :\t1 \n", "trigger9_threshold_invert :\tFalse \n", "ttl_acq_auto_bin_incr_en :\tFalse \n", "ttl_acq_input_select :\t0 \n", "ttl_acq_threshold :\t0 \n", "upsample_rate_awg_path0 :\t0 \n", "upsample_rate_awg_path1 :\t0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "cluster0_module4_sequencer1:\n", "\tparameter value\n", "--------------------------------------------------------------------------------\n", "connect_acq_I :\tin0 \n", "connect_acq_Q :\tin1 \n", "connect_out0 :\toff \n", "connect_out1 :\toff \n", "cont_mode_en_awg_path0 :\tFalse \n", "cont_mode_en_awg_path1 :\tFalse \n", "cont_mode_waveform_idx_awg_path0 :\t0 \n", "cont_mode_waveform_idx_awg_path1 :\t0 \n", "demod_en_acq :\tFalse \n", "gain_awg_path0 :\t1 \n", "gain_awg_path1 :\t1 \n", "integration_length_acq :\t1024 \n", "marker_ovr_en :\tFalse \n", "marker_ovr_value :\t0 \n", "mixer_corr_gain_ratio :\t1 \n", "mixer_corr_phase_offset_degree :\t-0 \n", "mod_en_awg :\tTrue \n", "nco_freq :\t1e+07 (Hz)\n", "nco_freq_cal_type_default :\toff (Hz)\n", "nco_phase_offs :\t0 (Degrees)\n", "nco_prop_delay_comp :\t0 (ns)\n", "nco_prop_delay_comp_en :\tFalse (ns)\n", "offset_awg_path0 :\t0 \n", "offset_awg_path1 :\t0 \n", "sync_en :\tTrue \n", "thresholded_acq_marker_address :\t1 \n", "thresholded_acq_marker_en :\tFalse \n", "thresholded_acq_marker_invert :\tFalse \n", "thresholded_acq_rotation :\t0 (Degrees)\n", "thresholded_acq_threshold :\t0 \n", "thresholded_acq_trigger_address :\t1 \n", "thresholded_acq_trigger_en :\tFalse \n", "thresholded_acq_trigger_invert :\tFalse \n", "trigger10_count_threshold :\t1 \n", "trigger10_threshold_invert :\tFalse \n", "trigger11_count_threshold :\t1 \n", "trigger11_threshold_invert :\tFalse \n", "trigger12_count_threshold :\t1 \n", "trigger12_threshold_invert :\tFalse \n", "trigger13_count_threshold :\t1 \n", "trigger13_threshold_invert :\tFalse \n", "trigger14_count_threshold :\t1 \n", "trigger14_threshold_invert :\tFalse \n", "trigger15_count_threshold :\t1 \n", "trigger15_threshold_invert :\tFalse \n", "trigger1_count_threshold :\t1 \n", "trigger1_threshold_invert :\tFalse \n", "trigger2_count_threshold :\t1 \n", "trigger2_threshold_invert :\tFalse \n", "trigger3_count_threshold :\t1 \n", "trigger3_threshold_invert :\tFalse \n", "trigger4_count_threshold :\t1 \n", "trigger4_threshold_invert :\tFalse \n", "trigger5_count_threshold :\t1 \n", "trigger5_threshold_invert :\tFalse \n", "trigger6_count_threshold :\t1 \n", "trigger6_threshold_invert :\tFalse \n", "trigger7_count_threshold :\t1 \n", "trigger7_threshold_invert :\tFalse \n", "trigger8_count_threshold :\t1 \n", "trigger8_threshold_invert :\tFalse \n", "trigger9_count_threshold :\t1 \n", "trigger9_threshold_invert :\tFalse \n", "ttl_acq_auto_bin_incr_en :\tFalse \n", "ttl_acq_input_select :\t0 \n", "ttl_acq_threshold :\t0 \n", "upsample_rate_awg_path0 :\t0 \n", "upsample_rate_awg_path1 :\t0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "cluster0_module4_sequencer2:\n", "\tparameter value\n", "--------------------------------------------------------------------------------\n", "connect_acq_I :\tin0 \n", "connect_acq_Q :\tin1 \n", "connect_out0 :\toff \n", "connect_out1 :\toff \n", "cont_mode_en_awg_path0 :\tFalse \n", "cont_mode_en_awg_path1 :\tFalse \n", "cont_mode_waveform_idx_awg_path0 :\t0 \n", "cont_mode_waveform_idx_awg_path1 :\t0 \n", "demod_en_acq :\tFalse \n", "gain_awg_path0 :\t1 \n", "gain_awg_path1 :\t1 \n", "integration_length_acq :\t1024 \n", "marker_ovr_en :\tFalse \n", "marker_ovr_value :\t0 \n", "mixer_corr_gain_ratio :\t1 \n", "mixer_corr_phase_offset_degree :\t-0 \n", "mod_en_awg :\tFalse \n", "nco_freq :\t0 (Hz)\n", "nco_freq_cal_type_default :\toff (Hz)\n", "nco_phase_offs :\t0 (Degrees)\n", "nco_prop_delay_comp :\t0 (ns)\n", "nco_prop_delay_comp_en :\tFalse (ns)\n", "offset_awg_path0 :\t0 \n", "offset_awg_path1 :\t0 \n", "sync_en :\tFalse \n", "thresholded_acq_marker_address :\t1 \n", "thresholded_acq_marker_en :\tFalse \n", "thresholded_acq_marker_invert :\tFalse \n", "thresholded_acq_rotation :\t0 (Degrees)\n", "thresholded_acq_threshold :\t0 \n", "thresholded_acq_trigger_address :\t1 \n", "thresholded_acq_trigger_en :\tFalse \n", "thresholded_acq_trigger_invert :\tFalse \n", "trigger10_count_threshold :\t1 \n", "trigger10_threshold_invert :\tFalse \n", "trigger11_count_threshold :\t1 \n", "trigger11_threshold_invert :\tFalse \n", "trigger12_count_threshold :\t1 \n", "trigger12_threshold_invert :\tFalse \n", "trigger13_count_threshold :\t1 \n", "trigger13_threshold_invert :\tFalse \n", "trigger14_count_threshold :\t1 \n", "trigger14_threshold_invert :\tFalse \n", "trigger15_count_threshold :\t1 \n", "trigger15_threshold_invert :\tFalse \n", "trigger1_count_threshold :\t1 \n", "trigger1_threshold_invert :\tFalse \n", "trigger2_count_threshold :\t1 \n", "trigger2_threshold_invert :\tFalse \n", "trigger3_count_threshold :\t1 \n", "trigger3_threshold_invert :\tFalse \n", "trigger4_count_threshold :\t1 \n", "trigger4_threshold_invert :\tFalse \n", "trigger5_count_threshold :\t1 \n", "trigger5_threshold_invert :\tFalse \n", "trigger6_count_threshold :\t1 \n", "trigger6_threshold_invert :\tFalse \n", "trigger7_count_threshold :\t1 \n", "trigger7_threshold_invert :\tFalse \n", "trigger8_count_threshold :\t1 \n", "trigger8_threshold_invert :\tFalse \n", "trigger9_count_threshold :\t1 \n", "trigger9_threshold_invert :\tFalse \n", "ttl_acq_auto_bin_incr_en :\tFalse \n", "ttl_acq_input_select :\t0 \n", "ttl_acq_threshold :\t0 \n", "upsample_rate_awg_path0 :\t0 \n", "upsample_rate_awg_path1 :\t0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "cluster0_module4_sequencer3:\n", "\tparameter value\n", "--------------------------------------------------------------------------------\n", "connect_acq_I :\tin0 \n", "connect_acq_Q :\tin1 \n", "connect_out0 :\toff \n", "connect_out1 :\toff \n", "cont_mode_en_awg_path0 :\tFalse \n", "cont_mode_en_awg_path1 :\tFalse \n", "cont_mode_waveform_idx_awg_path0 :\t0 \n", "cont_mode_waveform_idx_awg_path1 :\t0 \n", "demod_en_acq :\tFalse \n", "gain_awg_path0 :\t1 \n", "gain_awg_path1 :\t1 \n", "integration_length_acq :\t1024 \n", "marker_ovr_en :\tFalse \n", "marker_ovr_value :\t0 \n", "mixer_corr_gain_ratio :\t1 \n", "mixer_corr_phase_offset_degree :\t-0 \n", "mod_en_awg :\tFalse \n", "nco_freq :\t0 (Hz)\n", "nco_freq_cal_type_default :\toff (Hz)\n", "nco_phase_offs :\t0 (Degrees)\n", "nco_prop_delay_comp :\t0 (ns)\n", "nco_prop_delay_comp_en :\tFalse (ns)\n", "offset_awg_path0 :\t0 \n", "offset_awg_path1 :\t0 \n", "sync_en :\tFalse \n", "thresholded_acq_marker_address :\t1 \n", "thresholded_acq_marker_en :\tFalse \n", "thresholded_acq_marker_invert :\tFalse \n", "thresholded_acq_rotation :\t0 (Degrees)\n", "thresholded_acq_threshold :\t0 \n", "thresholded_acq_trigger_address :\t1 \n", "thresholded_acq_trigger_en :\tFalse \n", "thresholded_acq_trigger_invert :\tFalse \n", "trigger10_count_threshold :\t1 \n", "trigger10_threshold_invert :\tFalse \n", "trigger11_count_threshold :\t1 \n", "trigger11_threshold_invert :\tFalse \n", "trigger12_count_threshold :\t1 \n", "trigger12_threshold_invert :\tFalse \n", "trigger13_count_threshold :\t1 \n", "trigger13_threshold_invert :\tFalse \n", "trigger14_count_threshold :\t1 \n", "trigger14_threshold_invert :\tFalse \n", "trigger15_count_threshold :\t1 \n", "trigger15_threshold_invert :\tFalse \n", "trigger1_count_threshold :\t1 \n", "trigger1_threshold_invert :\tFalse \n", "trigger2_count_threshold :\t1 \n", "trigger2_threshold_invert :\tFalse \n", "trigger3_count_threshold :\t1 \n", "trigger3_threshold_invert :\tFalse \n", "trigger4_count_threshold :\t1 \n", "trigger4_threshold_invert :\tFalse \n", "trigger5_count_threshold :\t1 \n", "trigger5_threshold_invert :\tFalse \n", "trigger6_count_threshold :\t1 \n", "trigger6_threshold_invert :\tFalse \n", "trigger7_count_threshold :\t1 \n", "trigger7_threshold_invert :\tFalse \n", "trigger8_count_threshold :\t1 \n", "trigger8_threshold_invert :\tFalse \n", "trigger9_count_threshold :\t1 \n", "trigger9_threshold_invert :\tFalse \n", "ttl_acq_auto_bin_incr_en :\tFalse \n", "ttl_acq_input_select :\t0 \n", "ttl_acq_threshold :\t0 \n", "upsample_rate_awg_path0 :\t0 \n", "upsample_rate_awg_path1 :\t0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "cluster0_module4_sequencer4:\n", "\tparameter value\n", "--------------------------------------------------------------------------------\n", "connect_acq_I :\tin0 \n", "connect_acq_Q :\tin1 \n", "connect_out0 :\toff \n", "connect_out1 :\toff \n", "cont_mode_en_awg_path0 :\tFalse \n", "cont_mode_en_awg_path1 :\tFalse \n", "cont_mode_waveform_idx_awg_path0 :\t0 \n", "cont_mode_waveform_idx_awg_path1 :\t0 \n", "demod_en_acq :\tFalse \n", "gain_awg_path0 :\t1 \n", "gain_awg_path1 :\t1 \n", "integration_length_acq :\t1024 \n", "marker_ovr_en :\tFalse \n", "marker_ovr_value :\t0 \n", "mixer_corr_gain_ratio :\t1 \n", "mixer_corr_phase_offset_degree :\t-0 \n", "mod_en_awg :\tFalse \n", "nco_freq :\t0 (Hz)\n", "nco_freq_cal_type_default :\toff (Hz)\n", "nco_phase_offs :\t0 (Degrees)\n", "nco_prop_delay_comp :\t0 (ns)\n", "nco_prop_delay_comp_en :\tFalse (ns)\n", "offset_awg_path0 :\t0 \n", "offset_awg_path1 :\t0 \n", "sync_en :\tFalse \n", "thresholded_acq_marker_address :\t1 \n", "thresholded_acq_marker_en :\tFalse \n", "thresholded_acq_marker_invert :\tFalse \n", "thresholded_acq_rotation :\t0 (Degrees)\n", "thresholded_acq_threshold :\t0 \n", "thresholded_acq_trigger_address :\t1 \n", "thresholded_acq_trigger_en :\tFalse \n", "thresholded_acq_trigger_invert :\tFalse \n", "trigger10_count_threshold :\t1 \n", "trigger10_threshold_invert :\tFalse \n", "trigger11_count_threshold :\t1 \n", "trigger11_threshold_invert :\tFalse \n", "trigger12_count_threshold :\t1 \n", "trigger12_threshold_invert :\tFalse \n", "trigger13_count_threshold :\t1 \n", "trigger13_threshold_invert :\tFalse \n", "trigger14_count_threshold :\t1 \n", "trigger14_threshold_invert :\tFalse \n", "trigger15_count_threshold :\t1 \n", "trigger15_threshold_invert :\tFalse \n", "trigger1_count_threshold :\t1 \n", "trigger1_threshold_invert :\tFalse \n", "trigger2_count_threshold :\t1 \n", "trigger2_threshold_invert :\tFalse \n", "trigger3_count_threshold :\t1 \n", "trigger3_threshold_invert :\tFalse \n", "trigger4_count_threshold :\t1 \n", "trigger4_threshold_invert :\tFalse \n", "trigger5_count_threshold :\t1 \n", "trigger5_threshold_invert :\tFalse \n", "trigger6_count_threshold :\t1 \n", "trigger6_threshold_invert :\tFalse \n", "trigger7_count_threshold :\t1 \n", "trigger7_threshold_invert :\tFalse \n", "trigger8_count_threshold :\t1 \n", "trigger8_threshold_invert :\tFalse \n", "trigger9_count_threshold :\t1 \n", "trigger9_threshold_invert :\tFalse \n", "ttl_acq_auto_bin_incr_en :\tFalse \n", "ttl_acq_input_select :\t0 \n", "ttl_acq_threshold :\t0 \n", "upsample_rate_awg_path0 :\t0 \n", "upsample_rate_awg_path1 :\t0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "cluster0_module4_sequencer5:\n", "\tparameter value\n", "--------------------------------------------------------------------------------\n", "connect_acq_I :\tin0 \n", "connect_acq_Q :\tin1 \n", "connect_out0 :\toff \n", "connect_out1 :\toff \n", "cont_mode_en_awg_path0 :\tFalse \n", "cont_mode_en_awg_path1 :\tFalse \n", "cont_mode_waveform_idx_awg_path0 :\t0 \n", "cont_mode_waveform_idx_awg_path1 :\t0 \n", "demod_en_acq :\tFalse \n", "gain_awg_path0 :\t1 \n", "gain_awg_path1 :\t1 \n", "integration_length_acq :\t1024 \n", "marker_ovr_en :\tFalse \n", "marker_ovr_value :\t0 \n", "mixer_corr_gain_ratio :\t1 \n", "mixer_corr_phase_offset_degree :\t-0 \n", "mod_en_awg :\tFalse \n", "nco_freq :\t0 (Hz)\n", "nco_freq_cal_type_default :\toff (Hz)\n", "nco_phase_offs :\t0 (Degrees)\n", "nco_prop_delay_comp :\t0 (ns)\n", "nco_prop_delay_comp_en :\tFalse (ns)\n", "offset_awg_path0 :\t0 \n", "offset_awg_path1 :\t0 \n", "sync_en :\tFalse \n", "thresholded_acq_marker_address :\t1 \n", "thresholded_acq_marker_en :\tFalse \n", "thresholded_acq_marker_invert :\tFalse \n", "thresholded_acq_rotation :\t0 (Degrees)\n", "thresholded_acq_threshold :\t0 \n", "thresholded_acq_trigger_address :\t1 \n", "thresholded_acq_trigger_en :\tFalse \n", "thresholded_acq_trigger_invert :\tFalse \n", "trigger10_count_threshold :\t1 \n", "trigger10_threshold_invert :\tFalse \n", "trigger11_count_threshold :\t1 \n", "trigger11_threshold_invert :\tFalse \n", "trigger12_count_threshold :\t1 \n", "trigger12_threshold_invert :\tFalse \n", "trigger13_count_threshold :\t1 \n", "trigger13_threshold_invert :\tFalse \n", "trigger14_count_threshold :\t1 \n", "trigger14_threshold_invert :\tFalse \n", "trigger15_count_threshold :\t1 \n", "trigger15_threshold_invert :\tFalse \n", "trigger1_count_threshold :\t1 \n", "trigger1_threshold_invert :\tFalse \n", "trigger2_count_threshold :\t1 \n", "trigger2_threshold_invert :\tFalse \n", "trigger3_count_threshold :\t1 \n", "trigger3_threshold_invert :\tFalse \n", "trigger4_count_threshold :\t1 \n", "trigger4_threshold_invert :\tFalse \n", "trigger5_count_threshold :\t1 \n", "trigger5_threshold_invert :\tFalse \n", "trigger6_count_threshold :\t1 \n", "trigger6_threshold_invert :\tFalse \n", "trigger7_count_threshold :\t1 \n", "trigger7_threshold_invert :\tFalse \n", "trigger8_count_threshold :\t1 \n", "trigger8_threshold_invert :\tFalse \n", "trigger9_count_threshold :\t1 \n", "trigger9_threshold_invert :\tFalse \n", "ttl_acq_auto_bin_incr_en :\tFalse \n", "ttl_acq_input_select :\t0 \n", "ttl_acq_threshold :\t0 \n", "upsample_rate_awg_path0 :\t0 \n", "upsample_rate_awg_path1 :\t0 \n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Status: OKAY, Flags: NONE, Slot flags: NONE\n" ] } ], "source": [ "# Stop both sequencers.\n", "module.stop_sequencer()\n", "\n", "# Print status of both sequencers (should now say it is stopped).\n", "print(module.get_sequencer_status(0))\n", "print(module.get_sequencer_status(1))\n", "print()\n", "\n", "print(\"Snapshot:\")\n", "module.print_readable_snapshot(update=True)\n", "\n", "# Reset the cluster\n", "cluster.reset()\n", "print(cluster.get_system_status())" ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "tags,-all", "main_language": "python", "notebook_metadata_filter": "-all" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.20" } }, "nbformat": 4, "nbformat_minor": 5 }