{ "cells": [ { "cell_type": "markdown", "id": "9103376c", "metadata": {}, "source": [ "# Qblox basic sequencing" ] }, { "cell_type": "markdown", "id": "ef32e66a", "metadata": {}, "source": [ "This tutorial outputs the same waveforms as in the [Basic Sequencing](https://docs.qblox.com/en/main/tutorials/q1asm_tutorials/basic/generated/QRM/010_basic_sequencing.html) tutorial, but using quantify instead." ] }, { "cell_type": "markdown", "id": "62470041", "metadata": {}, "source": [ "Quantify allows a either a gate or pulse to be played from a qblox instrument. Gates are performed on qubits (see [Operations and Qubits](https://quantify-os.org/docs/quantify-scheduler/tutorials/Operations%20and%20Qubits.html)) and pulses are played on ports (see [Schedules and Pulses](https://quantify-os.org/docs/quantify-scheduler/tutorials/Schedules%20and%20Pulses.html)).\n", "\n", "In this tutorial, we will play both gates and pulses." ] }, { "cell_type": "markdown", "id": "f2724aae", "metadata": {}, "source": [ "First we set the data directory." ] }, { "cell_type": "code", "execution_count": 1, "id": "7eb0ac8c", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:49.884800Z", "iopub.status.busy": "2024-11-13T02:44:49.884601Z", "iopub.status.idle": "2024-11-13T02:44:50.440762Z", "shell.execute_reply": "2024-11-13T02:44:50.440118Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Data will be saved in:\n", "/root/quantify-data\n" ] } ], "source": [ "from __future__ import annotations\n", "\n", "from qcodes.instrument import find_or_create_instrument\n", "\n", "from quantify_core.data import handling as dh\n", "\n", "dh.set_datadir()" ] }, { "cell_type": "markdown", "id": "845a2db0", "metadata": {}, "source": [ "## Connections\n", "\n", "First, we define a quantum device with one transmon (qubit).\n", "\n", "The transmon here is a device element (typically a type of qubit) and is only necessary when using a gate operation, since the same gate can be implemented differently on different types of device elements. Take for example the `Measure` operation. The state of a transmon is determined by measuring a signal sent to a resonator coupled to it, but the state of a spin qubit is determined by measuring a current." ] }, { "cell_type": "code", "execution_count": 2, "id": "25a2d1ba", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:50.442976Z", "iopub.status.busy": "2024-11-13T02:44:50.442686Z", "iopub.status.idle": "2024-11-13T02:44:51.324012Z", "shell.execute_reply": "2024-11-13T02:44:51.323195Z" } }, "outputs": [], "source": [ "from quantify_scheduler.device_under_test.quantum_device import QuantumDevice\n", "from quantify_scheduler.device_under_test.transmon_element import BasicTransmonElement\n", "\n", "single_transmon_device = find_or_create_instrument(QuantumDevice, recreate=True, name=\"DUT\")\n", "transmon = find_or_create_instrument(BasicTransmonElement, recreate=True, name=\"transmon\")\n", "single_transmon_device.add_element(transmon)" ] }, { "cell_type": "markdown", "id": "34dc1ecd", "metadata": {}, "source": [ "We will assume the transmon is already calibrated, and that we know the frequency of the qubit and the parameters for a $\\pi$-pulse. We can assign this known frequency and $\\pi$-pulse parameters to the transmon." ] }, { "cell_type": "code", "execution_count": 3, "id": "47ea177d", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:51.326983Z", "iopub.status.busy": "2024-11-13T02:44:51.326359Z", "iopub.status.idle": "2024-11-13T02:44:51.330060Z", "shell.execute_reply": "2024-11-13T02:44:51.329462Z" } }, "outputs": [], "source": [ "transmon.clock_freqs.f01(5e9) # The |0> <=> |1> transition frequency is at 5 GHz.\n", "transmon.rxy.amp180(0.3) # The amplitude of a pi pulse is 0.3" ] }, { "cell_type": "markdown", "id": "e64c4794", "metadata": {}, "source": [ "Next, we define the module(s) that are connected to the quantum device.\n", "\n", "In this case, one Qblox Cluster with a QCM (or QRM) in slot 4.\n", "\n", "We will use three outputs of the QCM for the tutorial to showcase both real and complex output signals. Please make appropriate modifications if using a QRM which only has two outputs.\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://docs.qblox.com/en/main/api_reference/tools.html#api-pnp) for more info)." ] }, { "cell_type": "markdown", "id": "00461bdb", "metadata": {}, "source": [ "`!qblox-pnp list`" ] }, { "cell_type": "code", "execution_count": 4, "id": "141c2414", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:51.331932Z", "iopub.status.busy": "2024-11-13T02:44:51.331774Z", "iopub.status.idle": "2024-11-13T02:44:51.334756Z", "shell.execute_reply": "2024-11-13T02:44:51.334120Z" } }, "outputs": [], "source": [ "cluster_ip = \"10.10.200.42\"\n", "cluster_name = \"cluster0\"" ] }, { "cell_type": "markdown", "id": "52f12352", "metadata": {}, "source": [ "### Connect to Cluster\n", "\n", "We now make a connection with the Cluster." ] }, { "cell_type": "code", "execution_count": 5, "id": "6bcf5932", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:51.336598Z", "iopub.status.busy": "2024-11-13T02:44:51.336439Z", "iopub.status.idle": "2024-11-13T02:44:52.183489Z", "shell.execute_reply": "2024-11-13T02:44:52.182693Z" }, "lines_to_next_cell": 2 }, "outputs": [], "source": [ "from qblox_instruments import Cluster, ClusterType\n", "\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": "7dce7399", "metadata": { "lines_to_next_cell": 2 }, "source": [ "#### Get connected modules" ] }, { "cell_type": "code", "execution_count": 6, "id": "5f8b4901", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.185928Z", "iopub.status.busy": "2024-11-13T02:44:52.185728Z", "iopub.status.idle": "2024-11-13T02:44:52.189986Z", "shell.execute_reply": "2024-11-13T02:44:52.189281Z" } }, "outputs": [], "source": [ "from typing import TYPE_CHECKING, Callable\n", "\n", "if TYPE_CHECKING:\n", " from qblox_instruments.qcodes_drivers.module import Module\n", "\n", "\n", "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": 7, "id": "9aa15afd", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.191801Z", "iopub.status.busy": "2024-11-13T02:44:52.191602Z", "iopub.status.idle": "2024-11-13T02:44:52.214171Z", "shell.execute_reply": "2024-11-13T02:44:52.213488Z" } }, "outputs": [ { "data": { "text/plain": [ "{4: }" ] }, "execution_count": 7, "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": 8, "id": "21e10114", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.215987Z", "iopub.status.busy": "2024-11-13T02:44:52.215794Z", "iopub.status.idle": "2024-11-13T02:44:52.218620Z", "shell.execute_reply": "2024-11-13T02:44:52.218007Z" } }, "outputs": [], "source": [ "module = modules[4]" ] }, { "cell_type": "code", "execution_count": 9, "id": "a473de36", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.220474Z", "iopub.status.busy": "2024-11-13T02:44:52.220288Z", "iopub.status.idle": "2024-11-13T02:44:52.223610Z", "shell.execute_reply": "2024-11-13T02:44:52.223023Z" } }, "outputs": [], "source": [ "slot_no = module.slot_idx\n", "if module.is_qcm_type:\n", " module_type = \"QCM\"\n", "if module.is_qrm_type:\n", " module_type = \"QRM\"" ] }, { "cell_type": "markdown", "id": "5cb91588", "metadata": {}, "source": [ "Create a dummy Local Oscillator with the same name as in the hardware config. This can be replaced with a microwave generator in an actual situation" ] }, { "cell_type": "code", "execution_count": 10, "id": "f8a6f324", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.225566Z", "iopub.status.busy": "2024-11-13T02:44:52.225350Z", "iopub.status.idle": "2024-11-13T02:44:52.229644Z", "shell.execute_reply": "2024-11-13T02:44:52.229018Z" } }, "outputs": [], "source": [ "from quantify_scheduler.helpers.mock_instruments import MockLocalOscillator\n", "\n", "lo1 = find_or_create_instrument(MockLocalOscillator, recreate=True, name=\"lo1\")" ] }, { "cell_type": "markdown", "id": "25c966b4", "metadata": {}, "source": [ "Now we define the connections between the quantum device and the qblox instrument(s). For this we define a hardware config according to the [Qblox backend](https://quantify-os.org/docs/quantify-scheduler/latest/reference/qblox/index.html) tutorial." ] }, { "cell_type": "code", "execution_count": 11, "id": "98a6a7d0", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.231453Z", "iopub.status.busy": "2024-11-13T02:44:52.231267Z", "iopub.status.idle": "2024-11-13T02:44:52.235191Z", "shell.execute_reply": "2024-11-13T02:44:52.234543Z" } }, "outputs": [], "source": [ "hardware_config = {\n", " \"backend\": \"quantify_scheduler.backends.qblox_backend.hardware_compile\", # Use the Qblox backend\n", " \"cluster0\": { # The first instrument is named \"cluster0\"\n", " \"instrument_type\": \"Cluster\", # The instrument is a Qblox Cluster\n", " \"ref\": \"internal\", # Use the internal reference clock\n", " f\"cluster0_module{slot_no}\": { # This is the module in slot of the cluster. (slot 0 has the CMM)\n", " \"instrument_type\": f\"{module_type}\", # The module is either a QCM or QRM module\n", " \"complex_output_0\": { # The module will output a real signal from output 0 (O1)\n", " \"lo_name\": \"lo1\", # output 0 and 1 (O1 and O2) are connected to the I and Q ports of an IQ mixer with a LocalOscillator by the name lo1\n", " \"portclock_configs\": [ # Each output can contain upto 6 portclocks. We will use only one for this tutorial\n", " {\n", " \"port\": \"transmon:mw\", # This output is connected to the microwave line of qubit 0\n", " \"clock\": \"transmon.01\", # This clock tracks the |0> <=> |1> transition of the transmon\n", " },\n", " ],\n", " },\n", " },\n", " },\n", " \"lo1\": {\n", " \"instrument_type\": \"LocalOscillator\",\n", " \"frequency\": 4.9e9,\n", " \"power\": 20,\n", " }, # lo1 has a frequency of 4.9 GHz and is set to a power level of 20 (can be dBm)\n", "}" ] }, { "cell_type": "code", "execution_count": 12, "id": "606f280f", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.237023Z", "iopub.status.busy": "2024-11-13T02:44:52.236837Z", "iopub.status.idle": "2024-11-13T02:44:52.240405Z", "shell.execute_reply": "2024-11-13T02:44:52.239771Z" } }, "outputs": [], "source": [ "if module_type == \"QCM\":\n", " hardware_config[\"cluster0\"][f\"cluster0_module{slot_no}\"][\"real_output_2\"] = (\n", " { # The QCM will output a real signal from output 2\n", " \"portclock_configs\": [\n", " {\n", " \"port\": \"transmon:fl\", # This output is connected to the flux line of qubit 2\n", " \"clock\": \"cl0.baseband\", # This default value (clock with zero frequency) is used if a clock is not provided.\n", " },\n", " ]\n", " },\n", " )" ] }, { "cell_type": "code", "execution_count": 13, "id": "2cbed46d", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.242086Z", "iopub.status.busy": "2024-11-13T02:44:52.241929Z", "iopub.status.idle": "2024-11-13T02:44:52.244652Z", "shell.execute_reply": "2024-11-13T02:44:52.244031Z" } }, "outputs": [], "source": [ "single_transmon_device.hardware_config(hardware_config)" ] }, { "cell_type": "markdown", "id": "17b6617d", "metadata": {}, "source": [ "## Schedule" ] }, { "cell_type": "markdown", "id": "cd26a27a", "metadata": {}, "source": [ "We can now create a `Schedule` of pulses or gates to play." ] }, { "cell_type": "code", "execution_count": 14, "id": "178707a3", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.246486Z", "iopub.status.busy": "2024-11-13T02:44:52.246328Z", "iopub.status.idle": "2024-11-13T02:44:52.252923Z", "shell.execute_reply": "2024-11-13T02:44:52.250449Z" } }, "outputs": [], "source": [ "from quantify_scheduler import Schedule\n", "\n", "sched = Schedule(\n", " \"Basic sequencing\", repetitions=2**27\n", ") # The schedule will be played repeatedly 2^27 times" ] }, { "cell_type": "markdown", "id": "cf4542fc", "metadata": {}, "source": [ "Let's create the control portion of an experiment.\n", "\n", "First we specify an arbitrary numerical pulse to be played on the microwave port of the transmon.\n", "\n", "Here we play a gaussian pulse constructed from the scipy library." ] }, { "cell_type": "code", "execution_count": 15, "id": "06fe2115", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.260522Z", "iopub.status.busy": "2024-11-13T02:44:52.259794Z", "iopub.status.idle": "2024-11-13T02:44:52.272692Z", "shell.execute_reply": "2024-11-13T02:44:52.271208Z" } }, "outputs": [], "source": [ "import numpy as np\n", "from scipy.signal.windows import gaussian\n", "\n", "from quantify_scheduler.operations.pulse_library import NumericalPulse\n", "\n", "t = np.arange(0, 48.5e-9, 1e-9)\n", "\n", "gaussian_pulse = sched.add(\n", " NumericalPulse(\n", " samples=0.2 * gaussian(len(t), std=0.12 * len(t))\n", " - 1j * gaussian(len(t), std=0.12 * len(t)), # Numerical pulses can be complex as well.\n", " t_samples=t,\n", " port=\"transmon:mw\",\n", " clock=\"transmon.01\",\n", " ),\n", " ref_pt=\"start\",\n", " rel_time=0e-9,\n", ")" ] }, { "cell_type": "markdown", "id": "2b22f710", "metadata": {}, "source": [ "Next, we apply a square pulse to the flux port of the transmon at the same time as the Gaussian Pulse" ] }, { "cell_type": "code", "execution_count": 16, "id": "02dc2b2b", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.276815Z", "iopub.status.busy": "2024-11-13T02:44:52.276415Z", "iopub.status.idle": "2024-11-13T02:44:52.283395Z", "shell.execute_reply": "2024-11-13T02:44:52.282144Z" } }, "outputs": [], "source": [ "from quantify_scheduler.operations.pulse_library import SquarePulse\n", "\n", "if module_type == \"QCM\":\n", " square_pulse = sched.add(\n", " SquarePulse(amp=0.4, duration=32e-9, port=\"transmon:fl\", clock=\"cl0.baseband\"),\n", " ref_pt=\"start\", # Play at the start of\n", " ref_op=gaussian_pulse, # the gaussian pulse\n", " rel_time=0e-9, # Delay the pulse by 0 ns\n", " )" ] }, { "cell_type": "markdown", "id": "81e5fc6b", "metadata": {}, "source": [ "Finally, we apply an X gate to the transmon. This uses the stored parameters in the `transmon` object." ] }, { "cell_type": "code", "execution_count": 17, "id": "7b5b9e21", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.286831Z", "iopub.status.busy": "2024-11-13T02:44:52.286501Z", "iopub.status.idle": "2024-11-13T02:44:52.294550Z", "shell.execute_reply": "2024-11-13T02:44:52.293543Z" } }, "outputs": [], "source": [ "from quantify_scheduler.operations.gate_library import X\n", "from quantify_scheduler.resources import ClockResource\n", "\n", "pi_pulse = sched.add(X(qubit=transmon.name), ref_op=gaussian_pulse)\n", "\n", "sched.add_resource(\n", " ClockResource(name=\"transmon.01\", freq=transmon.clock_freqs.f01())\n", ") # A ClockResource is necessary for the schedule to know the frequency of the transmon." ] }, { "cell_type": "markdown", "id": "cc98f8ce", "metadata": {}, "source": [ "## Compilation" ] }, { "cell_type": "markdown", "id": "8749249d", "metadata": {}, "source": [ "We then compile the schedule to produce instructions for the instruments.\n", "\n", "We use the `SerialCompiler` here, which first converts all gates to pulses, then all pulses to instrument instructions." ] }, { "cell_type": "code", "execution_count": 18, "id": "4724e580", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.297394Z", "iopub.status.busy": "2024-11-13T02:44:52.297143Z", "iopub.status.idle": "2024-11-13T02:44:52.845319Z", "shell.execute_reply": "2024-11-13T02:44:52.844833Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/builds/qblox/packages/software/qblox_instruments_docs/.venv/lib/python3.9/site-packages/quantify_scheduler/backends/qblox/helpers.py:1421: FutureWarning: The hardware configuration dictionary is deprecated and will not be supported in quantify-scheduler >= 1.0.0. Please use a `HardwareCompilationConfig` instead. For more information on how to migrate from old- to new-style hardware specification, please visit https://quantify-os.org/docs/quantify-scheduler/dev/examples/hardware_config_migration.html in the documentation.\n", " warnings.warn(\n" ] }, { "data": { "text/plain": [ "(
,\n", " )" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2sAAAJHCAYAAAAOrM5pAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAADEQklEQVR4nOzdd3zTdf4H8FdWkzRN0733htKyt2wUARFBEREH6KnnnXqnd+JxnvN+HuedG/fWU1wgTsCBLAd7ld2990jaZiff3x8tFaQtLR3fJH09H488oPmuV1po8v5+lkQQBAFERERERETkUqRiByAiIiIiIqJzsVgjIiIiIiJyQSzWiIiIiIiIXBCLNSIiIiIiIhfEYo2IiIiIiMgFsVgjIiIiIiJyQSzWiIiIiIiIXBCLNSIiIiIiIhfEYo2IiIiIiMgFsVgjIiIiIiJyQSzWiIjc0FtvvQWJRNLhw9fXF+PGjcP69evFjnqOhx9+GHK5HK+++qrYUciFbdq0CWq1Gtdff73YUYiIRCMXOwAREXVfYWEhdDod/u///q/d7QaDAdu3b8fChQvxwQcf4JprrunnhB3bvn07HA4Hdu7ciVtvvVXsOOSidu/eDbPZjJ9++knsKEREomGxRkTkpnx8fHDHHXd0uH3lypVYvHgxHnnkEZcq1pYsWYKqqirMnz9f7Cjkwi699FKsX78e8+bNEzsKEZFoJIIgCGKHICKi7nn44Yfx+uuvo6SkpNP93n//fVx//fUwmUxQKpX9lI6IiIh6A8esERF5sODgYAiCgIqKCrGjEBERUTexWCMi8mAmkwkA4O/v3+72DRs24PLLL0dsbCxUKhUkEgmUSiXS0tKwZMkS5Obmdnju999/H0OHDoVarT5ngpPQ0FBce+21KCsrO+e448ePIzQ0FHV1de2e99ChQ1iwYAGSk5OhUCjazhkYGIhx48bhrbfeQnc6hVgsFjzwwANISkqCTCY7K6dMJkNsbCxWrlwJm83W7vFNTU1YuXIlRowYAV9f37ZjdTodRo0ahQceeKDt+9weg8GAFStWYPjw4W3H+/j4ICUlBbfffjsKCwvx5ptvYvLkyecc+9BDD3Vpgo2OjgcAQRDw2WefYerUqYiKimrLr1AokJKSgquuugrHjx9v99iGhgaEhobiyJEjOHr0KJYvX464uDioVCrIZDLExcVh1qxZ2Lp1a6f5LvRnmpycjE2bNnX4fbHZbHj++ecxceJEBAYGtk2uM2LECNx3331obGzsMJPVasXjjz+OsWPHth0rkUig1Woxbtw4PPjgg/jqq6+QkJAAp9PZ6esjIuorHLNGROTBDh06hJiYGPj6+p6z7c0338TNN9+MkSNH4tprr0VwcDC8vLxgsVhQUlKCjz/+GOnp6di7dy+GDBly1rHbtm3DddddhwULFuD666+HSqVq2yYIAk6cOIG1a9diyZIl2LZt21nHVlZWoqqqCnV1dQgICDhr2/fff49Zs2YhLS0NCxYsQHh4OBQKBZxOJwoLC3H48GHcdNNNMJlM+MMf/tCl78Hjjz+O//znP7jllluQnJwMmUzWts1qtWL//v144okn4OXlhUceeeSsYy0WC0aNGoWCggJce+21WLRoEbRaLQCgsbEROTk5eOKJJ/D5559j3759UCgUZx1vNpsxatQolJaW4tprr8XVV18NHx8fNDY2oqysDN999x3ef/99zJgxA3l5eedkLywsRH5+/nlfY1FRUbvHA8Cjjz6Khx9+GFOmTMGNN96I0NBQSKVS2Gw2lJaW4ssvv8TQoUOxefNmTJo06axjGxoaUFVVhTfffBPPP/88Ro4ciSuvvBJhYWHw8vJCRUUFfvjhB0ybNg2vv/46br755nOu35OfaU5OTrtdfQsLC3HixAnMmjULBw4cwLx58zBz5kwEBgaiubkZeXl5eP7557F+/XocPnz4rH+fQMu/0UsvvRQ7duzANddcg3nz5kGn00EikcBkMqG4uBivvfYaXnnlFVRVVcHpdEIq5f1tIhKBQEREbuehhx4SQkNDheLi4nYfhYWFwqeffir4+/sLzz777DnHO51OITk5WbjiiisEh8PR7jWampqE5ORkYe7cueds+93vfidkZmYKTqezw4xr164VAAglJSVnPb9lyxYBgJCdnX3OMRkZGcLMmTMFm83W4XmXL18uDBkypMPtv5WUlCTcddddne5zxx13CMnJyec8/9RTTwlSqVQ4ePBgh8dmZWUJUqlUePHFF8/Z9t///ldQKBTCiRMn2j3W6XQK77zzjiCTyYTIyMhztt94443CxIkTO80uCC3/Hto7vrS0VFCpVMJf//rXDn9WFotFmDRpkjBmzJhztuXn5wsABF9fX2Hr1q0dvobly5cLwcHBQlNT0znbe/IzBSC8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RugMi7V+cLrro6+vL4s1IiIiIiLq0vAoTjBCRERERETkglisERERERERuSAWa0RERERERC6IxRoREREREZELYrFGRERERETkglisERERERERuSAWa0RERERERC6IxRoREREREZELYrFGRERERETkglisERERERERuSAWa0RERERERC6IxRoREREREZELYrFGRERERETkglisERERERERuSAWa0RERERERC6IxRoREREREZELYrFGRERERETkglisERERERH1gMPpxBO/HMH1n21HYUOT2HHIg8jFDkBERERE5K4qmoy47rMd2FxQDgD4KrsEb18+EfNTY0VORp6ALWtERERERBfg+7wyDHvtC2wuKIdKJkOsToMGixVXfLIFf/pmF6wOh9gRyc2xWCMiIiIi6ga704kHtu7HJWu+RWWzGXE6HzwzazQ+uGIyFg+OAwA8t+c4xr31NfLqG8UNS25NIgiCIHYIT2cwGKDT6aDX6+Hr6yt2HCIiIiK6QKWGZlz72XZsL6oEAFwcH46/jktHoLeqbZ8tBeV4dMchNFrt0Hop8MZlE7BocLxYkcnFdKc2YMsaEREREVEXbMotwbDXv8D2okqo5TLcM2YwHp0y/KxCDQCmxYXjgwVTMDhIh0arDVd/ug23b/gFZrtdpOTkrlisERERERF1wuZw4m8/7MXsD75HjdGCBD8fPDdrDJYMiYdC1v7H6TAfNd6cNxFLh7S0qL28/yTGvvk1susM/Rmd3By7QfYDdoMkIiIick9F+iYsWb8dP5dUAQAuTYzE3WMHIVCtOs+Rv9pRVImHth2EwWqDRiHHq3PH49ohiX0VmVwcu0ESEREREfVQWaMRI9/4Ej+XVMFbIce949Px8OSh3SrUAGBSTCg+XDgZGSF+aLbZsfSzHXhq55E+Sk2ehMUaEREREVE7/rnjEGqMFsT4avD8rDG4elAc5NIL+/gcolHjtbkTcG16S7fIh7YfRJ3R3JtxyQOxWCMiIiIi+o3cOgNeP3gKAPCHkanIDA2ARCLp0TnlUin+PHYwEv21aLLa8c8fD/VGVPJgLNaIiIiIiH7joe0HYXcKGBEWgCmxYb12XqlEgj+OSgMAvLz/FMobjb12bvI8LNaIiIiIiM6QVVWPNUfyAAA3ZiZ2OOPjhZoUHYL0YD+Y7Q48sO1Ar56bPAuLNSIiIiKiMzywdT8E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xbhx4zBy5Mg69wsh4xISEtCnT59am6RUWblyJcaPH49Tp06hsrJSt1yj0eD8+fMYPXo03n777UcappyMi46ORkxMTI3z0xQXF2PJkiVo06aN7hdLXkPmjdeOaQ0dOhQbN27E+fPnq434WFpaivfffx9OTk66eSR5/ZhOdHQ0tmzZgri4uGpf8isrK7FlyxakpKTgmWeeAXC//+D69euxY8cOvWargiAgMzMT06ZNQ0BAAAcdaSAVFRWwtLSscV2XLl3g6+uL6dOnIzMzU+9aKykpwfbt27FhwwYsWLDgsY8vEThma5OXn5+PlStX4sCBA3oJm5OTE5577jksX778kft7UP354IMP4OjoiEmTJumWJSQkYOnSpbh06ZLuDVkqlcLT0xNTpkzBpEmT+EWmnn322Wd46623jE4GK5fLcfr0aXh4eAAAjh07hlWrViElJUX3pUYul8PX1xdz5szBiBEjar1LR7UTBAGffvopNm3ahNzcXL0PQXt7ewwcOBDLly/Xa7rKa8h8zJo1C0OGDEHfvn11y3jtmNbevXuxevVq3LhxQy8pUCgU6NevH9599124urrqlvP6MZ2zZ89i0aJFSExM1PvxwsrKCj179sSqVat0d9YAIDU1FYsXL8aZM2d0zcMlEgnc3NzwyiuvYPbs2bC2tjb5eTQHYWFhRpsUl5WVYcOGDdi5cydycnJ0n1X29vbo1q0b3nvvvRoH8XlUTNaIiIiIiIjMEJtBEhERERERmSEma0RERERERGaIyRoREREREZEZYrJGRERERERkhpisERERERERmSEma0RERERERGaIyRoREREREZEZYrJGRERERERkhpisERERERERmSELsQMgIiIi49RqNVQqFQDA2dkZCoVCtFgEQUBWVhYEQYC9vT0cHR1Fi4WIqKnjnTUiIjI7O3bsgEQiqfNj1apVun289tprsLKywoEDB0Q8k/oxZ84ceHt7w9vbG/379xc1li1btsDLywve3t7w8vISNRYioqaOd9aIiMjsPP/88/j4448hCILe8tu3b+Pdd9/FzJkz0bp162rb9evXT/f3iRMnUFFRgTNnzmDgwIENHnNDKiwsxPPPP485c+YgKChI1FhefvlluLm54c8//8SiRYtEjYWIqKljskZERGbH3d0db7zxRrXlqampePfddxEZGYnevXsb3cfEiROxe/du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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "from quantify_scheduler.backends.graph_compilation import SerialCompiler\n", "\n", "compiler = SerialCompiler(name=\"compiler\")\n", "compiled_sched = compiler.compile(\n", " schedule=sched, config=single_transmon_device.generate_compilation_config()\n", ")\n", "\n", "compiled_sched.plot_pulse_diagram()" ] }, { "cell_type": "markdown", "id": "992551e1", "metadata": {}, "source": [ "We can view the compiled sequencer instructions sent to the QCM module. This may be compared to the program in the [Basic Sequencing](https://docs.qblox.com/en/main/tutorials/q1asm_tutorials/basic/generated/QRM/010_basic_sequencing.html) tutorial. Notice the extra instructions here that set the gain for each waveform played and the automatically calculated wait times." ] }, { "cell_type": "code", "execution_count": 19, "id": "23c7d717", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.847648Z", "iopub.status.busy": "2024-11-13T02:44:52.847051Z", "iopub.status.idle": "2024-11-13T02:44:52.851239Z", "shell.execute_reply": "2024-11-13T02:44:52.850519Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " set_mrk 0 # set markers to 0\n", " wait_sync 4 \n", " upd_param 4 \n", " wait 4 # latency correction of 4 + 0 ns\n", " move 134217728,R0 # iterator for loop with label start\n", "start: \n", " reset_ph \n", " upd_param 4 \n", " set_awg_gain 6554,-32768 # setting gain for NumericalPulse\n", " play 0,0,4 # play NumericalPulse (48 ns)\n", " wait 44 # auto generated wait (44 ns)\n", " set_awg_gain 9821,0 # setting gain for X transmon\n", " play 1,1,4 # play X transmon (20 ns)\n", " wait 16 # auto generated wait (16 ns)\n", " loop R0,@start \n", " stop \n", "\n" ] } ], "source": [ "print(\n", " compiled_sched.compiled_instructions[\"cluster0\"][f\"cluster0_module{slot_no}\"][\"sequencers\"][\n", " \"seq0\"\n", " ][\"sequence\"][\"program\"]\n", ")" ] }, { "cell_type": "markdown", "id": "ebd9aa73", "metadata": {}, "source": [ "## Instrument coordinator\n", "\n", "We create and instrument coordinator to prepare and run the schedule" ] }, { "cell_type": "code", "execution_count": 20, "id": "61519215", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.853152Z", "iopub.status.busy": "2024-11-13T02:44:52.852962Z", "iopub.status.idle": "2024-11-13T02:44:52.977752Z", "shell.execute_reply": "2024-11-13T02:44:52.977075Z" } }, "outputs": [], "source": [ "from quantify_scheduler.instrument_coordinator import InstrumentCoordinator\n", "from quantify_scheduler.instrument_coordinator.components.qblox import ClusterComponent\n", "\n", "instrument_coordinator = find_or_create_instrument(\n", " InstrumentCoordinator, recreate=True, name=\"instrument_coordinator\"\n", ")\n", "instrument_coordinator.add_component(ClusterComponent(cluster))" ] }, { "cell_type": "code", "execution_count": 21, "id": "170fdf98", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:52.979985Z", "iopub.status.busy": "2024-11-13T02:44:52.979815Z", "iopub.status.idle": "2024-11-13T02:44:53.357949Z", "shell.execute_reply": "2024-11-13T02:44:53.354598Z" } }, "outputs": [], "source": [ "# Set the qcodes parameters and upload the schedule program\n", "instrument_coordinator.prepare(compiled_sched)" ] }, { "cell_type": "markdown", "id": "142c0113", "metadata": {}, "source": [ "We can now start the playback of the schedule. If you wish to view the signals on an oscilloscope, you can make the necessary connections and set up the oscilloscope accordingly." ] }, { "cell_type": "code", "execution_count": 22, "id": "2537907b", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:53.365861Z", "iopub.status.busy": "2024-11-13T02:44:53.365692Z", "iopub.status.idle": "2024-11-13T02:44:53.404029Z", "shell.execute_reply": "2024-11-13T02:44:53.401154Z" } }, "outputs": [], "source": [ "# Start the hardware execution\n", "instrument_coordinator.start()" ] }, { "cell_type": "code", "execution_count": 23, "id": "7a685174", "metadata": { "execution": { "iopub.execute_input": "2024-11-13T02:44:53.412218Z", "iopub.status.busy": "2024-11-13T02:44:53.411368Z", "iopub.status.idle": "2024-11-13T02:44:53.720029Z", "shell.execute_reply": "2024-11-13T02:44:53.716698Z" } }, "outputs": [], "source": [ "instrument_coordinator.stop()" ] } ], "metadata": { "jupytext": { "cell_metadata_filter": "-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 }