{ "cells": [ { "cell_type": "markdown", "id": "e3b1a093", "metadata": {}, "source": [ "# Gate Leakage using multiple QDAC-IIs" ] }, { "cell_type": "code", "execution_count": 1, "id": "5203079c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Connected to: QDevil QDAC-II (serial:3, firmware:11-1.14) in 0.21s\n", "Connected to: QDevil QDAC-II (serial:2, firmware:11-1.14) in 0.25s\n" ] } ], "source": [ "from time import sleep\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from IPython.display import Image, display\n", "from qcodes_contrib_drivers.drivers.QDevil import QDAC2\n", "from qcodes_contrib_drivers.drivers.QDevil import QDAC2_Array\n", "qdac1_addr = '192.168.8.17'\n", "qdac1 = QDAC2.QDac2('QDAC_1', visalib='@py', address=f'TCPIP::{qdac1_addr}::5025::SOCKET')\n", "qdac2_addr = '192.168.8.19'\n", "qdac2 = QDAC2.QDac2('QDAC_2', visalib='@py', address=f'TCPIP::{qdac2_addr}::5025::SOCKET')" ] }, { "cell_type": "code", "execution_count": 2, "id": "8b18fa5a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Controller: QDAC_1\n", "Listener: QDAC_2\n" ] } ], "source": [ "# Connect the two QDAC-IIs together as described in section 5.5 of the manual\n", "qdacs = QDAC2_Array.QDac2_Array(qdac1, [qdac2])\n", "controller, listener, *_ = qdacs.names\n", "print(f'Controller: {controller}')\n", "print(f'Listener: {listener}')" ] }, { "cell_type": "code", "execution_count": 7, "id": "05940293", "metadata": {}, "outputs": [], "source": [ "# For testing, connect resistors: \n", "# - Controller: 33M between ch 3 & 4, and 5G over ch 1 \n", "# - Listener: 47M over ch 1 and 5M6 over ch 3\n", "contacts = {controller: {'G1': 1, 'G2': 2, 'G3': 3, 'G4': 4},\n", " listener: {'G5': 1, 'O6': 3}}\n", "arrangement = qdacs.arrange(contacts)\n", "arrangement.set_virtual_voltages({\n", " 'G1': 0.01, 'G2': 0.015, 'G3': 0.013, 'G4': 0.021, 'G5': 0.005, 'O6': 0.011})\n", "sleep(3)" ] }, { "cell_type": "code", "execution_count": 8, "id": "bdcaa052", "metadata": {}, "outputs": [], "source": [ "# Measure leakage by raising the voltage by 3 mV on each channel in turn. \n", "modulation_mV=3\n", "powerline_cycles=2\n", "leakage_matrix_Ohm = arrangement.leakage(\n", " modulation_V=modulation_mV/1000, nplc=powerline_cycles)" ] }, { "cell_type": "code", "execution_count": 9, "id": "b6c26ec8", "metadata": {}, "outputs": [], "source": [ "leakage_megaohm = leakage_matrix_Ohm / 1e6" ] }, { "cell_type": "code", "execution_count": 10, "id": "c5e7f753", "metadata": {}, "outputs": [ { "data": { "image/png": "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5OTkZFRUVCAyMhLr16/H0aNHkZmZiTVr1uDYsWNwdHTEyZMnER8fj4MHD+LMmTPYtWsXhgwZAo1GI6+xJCIishgbJgb79+/HW2+9VW2i35QpU/DFF1/gk08+wY4dO3D+/Hk89thjpr9QDerFlsihoaFIT09HXFwcYmNjcfbsWahUKkRERGDatGmYMGEC8vPz8dNPP2HZsmW4cuUK/Pz80LNnT+zatQu+vr4mBUpERFTXblwRd6th7mvXriEmJgarVq3CggUL5PKCggK88847WLduHe6//34AQGpqKlq1aoU9e/aga9euFom33myJHBAQgOXLl+PkyZMoKyvD1atXsXfvXkybNg2urq4IDAzEV199hby8PJSVlSEnJwdr166ttpqBiIjIEqomH5pzAEBQUJA8P87T0xPx8fH/+rparRb9+/dH7969DcoPHjyI8vJyg/KWLVuiadOm2L17t8XaXRdbIvMhSkREpHwWWq6Yk5MDDw8Pufjfegs++ugjHDp0CPv37692Ljc3Fy4uLvDy8jIo9/PzQ25urhmBGqraErljx4622xKZiIio3rHQHAMPDw+D42aJQU5ODiZPnoy1a9fWuATfWurFlshERET27uDBg/jzzz9x1113yWU6nQ4//vgjEhMT8c0336CsrAz5+fkGvQZ5eXnw9/e3WBx1sSUyewyIiEjxLDXHoLYeeOABHDlyBBkZGfIRGRmJmJgY+WtnZ2ds27ZNviczMxNnzpxBt27dLNr2n376CSNGjED37t1x7tw5AMDq1auxc+dOk+pjjwERESmflbdEbtCgAdq0aWNQ5ubmBh8fH7n8mWeewdSpU+Ht7Q0PDw88//zz6Natm8VWJADAhg0b8NRTTyEmJgaHDh2S9woqKChAXFwcvvrqK6PrZI8BERFRHVi6dCkeeeQRDB48GD179oS/vz8+++wzi77GggULsGLFCqxatQrOzs5yeVRUFA4dOmRSnewxICIixasPz0rYvn27wfdqtRpJSUlISkoyv/KbyMzMRM+ePauVe3p6Ij8/36Q62WNARETKZ+MtkW3F398fWVlZ1cp37twpP8fIWEwMiIiIFGrs2LGYPHky9u7dC0mScP78eaxduxbTpk3Dc889Z1KdHEogIiLls/Lkw/pi5syZ0Ov1eOCBB1BcXIyePXtCpVJh2rRpeP75502qk4kBEREpnvT3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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Show the leakage matrix but cap it off at 100 MΩ\n", "fig, ax = plt.subplots()\n", "plt.title(f'Gate Leakage ({modulation_mV}mV)')\n", "img = ax.imshow(leakage_megaohm, interpolation='none', vmin=0, vmax=100)\n", "ticks = np.arange(len(arrangement.contact_names))\n", "minorticks = np.arange(-0.5, len(ticks), 1)\n", "ax.set_xticks(ticks, labels=arrangement.contact_names)\n", "ax.set_yticks(ticks, labels=arrangement.contact_names)\n", "ax.set_xticks(minorticks, minor=True)\n", "ax.set_yticks(minorticks, minor=True)\n", "ax.grid(which='minor', color='grey', linewidth=1.5)\n", "plt.gca().invert_yaxis()\n", "colorbar = fig.colorbar(img)\n", "colorbar.set_label('Resistance (MΩ)')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10" }, "nbsphinx": { "execute": "never" } }, "nbformat": 4, "nbformat_minor": 5 }