{ "cells": [ { "cell_type": "markdown", "id": "b6c43f49", "metadata": {}, "source": [ "# Numerically Controlled Oscillator\n", "\n", "In this tutorial we will demonstrate how to use the numerically controlled oscillator (NCO) during an experiment by [Changing the modulation frequency](#Frequency-sweeps), e.g. for rapid spectroscopy measurements\n", "\n", "We will show this by using a [QRM](https://qblox-qblox-instruments.readthedocs-hosted.com/en/main/cluster/qrm.html) and directly connecting outputs\n", "$\\text{O}^{[1-2]}$ to inputs $\\text{I}^{[1-2]}$ respectively. We will then use the QRM's sequencers to sequence waveforms on\n", "the outputs and simultaneously acquire the resulting waveforms on the inputs.\n", "\n", "Whilst this tutorial is for the baseband modules, a similar procedure for spectroscopy with RF modules can be found in the [RF Control](https://qblox-qblox-instruments.readthedocs-hosted.com/en/main/tutorials/q1asm_tutorials/basic/rf/rf_control.html) tutorial.\n", "\n", "## Getting Started\n", "\n", "### How the NCO works\n", "\n", "#### Modulation\n", "\n", "The NCO modulates any AWG output at a certain frequency, such that we only need to store the envelope of any waveform to create a wave with the correct frequency and phase. To enable IQ up- and downconversion to RF frequencies, the device will generate a phase shifted signal on both signal paths.\n", "\n", "If modulation is enabled, the value of the NCO ($f$) will be multiplied with the awg ($z(t)$) output and forwarded to path 0/1 as follows:\n", "\n", "\\begin{equation*}\n", "z_{\\text{mod}, 0/1} (t) = z(t) \\cdot e^{\\pm i 2 \\pi f t}\n", "\\end{equation*}\n", "\n", "These two outputs can then be used within a QRM-RF module or by an external IQ mixer to generate RF pulses. Each path, 0/1, will have two components (real and imaginary) referred to as I and Q. However, the NCO can also be operated in real mode which will create a direct modulated output.\n", "\n", "#### Demodulation\n", "Usually, we are interested in the envelope of the acquired signal instead of the oscillating values, in particular when integrating. Therefore, the NCO can also be used to demodulate the signal before integration.\n", "If demodulation is enabled, the signal is again multiplied with the NCO, this time with a prefactor $\\sqrt{2}$. Thus, if we modulate and demodulate the same signal, we obtain the original awg output:\n", "\n", "\\begin{equation*}\n", "\\text{path}_{0, \\text{in}} = \\sqrt{2}(\\cos(\\omega t)\\text{in}_0-\\sin(\\omega t)\\text{in}_1)\n", "= \\cos(\\omega t)\\cos(\\omega t)\\text{awg}_0+\\sin(\\omega t)\\sin(\\omega t)\\text{awg}_0 = \\text{awg}_0\n", "\\tag{3}\n", "\\end{equation*}\n", "\n", "\\begin{equation*}\n", "\\text{path}_{1, \\text{in}} = \\sqrt{2}(\\cos(\\omega t)\\text{in}_1+\\sin(\\omega t)\\text{in}_0)\n", "= \\cos(\\omega t)\\cos(\\omega t)\\text{awg}_1+\\sin(\\omega t)\\sin(\\omega t)\\text{awg}_1 = \\text{awg}_1\n", "\\tag{4}\n", "\\end{equation*}\n", "\n" ] }, { "cell_type": "markdown", "id": "5934a575", "metadata": {}, "source": [ "### Setup\n", "\n", "First, we are going to import the required packages and connect to the instrument." ] }, { "cell_type": "code", "execution_count": 1, "id": "7a2da8d2", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:01.948349Z", "iopub.status.busy": "2024-03-28T14:32:01.945714Z", "iopub.status.idle": "2024-03-28T14:32:08.462126Z", "shell.execute_reply": "2024-03-28T14:32:08.457057Z" } }, "outputs": [], "source": [ "\n", "from __future__ import annotations\n", "\n", "import json\n", "from typing import TYPE_CHECKING, Callable\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from qcodes.instrument import find_or_create_instrument\n", "from scipy.signal import spectrogram, welch\n", "\n", "from qblox_instruments import Cluster, ClusterType\n", "\n", "if TYPE_CHECKING:\n", " from numpy.typing import NDArray\n", "\n", " from qblox_instruments.qcodes_drivers.module import QcmQrm" ] }, { "cell_type": "markdown", "id": "0a1cde14", "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": "code", "execution_count": 2, "id": "ecf2a8ba", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:08.481282Z", "iopub.status.busy": "2024-03-28T14:32:08.478382Z", "iopub.status.idle": "2024-03-28T14:32:13.233952Z", "shell.execute_reply": "2024-03-28T14:32:13.232943Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Devices:\n", " - 10.10.200.13 via 192.168.207.146/24 (reconfiguration needed!): cluster_mm 0.6.2 with name \"QSE_1\" and serial number 00015_2321_005\n", " - 10.10.200.42 via 192.168.207.146/24 (reconfiguration needed!): cluster_mm 0.7.0 with name \"QAE-I\" and serial number 00015_2321_004\n", " - 10.10.200.43 via 192.168.207.146/24 (reconfiguration needed!): cluster_mm 0.6.2 with name \"QAE-2\" and serial number 00015_2206_003\n", " - 10.10.200.50 via 192.168.207.146/24 (reconfiguration needed!): cluster_mm 0.7.0 with name \"cluster-mm\" and serial number 00015_2219_003\n", " - 10.10.200.53 via 192.168.207.146/24 (reconfiguration needed!): cluster_mm 0.7.0 with name \"cluster-mm\" and serial number 00015_2320_004\n", " - 10.10.200.70 via 192.168.207.146/24 (reconfiguration needed!): cluster_mm 0.6.1 with name \"cluster-mm\" and serial number 123-456-789\n", " - 10.10.200.80 via 192.168.207.146/24 (reconfiguration needed!): cluster_mm 0.6.1 with name \"cluster-mm\" and serial number not_valid\n" ] } ], "source": [ "!qblox-pnp list" ] }, { "cell_type": "code", "execution_count": 3, "id": "c64861d5", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:13.239967Z", "iopub.status.busy": "2024-03-28T14:32:13.238967Z", "iopub.status.idle": "2024-03-28T14:32:13.250195Z", "shell.execute_reply": "2024-03-28T14:32:13.248564Z" } }, "outputs": [], "source": [ "cluster_ip = \"10.10.200.42\"\n", "cluster_name = \"cluster0\"" ] }, { "cell_type": "markdown", "id": "e10d89a0", "metadata": {}, "source": [ "### Connect to Cluster\n", "\n", "We now make a connection with the Cluster." ] }, { "cell_type": "code", "execution_count": 4, "id": "68b5caf6", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:13.256128Z", "iopub.status.busy": "2024-03-28T14:32:13.255129Z", "iopub.status.idle": "2024-03-28T14:32:14.293361Z", "shell.execute_reply": "2024-03-28T14:32:14.292359Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "\n", "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": "4cafbe78", "metadata": { "lines_to_next_cell": 2 }, "source": [ "#### Get connected modules" ] }, { "cell_type": "code", "execution_count": 5, "id": "feef0c7f", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:14.297681Z", "iopub.status.busy": "2024-03-28T14:32:14.297681Z", "iopub.status.idle": "2024-03-28T14:32:14.309876Z", "shell.execute_reply": "2024-03-28T14:32:14.307766Z" } }, "outputs": [], "source": [ "def get_connected_modules(cluster: Cluster, filter_fn: Callable | None = None) -> dict[int, QcmQrm]:\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": 6, "id": "21f231eb", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:14.315416Z", "iopub.status.busy": "2024-03-28T14:32:14.314334Z", "iopub.status.idle": "2024-03-28T14:32:14.433274Z", "shell.execute_reply": "2024-03-28T14:32:14.432164Z" } }, "outputs": [ { "data": { "text/plain": [ "{4: }" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# QRM baseband 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": 7, "id": "142cec8c", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:14.439843Z", "iopub.status.busy": "2024-03-28T14:32:14.438836Z", "iopub.status.idle": "2024-03-28T14:32:14.448643Z", "shell.execute_reply": "2024-03-28T14:32:14.447610Z" }, "lines_to_next_cell": 0 }, "outputs": [], "source": [ "readout_module = modules[4]" ] }, { "cell_type": "markdown", "id": "6fffefb1", "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": 8, "id": "27d687ab", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:14.452664Z", "iopub.status.busy": "2024-03-28T14:32:14.451664Z", "iopub.status.idle": "2024-03-28T14:32:17.870421Z", "shell.execute_reply": "2024-03-28T14:32:17.869426Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Status: OKAY, Flags: NONE, Slot flags: NONE\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "c:\\work\\code\\qblox_instruments_install\\qblox_instruments\\native\\generic_func.py:1033: FutureWarning: \n", " After June 2024, this feature is subject to removal in future releases.\n", " Transition to an alternative is advised.\n", " See https://qblox-qblox-instruments.readthedocs-hosted.com/en/main/getting_started/deprecated.html\n", " \n", " warnings.warn(\n", "c:\\work\\code\\qblox_instruments_install\\qblox_instruments\\native\\generic_func.py:77: FutureWarning: \n", " After June 2024, this feature is subject to removal in future releases.\n", " Transition to an alternative is advised.\n", " See https://qblox-qblox-instruments.readthedocs-hosted.com/en/main/getting_started/deprecated.html\n", " \n", " self._deprecation_warning()\n", "c:\\work\\code\\qblox_instruments_install\\qblox_instruments\\native\\generic_func.py:129: FutureWarning: \n", " After June 2024, this feature is subject to removal in future releases.\n", " Transition to an alternative is advised.\n", " See https://qblox-qblox-instruments.readthedocs-hosted.com/en/main/getting_started/deprecated.html\n", " \n", " self._deprecation_warning()\n" ] } ], "source": [ "cluster.reset()\n", "print(cluster.get_system_state())" ] }, { "cell_type": "markdown", "id": "8083ffef", "metadata": {}, "source": [ "Frequency sweeps \n", "------------------------------\n", "One of the most common experiments is to test the frequency response of the system, e.g. to find the resonance frequencies of a qubit or a resonator. For the purpose of this tutorial, we will sweep the full frequency range supported by the QRM. To improve accuracy we can use the maximum integration time and multiple averages. This does not change the overall measurement time much, as most of it is used for the setup." ] }, { "cell_type": "code", "execution_count": 9, "id": "75c67d9e", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:17.875167Z", "iopub.status.busy": "2024-03-28T14:32:17.875167Z", "iopub.status.idle": "2024-03-28T14:32:17.885661Z", "shell.execute_reply": "2024-03-28T14:32:17.884571Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "start_freq = -500e6\n", "stop_freq = 500e6\n", "\n", "n_averages = 10\n", "MAXIMUM_SCOPE_ACQUISITION_LENGTH = 16384" ] }, { "cell_type": "markdown", "id": "32310043", "metadata": { "lines_to_next_cell": 2 }, "source": [ "In this tutorial, we will analyze the raw data measured by the scope acquisition of the QRM. For this we will define a simple helper function using [scipy.signal.spectrogram](https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.spectrogram.html) and [scipy.signal.welch](https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.welch.html). The spectrogram shows the frequency spectrum of the QRM output as a function of time, to visualize the frequency sweeps we are doing. Welch's method is used to compute the input power as a function of frequency (power spectral density). This way we obtain the response of the system to find features of interest, e.g. a resonance." ] }, { "cell_type": "code", "execution_count": 10, "id": "eada59af", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:17.890924Z", "iopub.status.busy": "2024-03-28T14:32:17.890924Z", "iopub.status.idle": "2024-03-28T14:32:17.901707Z", "shell.execute_reply": "2024-03-28T14:32:17.900567Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "# Power as function of frequency and time by chunking the data\n", "def plot_spectrogram(time_series: np.ndarray) -> None:\n", " f_sample = 1e9 # All devices have 1 GSPS sample rate\n", " fig, ax = plt.subplots(1, 2)\n", "\n", " f, t, Sxx = spectrogram(time_series, f_sample, return_onesided=False, detrend=False)\n", "\n", " idx = np.argsort(f)\n", " f = f[idx] / 1e6\n", " Sxx = Sxx[idx]\n", "\n", " spec = ax[0].pcolormesh(t, f, Sxx, shading=\"auto\", cmap=\"YlOrRd\")\n", " cb = fig.colorbar(spec)\n", " cb.set_label(\"Power Spectral Density [V$^2$/Hz]\")\n", " ax[0].set_ylabel(\"Frequency [MHz]\")\n", " ax[0].set_xlabel(\"Time [s]\")\n", "\n", " f, Pxx = welch(time_series, f_sample, return_onesided=False, detrend=False)\n", "\n", " idx = np.argsort(f)\n", " f = f[idx] / 1e6\n", " Pxx = Pxx[idx]\n", "\n", " ax[1].semilogy(f, Pxx)\n", " ax[1].set_xlabel(\"Frequency [MHz]\")\n", " ax[1].set_ylabel(\"Power Spectral Density [V$^2$/Hz]\")\n", " fig.tight_layout()\n", " plt.show()" ] }, { "cell_type": "markdown", "id": "62a7bf3e", "metadata": { "lines_to_next_cell": 2 }, "source": [ "And two more helper functions for plotting the amplitude of an array of I, Q values and a scope acquisition:" ] }, { "cell_type": "code", "execution_count": 11, "id": "85ebce13", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:17.906814Z", "iopub.status.busy": "2024-03-28T14:32:17.906814Z", "iopub.status.idle": "2024-03-28T14:32:17.917903Z", "shell.execute_reply": "2024-03-28T14:32:17.916638Z" } }, "outputs": [], "source": [ "def plot_amplitude(x: NDArray, I_data: NDArray, Q_data: NDArray) -> None:\n", " amplitude = np.abs(I_data + 1j * Q_data)\n", "\n", " plt.plot(x / 1e6, amplitude)\n", " plt.xlabel(\"Frequency [MHz]\")\n", " plt.ylabel(\"Integration [V]\")\n", " plt.show()\n", "\n", "\n", "def plot_scope(trace: NDArray, t_min: int, t_max: int) -> None:\n", " x = np.arange(t_min, t_max)\n", " plt.plot(x, np.real(trace[t_min:t_max]))\n", " plt.plot(x, np.imag(trace[t_min:t_max]))\n", " plt.ylabel(\"Scope [V]\")\n", " plt.xlabel(\"Time [ns]\")\n", " plt.show()" ] }, { "cell_type": "markdown", "id": "e631b7a8", "metadata": {}, "source": [ "### Setting up the QRM\n", "We set up a modulated DC offset:" ] }, { "cell_type": "code", "execution_count": 12, "id": "dba33ceb", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:17.922033Z", "iopub.status.busy": "2024-03-28T14:32:17.920981Z", "iopub.status.idle": "2024-03-28T14:32:18.100943Z", "shell.execute_reply": "2024-03-28T14:32:18.099963Z" } }, "outputs": [], "source": [ "readout_module.disconnect_outputs()\n", "readout_module.disconnect_inputs()\n", "\n", "# Configure channel map\n", "readout_module.sequencer0.connect_sequencer(\"io0_1\")\n", "\n", "# Set DC Offset\n", "readout_module.sequencer0.offset_awg_path0(1)\n", "readout_module.sequencer0.offset_awg_path1(1)\n", "\n", "# Enable modulation and demodulation. Note that the scope is not demodulated\n", "readout_module.sequencer0.mod_en_awg(True)\n", "readout_module.sequencer0.demod_en_acq(True)\n", "\n", "# Enable hardware averaging for the scope\n", "readout_module.scope_acq_avg_mode_en_path0(True)\n", "readout_module.scope_acq_avg_mode_en_path1(True)\n", "\n", "readout_module.sequencer0.integration_length_acq(MAXIMUM_SCOPE_ACQUISITION_LENGTH)" ] }, { "cell_type": "markdown", "id": "a9c248c3", "metadata": {}, "source": [ "### NCO sweep controlled by the host computer\n", "As a baseline, we will run a simple frequency sweep controlled by the host computer using QCoDeS. We do this by setting a DC offset and modulating it with the NCO. This is quite slow, so we will only measure 200 steps to keep the measurement time reasonable." ] }, { "cell_type": "code", "execution_count": 13, "id": "34a8fb4c", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:18.105964Z", "iopub.status.busy": "2024-03-28T14:32:18.104963Z", "iopub.status.idle": "2024-03-28T14:32:18.116854Z", "shell.execute_reply": "2024-03-28T14:32:18.114767Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Step size 5.0 MHz\n" ] } ], "source": [ "n_steps = 200\n", "\n", "step_freq = (stop_freq - start_freq) / n_steps\n", "print(f\"Step size {step_freq/1e6} MHz\")\n", "\n", "nco_sweep_range = np.arange(start_freq, stop_freq, step_freq)" ] }, { "cell_type": "markdown", "id": "095535bc", "metadata": {}, "source": [ "Now we set up a simple program that acquires data and averages. The frequency will be set later with the QCoDeS interface." ] }, { "cell_type": "markdown", "id": "5766b256", "metadata": {}, "source": [ "Note: While most operations and parameters are executed/updated on a 1 ns timegrid, the instructions that operate on the sequencer’s NCOs (e.g. set_freq, reset_ph, set_ph, set_ph_delta) are updated on a 4 ns timegrid. The minimum time between frequency changes is 8 ns." ] }, { "cell_type": "code", "execution_count": 14, "id": "4f156d3f", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:18.121450Z", "iopub.status.busy": "2024-03-28T14:32:18.120426Z", "iopub.status.idle": "2024-03-28T14:32:18.131572Z", "shell.execute_reply": "2024-03-28T14:32:18.130436Z" } }, "outputs": [], "source": [ "acquisitions = {\"acq\": {\"num_bins\": 1, \"index\": 0}}\n", "\n", "# Sequence program.\n", "slow_sweep = f\"\"\"\n", " move {n_averages}, R0 # Average iterator.\n", "\n", "avg_loop:\n", " reset_ph\n", " upd_param 200\n", " acquire 0, 0, {MAXIMUM_SCOPE_ACQUISITION_LENGTH}\n", "\n", " loop R0, @avg_loop\n", "\n", " stop\n", "\"\"\"\n", "\n", "# Add sequence to single dictionary and write to JSON file.\n", "sequence = {\n", " \"waveforms\": {},\n", " \"weights\": {},\n", " \"acquisitions\": acquisitions,\n", " \"program\": slow_sweep,\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": "31b3f30a", "metadata": {}, "source": [ "Next, we prepare the QRM for the measurement:" ] }, { "cell_type": "code", "execution_count": 15, "id": "d266f70d", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:18.136121Z", "iopub.status.busy": "2024-03-28T14:32:18.136121Z", "iopub.status.idle": "2024-03-28T14:32:18.194389Z", "shell.execute_reply": "2024-03-28T14:32:18.191858Z" } }, "outputs": [], "source": [ "readout_module.sequencer0.sequence(\"sequence.json\")" ] }, { "cell_type": "markdown", "id": "ae2c3b40", "metadata": {}, "source": [ "Now we can run the frequency sweep. This is simply a loop where we set the frequency with QCoDeS and then run the program defined above. We measure the run time using the `%%time` Jupyter magic command." ] }, { "cell_type": "code", "execution_count": 16, "id": "0d2d129d", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:18.198389Z", "iopub.status.busy": "2024-03-28T14:32:18.197389Z", "iopub.status.idle": "2024-03-28T14:32:32.225248Z", "shell.execute_reply": "2024-03-28T14:32:32.224191Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "c:\\work\\code\\qblox_instruments_install\\qblox_instruments\\native\\generic_func.py:3210: FutureWarning: \n", " After June 2024, this feature is subject to removal in future releases.\n", " Transition to an alternative is advised.\n", " See https://qblox-qblox-instruments.readthedocs-hosted.com/en/main/getting_started/deprecated.html\n", " \n", " warnings.warn(\n", "c:\\work\\code\\qblox_instruments_install\\qblox_instruments\\native\\generic_func.py:2414: FutureWarning: \n", " After June 2024, this feature is subject to removal in future releases.\n", " Transition to an alternative is advised.\n", " See https://qblox-qblox-instruments.readthedocs-hosted.com/en/main/getting_started/deprecated.html\n", " \n", " warnings.warn(\n", "c:\\work\\code\\qblox_instruments_install\\qblox_instruments\\native\\generic_func.py:85: FutureWarning: \n", " After June 2024, this feature is subject to removal in future releases.\n", " Transition to an alternative is advised.\n", " See https://qblox-qblox-instruments.readthedocs-hosted.com/en/main/getting_started/deprecated.html\n", " \n", " self._deprecation_warning()\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "CPU times: total: 312 ms\n", "Wall time: 14 s\n" ] } ], "source": [ "%%time\n", "data = []\n", "for nco_val in nco_sweep_range:\n", " # Set the frequency\n", " readout_module.sequencer0.nco_freq(nco_val)\n", "\n", " # Run the program\n", " readout_module.arm_sequencer(0)\n", " readout_module.start_sequencer()\n", "\n", " # Wait for the sequencer to stop with a timeout period of one minute.\n", " readout_module.get_acquisition_state(0, 1)\n", "\n", " # Move acquisition data from temporary memory to acquisition list.\n", " readout_module.store_scope_acquisition(0, \"acq\")\n", "\n", " # Get acquisition list from instrument.\n", " data.append(readout_module.get_acquisitions(0)[\"acq\"])\n", "\n", " # Clear acquisition data so we do not average the results from different frequencies\n", " readout_module.sequencer0.delete_acquisition_data(\"acq\")" ] }, { "cell_type": "markdown", "id": "21861707", "metadata": {}, "source": [ "Plotting the acquired integration data, we can see the frequency behavior of the QRM." ] }, { "cell_type": "code", "execution_count": 17, "id": "7522a122", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:32.229770Z", "iopub.status.busy": "2024-03-28T14:32:32.229770Z", "iopub.status.idle": "2024-03-28T14:32:32.397628Z", "shell.execute_reply": "2024-03-28T14:32:32.395628Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "I_data = (\n", " np.asarray([d[\"acquisition\"][\"bins\"][\"integration\"][\"path0\"][0] for d in data])\n", " / MAXIMUM_SCOPE_ACQUISITION_LENGTH\n", ")\n", "Q_data = (\n", " np.asarray([d[\"acquisition\"][\"bins\"][\"integration\"][\"path1\"][0] for d in data])\n", " / MAXIMUM_SCOPE_ACQUISITION_LENGTH\n", ")\n", "plot_amplitude(nco_sweep_range, I_data, Q_data)" ] }, { "cell_type": "markdown", "id": "1b5df53b", "metadata": {}, "source": [ "We can see that the output amplitude decreases with frequency, this is expected due to the analog filters. We can also analyze the accumulated scope data with a spectrogram. This takes a few seconds, as there are 16384 data points per frequency step. Note that the time axis of the spectrogram refers to measurement time (16.4us * 200 steps $\\approx$ 3.3ms) and not the wall clock time, which is significantly longer." ] }, { "cell_type": "code", "execution_count": 18, "id": "8b81f1ee", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:32.401228Z", "iopub.status.busy": "2024-03-28T14:32:32.401228Z", "iopub.status.idle": "2024-03-28T14:32:35.595275Z", "shell.execute_reply": "2024-03-28T14:32:35.594249Z" }, "tags": [ "nbsphinx-thumbnail" ] }, "outputs": [ { "data": { "image/png": "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VCoVevXqhW3btun3abVabNu2rdEP8fj4eIPjAWDr1q3646OjoxEaGmpwTHFxMfbt22fWwkDO15KRkYEhQ4agV69eWLNmDRSKlv05WNO/i1arBQCo1epmvx6imwkKCkKnTp1uuF1/zdz1jh49CoVCgeDgYAC6v4Vdu3ahurpaf8zWrVvRsWNH+Pn56Y+50d+LubI351xx9OhRgy9jpszeEs05T1mKEAKzZs3C999/j99//x3R0dE3/ZmjR48CgP53HR8fjxMnTiA3N1d/zNatW+Ht7Y3Y2Fiz5G5MaWkpzp8/j7CwMPTq1QvOzs4Gv/fk5GSkpaXpf+8my96soR8kuw0bNggXFxexdu1acerUKfHwww8LX19f/WiayZMniwULFuiP37Nnj3BychJvvPGGOH36tFi8eHGD02r4+vqK//73v+L48ePi7rvvrjetxqVLl8SRI0fECy+8IDw9PcWRI0fEkSNHRElJiU29lsuXL4t27dqJ4cOHi8uXLxsMT28JOV7L3r17xXvvvSeOHDkiLl68KLZt2yYGDBgg2rZtKyorK1v0eohM4c8//xRvvfWWOHr0qDh//rz44osvRFBQkJgyZYr+mMLCQhESEiImT54skpKSxIYNG4S7u3u96U5u9vdiak05V6xdu1Z8+eWX4vTp0+L06dPipZdeEgqFQqxevVrW7I252XlKLo899pjw8fERO3bsMPg9l5eXCyGESElJEUuWLBEHDx4Uqamp4r///a+IiYkRgwYN0j9G3ZQhI0eOFEePHhWbN28WQUFBFpnuZN68eWLHjh0iNTVV7NmzR4wYMUIEBgaK3NxcIYRuupM2bdqI33//XRw8eLDetFSmys7Czoa99957ok2bNkKlUom+ffuKvXv36u8bPHiwmDp1qsHxX3/9tejQoYNQqVSiS5cu4ueffza4X6vViueee06EhIQIFxcXMXz4cJGcnGxwzNSpUwWAetv27dtt6rWsWbOmwddhiu86ln4tx48fF0OHDhX+/v7CxcVFREVFiUcffVRcvny5xa+FyBQOHTok+vXrJ3x8fISrq6vo3LmzePnll+t98Th27Ji47bbbhIuLi2jVqpV45ZVX6j3Wzf5eTK0p54q1a9eKzp07C3d3d+Ht7S369u1rMK2FXNlv5EbnKbk09ntes2aNEEKItLQ0MWjQIP25rl27duKpp54ymMdO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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "data_scope = (\n", " np.asarray([d[\"acquisition\"][\"scope\"][\"path0\"][\"data\"] for d in data]).flatten()\n", " + 1j * np.asarray([d[\"acquisition\"][\"scope\"][\"path1\"][\"data\"] for d in data]).flatten()\n", ")\n", "\n", "plot_spectrogram(data_scope)" ] }, { "cell_type": "markdown", "id": "b35ddca8", "metadata": {}, "source": [ "### Spectroscopy using Q1ASM\n", "Now we will run the same spectroscopy experiment using Q1ASM to change the NCO frequency in real time. First, we set up the QRM for continuous wave output and binned acquisition with many bins. This is significantly faster than using QCoDeS. The maximum number of points that can be measured this way is 131072 per sequencer. This corresponds to the number of bins available for acquisition per sequencer.\n", "\n", "The sequencer program can fundamentally only support integer values. However, the NCO has a frequency resolution of 0.25 Hz and supports $10^9$ phase values. Therefore, frequencies in the sequencer program must be given as integer multiple of $1/4$ Hz, and phases as integer multiple of $360/10^9$ degree." ] }, { "cell_type": "code", "execution_count": 19, "id": "1fc9b219", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:35.599327Z", "iopub.status.busy": "2024-03-28T14:32:35.598319Z", "iopub.status.idle": "2024-03-28T14:32:35.609447Z", "shell.execute_reply": "2024-03-28T14:32:35.609447Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "200 steps with step size 5.0 MHz\n" ] } ], "source": [ "n_steps = 200\n", "\n", "step_freq = (stop_freq - start_freq) / n_steps\n", "print(f\"{n_steps} steps with step size {step_freq/1e6} MHz\")\n", "\n", "# Convert frequencies to multiples of 0.25 Hz\n", "nco_int_start_freq = int(4 * start_freq)\n", "nco_int_step_freq = int(4 * step_freq)" ] }, { "cell_type": "code", "execution_count": 20, "id": "d0d3c040", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:35.615026Z", "iopub.status.busy": "2024-03-28T14:32:35.614017Z", "iopub.status.idle": "2024-03-28T14:32:35.625967Z", "shell.execute_reply": "2024-03-28T14:32:35.624940Z" } }, "outputs": [], "source": [ "acquisitions = {\"acq\": {\"num_bins\": n_steps, \"index\": 0}}\n", "\n", "setup = f\"\"\"\n", " move {n_averages}, R2\n", "\n", "avg_loop:\n", " move 0, R0 # frequency\n", " move 0, R1 # step counter\n", "\"\"\"\n", "\n", "# To get a negative starting frequency, we subtract a positive number from 0\n", "if start_freq <= 0:\n", " setup += f\"\"\"\n", " sub R0, {-nco_int_start_freq}, R0\n", " \"\"\"\n", "else:\n", " setup += f\"\"\"\n", " add R0, {nco_int_start_freq}, R0\n", " \"\"\"\n", "\n", "spectroscopy = (\n", " setup\n", " + f\"\"\"\n", " reset_ph\n", " set_freq R0\n", " upd_param 200\n", "\n", "nco_set:\n", " set_freq R0 # Set the frequency\n", " add R0, {nco_int_step_freq}, R0 # Update the frequency register\n", " upd_param 200 # Wait for time of flight\n", " acquire 0, R1, {MAXIMUM_SCOPE_ACQUISITION_LENGTH}\n", " add R1, 1, R1\n", " nop\n", " jlt R1, {n_steps}, @nco_set # Loop over all frequencies\n", "\n", " loop R2, @avg_loop\n", "\n", " stop # Stop\n", "\"\"\"\n", ")\n", "\n", "# Add sequence to single dictionary and write to JSON file.\n", "sequence = {\n", " \"waveforms\": {},\n", " \"weights\": {},\n", " \"acquisitions\": acquisitions,\n", " \"program\": spectroscopy,\n", "}\n", "with open(\"sequence.json\", \"w\", encoding=\"utf-8\") as file:\n", " json.dump(sequence, file, indent=4)" ] }, { "cell_type": "markdown", "id": "662fc678", "metadata": {}, "source": [ "Now we prepare the QRM for measurement." ] }, { "cell_type": "code", "execution_count": 21, "id": "42ddd99f", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:35.630016Z", "iopub.status.busy": "2024-03-28T14:32:35.630016Z", "iopub.status.idle": "2024-03-28T14:32:35.671648Z", "shell.execute_reply": "2024-03-28T14:32:35.670611Z" } }, "outputs": [], "source": [ "readout_module.sequencer0.sequence(\"sequence.json\")" ] }, { "cell_type": "code", "execution_count": 22, "id": "39bd7207", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:35.676213Z", "iopub.status.busy": "2024-03-28T14:32:35.675184Z", "iopub.status.idle": "2024-03-28T14:32:35.825549Z", "shell.execute_reply": "2024-03-28T14:32:35.824508Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Status:\n", "Status: RUNNING, Flags: ACQ_SCOPE_DONE_PATH_0, ACQ_SCOPE_OVERWRITTEN_PATH_0, ACQ_SCOPE_DONE_PATH_1, ACQ_SCOPE_OVERWRITTEN_PATH_1, ACQ_BINNING_DONE\n", "CPU times: total: 62.5 ms\n", "Wall time: 141 ms\n" ] } ], "source": [ "%%time\n", "readout_module.arm_sequencer(0)\n", "readout_module.start_sequencer()\n", "\n", "print(\"Status:\")\n", "print(readout_module.get_sequencer_state(0))\n", "\n", "# Wait for the sequencer to stop with a timeout period of one minute.\n", "readout_module.get_acquisition_state(0, 1)\n", "\n", "data = readout_module.get_acquisitions(0)[\"acq\"]" ] }, { "cell_type": "markdown", "id": "cdf7c929", "metadata": {}, "source": [ "Note that the same measurement as before is now two orders of magnitude faster. If we plot the integrated data, we get the same results as before." ] }, { "cell_type": "code", "execution_count": 23, "id": "62f866bb", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:35.829582Z", "iopub.status.busy": "2024-03-28T14:32:35.829582Z", "iopub.status.idle": "2024-03-28T14:32:35.951237Z", "shell.execute_reply": "2024-03-28T14:32:35.950195Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# For plotting, convert the NCO integer values back to frequencies\n", "nco_sweep_range = (np.arange(n_steps) * nco_int_step_freq + nco_int_start_freq) / 4.0\n", "\n", "I_data = (\n", " np.asarray(data[\"acquisition\"][\"bins\"][\"integration\"][\"path0\"])\n", " / MAXIMUM_SCOPE_ACQUISITION_LENGTH\n", ")\n", "Q_data = (\n", " np.asarray(data[\"acquisition\"][\"bins\"][\"integration\"][\"path1\"])\n", " / MAXIMUM_SCOPE_ACQUISITION_LENGTH\n", ")\n", "plot_amplitude(nco_sweep_range, I_data, Q_data)" ] }, { "cell_type": "markdown", "id": "211af1c1", "metadata": {}, "source": [ "#### NCO input delay compensation\n", "By default, the input and output of the QRM are multiplied with the same NCO value. As the output path has a time of flight of about 146 ns between the NCO and playback, this means that there is a short time window after frequency/phase updates where demodulation is updated, but playback is still using the old value. There is also always a (fixed) relative phase between playback and demodulation. We can showcase this by using a similar program as before, but with less points, so that the frequency steps are more clearly visible." ] }, { "cell_type": "code", "execution_count": 24, "id": "c3dec6f8", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:35.955839Z", "iopub.status.busy": "2024-03-28T14:32:35.955839Z", "iopub.status.idle": "2024-03-28T14:32:35.966529Z", "shell.execute_reply": "2024-03-28T14:32:35.965437Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "20 steps with step size 50.0 MHz\n" ] } ], "source": [ "n_steps = 20\n", "n_averages = 1000\n", "\n", "step_freq = (stop_freq - start_freq) / n_steps\n", "print(f\"{n_steps} steps with step size {step_freq/1e6} MHz\")\n", "\n", "# Convert frequencies to multiples of 0.25 Hz\n", "nco_int_start_freq = int(4 * start_freq)\n", "nco_int_step_freq = int(4 * step_freq)\n", "\n", "# For plotting, convert the NCO integer values back to frequencies\n", "nco_sweep_range = np.arange(nco_int_start_freq, 4 * stop_freq, nco_int_step_freq) / 4.0" ] }, { "cell_type": "markdown", "id": "b54df98f", "metadata": {}, "source": [ "To make the effect of NCO delay compensation more apparent, we modify the spectroscopy program for short integration time and acquire immediately after the frequency update, without waiting for time of flight. This means that the output at the new frequency only arrives at the input AFTER integration in the current loop iteration has finished. Without further modifications of the program this leads to an off-by-one error. Therefore, we increase the frequency as the first step in the loop." ] }, { "cell_type": "code", "execution_count": 25, "id": "9b1c352c", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:35.971560Z", "iopub.status.busy": "2024-03-28T14:32:35.970552Z", "iopub.status.idle": "2024-03-28T14:32:35.982815Z", "shell.execute_reply": "2024-03-28T14:32:35.981309Z" } }, "outputs": [], "source": [ "acquisitions = {\"acq\": {\"num_bins\": n_steps, \"index\": 0}}\n", "\n", "setup = f\"\"\"\n", " move {n_averages}, R2\n", "\n", "avg_loop:\n", " move 0, R0 # frequency\n", " move 0, R1 # step counter\n", "\"\"\"\n", "\n", "# To get a negative starting frequency, we subtract a positive number from 0\n", "if start_freq <= 0:\n", " setup += f\"\"\"\n", " sub R0, {-nco_int_start_freq}, R0\n", " \"\"\"\n", "else:\n", " setup += f\"\"\"\n", " add R0, {nco_int_start_freq}, R0\n", " \"\"\"\n", "\n", "spectroscopy = (\n", " setup\n", " + f\"\"\"\n", " reset_ph\n", " set_freq R0\n", " upd_param 200\n", "\n", "nco_set:\n", " # Due to time of flight, the new frequency will only arrive at the input AFTER integration is done\n", " # Therefore, we already increase the frequency before the first measurement.\n", " add R0, {nco_int_step_freq}, R0\n", " nop\n", " set_freq R0\n", "\n", " # we removed upd_param, so that acquisition starts the moment the frequency is updated\n", " acquire 0, R1, 1200 # Update the NCO and immediately acquire\n", " add R1, 1, R1\n", " nop\n", " jlt R1, {n_steps}, @nco_set # Loop over all frequencies\n", "\n", " loop R2, @avg_loop\n", "\n", " stop # Stop\n", "\"\"\"\n", ")\n", "\n", "# Add sequence to single dictionary and write to JSON file.\n", "sequence = {\n", " \"waveforms\": {},\n", " \"weights\": {},\n", " \"acquisitions\": acquisitions,\n", " \"program\": spectroscopy,\n", "}\n", "with open(\"sequence.json\", \"w\", encoding=\"utf-8\") as file:\n", " json.dump(sequence, file, indent=4)" ] }, { "cell_type": "markdown", "id": "05a17e4b", "metadata": {}, "source": [ "As a baseline, we will do a measurement with delay compensation disabled." ] }, { "cell_type": "code", "execution_count": 26, "id": "22c55848", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:35.987341Z", "iopub.status.busy": "2024-03-28T14:32:35.987341Z", "iopub.status.idle": "2024-03-28T14:32:36.059294Z", "shell.execute_reply": "2024-03-28T14:32:36.058291Z" } }, "outputs": [], "source": [ "readout_module.sequencer0.sequence(\"sequence.json\")\n", "readout_module.sequencer0.integration_length_acq(140)\n", "readout_module.sequencer0.nco_prop_delay_comp_en(False)" ] }, { "cell_type": "code", "execution_count": 27, "id": "eecceea6", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:36.063754Z", "iopub.status.busy": "2024-03-28T14:32:36.063754Z", "iopub.status.idle": "2024-03-28T14:32:36.247162Z", "shell.execute_reply": "2024-03-28T14:32:36.245986Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Status:\n", "Status: RUNNING, Flags: ACQ_BINNING_DONE\n" ] }, { "data": { "image/png": "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60gNMW11Z56EXcuJiKg+6lwTVVBQgBEjRthjLkQ1kjcftuFyHsCu5UREVD91DqJGjBiBX375xR5zIapRwRXb7psnCfSpykSVMBNFRER1V+flvPbt22PWrFn4888/0bVrV7i7m3+wPf300zabHBFQ3eLAVt3KJRo23CQionqocxC1dOlS+Pr64rfffsNvv/1m9phCoWAQRTYnZYpsnYkKYhBFRET1UOcgKiMjwx7zILohbal9aqJYWE5ERPVRr2abQghumUF2Z6+781hYTkRE9WFVELVixQp07doVXl5e8PLyQrdu3fDll1/aem5EAKrvzrN1TZRcWM4gioiIrFDn5bx33nkHs2bNwpQpU3DHHXcAAP744w888cQTyMvLwzPPPGPzSVLTVVZhlPe2C7BxTZS0PKjl3XlERGSFOgdR77//Pj766COMHTtWPva3v/0NnTt3xiuvvMIgimxKV1UPpVIq4O9p1S5FNyRltorKDagwmuCu4laSRERkuTp/aly8eBFxcXHXHY+Li8PFixdtMikiibTUFuDlbrbFkC1UPmflf2tZXE5ERHVU5yCqffv2WLNmzXXHV69ejejoaJtMikiitVOjTUDKbrlXXYd1UUREVDd1Xh/5z3/+g1GjRmHbtm1yTdT27duRkpJSY3BFVB/2ujNPEuSjhq60AvklDKKIiKhu6pyJGj58ONLS0hAcHIx169Zh3bp1CA4Oxs6dO/Hggw/aY47UhNnrzjwJe0UREZG1rKrU7d27N7766itbz4XoOlJwY+s78yTsFUVERNayKIgqLCyEv7+//N+1kcYR2YLWTvvmSZiJIiIia1kURAUGBuLixYto0aIFNBpNjXdJCSGgUChgNBptPklquqQeTvaqiWImioiIrGVRELV582YEBQUBALZs2WLXCRFdTcpEaXzsk4kK9GbXciIiso5FQdTAgQPl/46KikJERMR12SghBLKysmw7O2rypGU2e2WipK7lXM4jIqK6qvPdeVFRUbh06dJ1x/Pz8xEVFWWTSRFJdHa+Oy+oKsNVwBYHRERUR3UOoqTap2sVFxfD09PTJpMikkjLbPZotnn183I5j4iI6sriFgfTp08HACgUCsyaNQve3t7yY0ajEWlpaejRo4fNJ0hNlxAC2lL7dSwHri4s53IeERHVjcVB1L59+wBUfrAdOnQIanX18oparUb37t3x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5513CiGE+M9//iMefPBBUVBQIACILVu2mI339PQ0e999fHyEm5tbjc9fWloqYmJixP333y+MRqNFcyKiam6ODOCIqPG688478dFHH8k/+/j4yP/du3dvs7EHDhzAli1baqzzSU9PR2lpKfR6PWJiYuTjQUFB6NChQ53mdODAAZw6dQp+fn5mx8vKypCeni7/3LlzZ6hUKvnnsLAwHDp0CEDl0pxKpcLAgQNrvEZ4eDiGDh2Kzz//HH379sWPP/6I8vJyjBgxok5zvdo///lPvPTSSzh9+jSWL1+ORYsW3XDsu+++i/j4eLNjL774IoxG43VjH3vsMRQVFSE5ORlKJRcmiOqKQRQR2YWPj88Nl6+uDqgAoLi4GA888ADefPPN68aGhYVZXEukUCgghDA7dnUtU3FxMXr37o2vv/76unObN28u/7e7u/t1z2symQDAooLrf/3rX3jkkUfw7rvvYtmyZRg1ahS8vb0teg01adasGe6//35MmDABZWVluPfee1FUVFTj2NDQ0Ovedz8/P2i1WrNjc+fOxaZNm7Bz587rgkoisgyDKCJyuF69euG7775DZGQk3Nyu/2epXbt2cHd3R1paGlq3bg0AKCgowF9//WWWEWrevDkuXrwo/3zy5ElcuXLF7DqrV69GixYt4O/vb9Vcu3btCpPJhN9+++26jI/kvvvug4+PDz766CMkJSVh27ZtVl3rao899hjuu+8+vPjii2ZZMmt89913ePXVV/Hzzz+jXbt29Z4bUVPF/C0ROdzkyZORn5+P0aNHY9euXUhPT8emTZswfvx4GI1G+Pr6YsKECXj++eexefNmHD58GI8++uh1S1B33XUXPvjgA+zbtw+7d+/GE088YZZVGjNmDIKDgzFs2DD8/vvvyMjIwNatW/H000/j3LlzFs01MjIS48aNw2OPPYZ169bJz7FmzRp5jEqlwqOPPooZM2YgOjoasbGx9X6PhgwZgkuXLuHVV1+t1/McPnwYY8eOxYsvvojOnTsjOzsb2dnZyM/Pr/cciZoaBlFE5HDh4eHYvn07jEYj7rnnHnTt2hXTpk2DRqORA6W33noL/fv3xwMPPID4+Hj069fvutqqBQsWICIiAv3798c//vEPPPfcc2bLaN7e3ti2bRtat26Nhx56CJ06dZKXyOqSmfroo4/w97//HU899RQ6duyIiRMnoqSkxGzMhAkToNfrMX78+Hq8M9UUCgWCg4OhVqvr9Ty7d+/GlStXMHfuXISFhclfDz30kE3mSdSUKMS1BQRERC5i0KBB6NGjBxYuXOjoqVzn999/x+DBg5GVlYWQkJBaxz766KPQarUO3/Llas44JyJnw0wUEZENlZeX49y5c3jllVcwYsSImwZQkg0bNsDX1xcbNmyw8wxr9/vvv8PX17fG4nsiMsfCciIiG/rmm28wYcIE9OjRAytWrLDonPnz52PmzJkAKu9GdKQ+ffpg//79AGC3rWWIGgsu5xERERFZgct5RERERFZgEEVERERkBQZRRERERFZgEEVERERkBQZRRERERFZgEEVERERkBQZRRERERFZgEEVERERkhf8H5Qd6cXqF5iAAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "readout_module.arm_sequencer(0)\n", "readout_module.start_sequencer()\n", "\n", "print(\"Status:\")\n", "print(readout_module.get_sequencer_state(0))\n", "\n", "# Wait for the sequencer to stop with a timeout period of one minute.\n", "readout_module.get_acquisition_state(0, timeout=1)\n", "\n", "data = readout_module.get_acquisitions(0)[\"acq\"]\n", "I_data = np.asarray(data[\"acquisition\"][\"bins\"][\"integration\"][\"path0\"]) / 140\n", "Q_data = np.asarray(data[\"acquisition\"][\"bins\"][\"integration\"][\"path1\"]) / 140\n", "plot_amplitude(nco_sweep_range, I_data, Q_data)" ] }, { "cell_type": "markdown", "id": "65ef6806", "metadata": {}, "source": [ "Even though we only measured a small number of points, we can see that this is not compatible with the previous spectroscopy measurements. What happened is that `set_freq` updates the NCO frequency immediately. However, there is a time of flight of about 146 ns between the NCO and the output of the device. Thus, the signal will be demodulated at $f_0 + 100$ MHz immediately after `set_freq`, but the incoming signal is still modulated at $f_0$ for another 146 ns - longer than the integration time chosen above. The integrated signal will therefore be approximately zero.\n", "\n", "Now we run the same experiment again, with delay compensation enabled." ] }, { "cell_type": "code", "execution_count": 28, "id": "80c3e3fa", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:36.251184Z", "iopub.status.busy": "2024-03-28T14:32:36.251184Z", "iopub.status.idle": "2024-03-28T14:32:36.308579Z", "shell.execute_reply": "2024-03-28T14:32:36.307475Z" } }, "outputs": [], "source": [ "readout_module.sequencer0.sequence(\"sequence.json\")\n", "readout_module.sequencer0.nco_prop_delay_comp_en(True)" ] }, { "cell_type": "markdown", "id": "a98e1740", "metadata": {}, "source": [ "This ensures that, for demodulation, the NCO only updates after the time of flight, i.e. that frequency and phase of modulation and demodulation always match." ] }, { "cell_type": "code", "execution_count": 29, "id": "34b11fa1", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:36.312614Z", "iopub.status.busy": "2024-03-28T14:32:36.312614Z", "iopub.status.idle": "2024-03-28T14:32:36.509263Z", "shell.execute_reply": "2024-03-28T14:32:36.508220Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Status:\n", "Status: RUNNING, Flags: ACQ_BINNING_DONE\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "readout_module.arm_sequencer(0)\n", "readout_module.start_sequencer()\n", "\n", "print(\"Status:\")\n", "print(readout_module.get_sequencer_state(0))\n", "\n", "# Wait for the sequencer to stop with a timeout period of one minute.\n", "readout_module.get_acquisition_state(0, timeout=1)\n", "\n", "data = readout_module.get_acquisitions(0)[\"acq\"]\n", "I_data = np.asarray(data[\"acquisition\"][\"bins\"][\"integration\"][\"path0\"]) / 140\n", "Q_data = np.asarray(data[\"acquisition\"][\"bins\"][\"integration\"][\"path1\"]) / 140\n", "amplitude = np.abs(I_data + 1j * Q_data)\n", "\n", "plot_amplitude(nco_sweep_range, I_data, Q_data)" ] }, { "cell_type": "markdown", "id": "ef2c74e9", "metadata": {}, "source": [ "We can see that modulation and demodulation frequency now match, producing similar results as the spectroscopy measurements before." ] }, { "cell_type": "markdown", "id": "d0e60001", "metadata": {}, "source": [ "## Stop\n", "\n", "Finally, let's stop the playback 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": 30, "id": "15e81ccc", "metadata": { "execution": { "iopub.execute_input": "2024-03-28T14:32:36.514506Z", "iopub.status.busy": "2024-03-28T14:32:36.514506Z", "iopub.status.idle": "2024-03-28T14:32:46.423024Z", "shell.execute_reply": "2024-03-28T14:32:46.420877Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Status: STOPPED, Flags: FORCED_STOP, ACQ_SCOPE_DONE_PATH_0, ACQ_SCOPE_DONE_PATH_1, ACQ_BINNING_DONE\n", "Status: STOPPED, Flags: FORCED_STOP\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_inv_en :\tFalse \n", "marker1_inv_en :\tFalse \n", "marker2_inv_en :\tFalse \n", "marker3_inv_en :\tFalse \n", "out0_offset :\t0 (V)\n", "out1_offset :\t0 (V)\n", "present :\tTrue \n", "scope_acq_avg_mode_en_path0 :\tTrue \n", "scope_acq_avg_mode_en_path1 :\tTrue \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 :\tTrue \n", "gain_awg_path0 :\t1 \n", "gain_awg_path1 :\t1 \n", "integration_length_acq :\t140 \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 :\t4.95e+08 (Hz)\n", "nco_phase_offs :\t0 (Degrees)\n", "nco_prop_delay_comp :\t0 (ns)\n", "nco_prop_delay_comp_en :\tTrue (ns)\n", "offset_awg_path0 :\t1 \n", "offset_awg_path1 :\t1 \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_sequencer1:\n", "\tparameter value\n", "--------------------------------------------------------------------------------\n", "connect_acq_I :\toff \n", "connect_acq_Q :\toff \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_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_sequencer2:\n", "\tparameter value\n", "--------------------------------------------------------------------------------\n", "connect_acq_I :\toff \n", "connect_acq_Q :\toff \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_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 :\toff \n", "connect_acq_Q :\toff \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_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 :\toff \n", "connect_acq_Q :\toff \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_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 :\toff \n", "connect_acq_Q :\toff \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_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", "readout_module.stop_sequencer()\n", "\n", "# Print status of both sequencers (should now say it is stopped).\n", "print(readout_module.get_sequencer_state(0))\n", "print(readout_module.get_sequencer_state(1))\n", "print()\n", "\n", "# Print an overview of the instrument parameters.\n", "print(\"Snapshot:\")\n", "readout_module.print_readable_snapshot(update=True)\n", "\n", "# Reset the cluster\n", "cluster.reset()\n", "print(cluster.get_system_state())" ] } ], "metadata": { "jupytext": { "formats": "ipynb,py:percent" }, "kernelspec": { "display_name": "py39", "language": "python", "name": "python3" }, "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.8.18" } }, "nbformat": 4, "nbformat_minor": 5 }