{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/javascript": [
       "\n",
       "try {\n",
       "require(['notebook/js/codecell'], function(codecell) {\n",
       "  codecell.CodeCell.options_default.highlight_modes[\n",
       "      'magic_text/x-csrc'] = {'reg':[/^%%microblaze/]};\n",
       "  Jupyter.notebook.events.one('kernel_ready.Kernel', function(){\n",
       "      Jupyter.notebook.get_cells().map(function(cell){\n",
       "          if (cell.cell_type == 'code'){ cell.auto_highlight(); } }) ;\n",
       "  });\n",
       "});\n",
       "} catch (e) {};\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "application/javascript": [
       "\n",
       "try {\n",
       "require(['notebook/js/codecell'], function(codecell) {\n",
       "  codecell.CodeCell.options_default.highlight_modes[\n",
       "      'magic_text/x-csrc'] = {'reg':[/^%%pybind11/]};\n",
       "  Jupyter.notebook.events.one('kernel_ready.Kernel', function(){\n",
       "      Jupyter.notebook.get_cells().map(function(cell){\n",
       "          if (cell.cell_type == 'code'){ cell.auto_highlight(); } }) ;\n",
       "  });\n",
       "});\n",
       "} catch (e) {};\n"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Populating the interactive namespace from numpy and matplotlib\n"
     ]
    }
   ],
   "source": [
    "# Import the QICK drivers and auxiliary libraries\n",
    "from qick import *\n",
    "from qick.rfboard import RFQickSoc\n",
    "%pylab inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "resetting clocks: 204.8\n",
      "\n",
      "QICK configuration:\n",
      "\n",
      "\tBoard: ZCU111\n",
      "\n",
      "\tGlobal clocks (MHz): tProcessor 384.000, RF reference 204.800\n",
      "\n",
      "\t7 signal generator channels:\n",
      "\t0:\taxis_signal_gen_v4 - tProc output 1, switch ch 0, maxlen 65536\n",
      "\t\tDAC tile 0, ch 0, 32-bit DDS, fabric=384.000 MHz, fs=6144.000 MHz\n",
      "\t1:\taxis_signal_gen_v4 - tProc output 2, switch ch 1, maxlen 65536\n",
      "\t\tDAC tile 0, ch 1, 32-bit DDS, fabric=384.000 MHz, fs=6144.000 MHz\n",
      "\t2:\taxis_signal_gen_v4 - tProc output 3, switch ch 2, maxlen 65536\n",
      "\t\tDAC tile 0, ch 2, 32-bit DDS, fabric=384.000 MHz, fs=6144.000 MHz\n",
      "\t3:\taxis_signal_gen_v4 - tProc output 4, switch ch 3, maxlen 65536\n",
      "\t\tDAC tile 1, ch 0, 32-bit DDS, fabric=384.000 MHz, fs=6144.000 MHz\n",
      "\t4:\taxis_signal_gen_v4 - tProc output 5, switch ch 4, maxlen 65536\n",
      "\t\tDAC tile 1, ch 1, 32-bit DDS, fabric=384.000 MHz, fs=6144.000 MHz\n",
      "\t5:\taxis_signal_gen_v4 - tProc output 6, switch ch 5, maxlen 65536\n",
      "\t\tDAC tile 1, ch 2, 32-bit DDS, fabric=384.000 MHz, fs=6144.000 MHz\n",
      "\t6:\taxis_signal_gen_v4 - tProc output 7, switch ch 6, maxlen 65536\n",
      "\t\tDAC tile 1, ch 3, 32-bit DDS, fabric=384.000 MHz, fs=6144.000 MHz\n",
      "\n",
      "\t2 readout channels:\n",
      "\t0:\tADC tile 0, ch 0, 32-bit DDS, fabric=384.000 MHz, fs=3072.000 MHz\n",
      "\t\tmaxlen 1024 (avg) 1024 (decimated), trigger 14, tProc input 0\n",
      "\t1:\tADC tile 0, ch 1, 32-bit DDS, fabric=384.000 MHz, fs=3072.000 MHz\n",
      "\t\tmaxlen 1024 (avg) 1024 (decimated), trigger 15, tProc input 1\n",
      "\n",
      "\ttProc: 8192 words program memory, 4096 words data memory\n"
     ]
    }
   ],
   "source": [
    "# Load bitstream with custom overlay\n",
    "# soc = QickSoc()\n",
    "soc = RFQickSoc(bitfile=\"qick_111_rfbrd.bit\")\n",
    "# Since we're running locally on the QICK, we don't need a separate QickConfig object.\n",
    "# If running remotely, you could generate a QickConfig from the QickSoc:\n",
    "#     soccfg = QickConfig(soc.get_cfg())\n",
    "# or save the config to file, and load it later:\n",
    "#     with open(\"qick_config.json\", \"w\") as f:\n",
    "#         f.write(soc.dump_cfg())\n",
    "#     soccfg = QickConfig(\"qick_config.json\")\n",
    "soccfg = soc\n",
    "print(soccfg)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Set BIAS DACs to integer values for testing.\n",
    "for i in range(8):\n",
    "    soc.rfb_set_bias(i, i+1)\n",
    "    \n",
    "# Set LO to 6.5 GHz\n",
    "soc.rfb_set_lo(6500)\n",
    "\n",
    "# Set attenuators to good values (tested for loopback with 10 dB external attenuation)\n",
    "for iGen in range(len(soccfg['gens'])):\n",
    "    soc.rfb_set_genrf(gen_ch=iGen, att1=0, att2=30)\n",
    "\n",
    "for iRo in range(len(soccfg['readouts'])):\n",
    "    soc.rfb_set_ro(ro_ch=iRo, att=30)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Hardware Configuration\n",
    "\n",
    "generator channel 6   : DAC 229 CH3  <-> Readout channel 0 : ADC 224 CH0"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Things to know when writing programs\n",
    "\n",
    "### How to avoid timing problems\n",
    "Timed instructions are executed in two steps: first when the control core of the tProcessor pushes the instruction into the timed queue, and second when the instruction pops off the timed queue.\n",
    "* The control core executes all instructions in order and (except wait/waiti) as quickly as possible. If you have a non-timed instruction with external effects, it will generally execute before the timed instructions before and after it. Specifically, programs typically use memwi to update a data counter, and then read that counter to know how many data samples to get from the buffers - if the memwi happens before the readout is triggered or completed, you will read invalid data.\n",
    "* If the instruction is pushed later than the specified time, it will execute later than specified - this can lead to variations in the relative timing of pulses and readout windows. You are responsible for keeping the control core running ahead of the instruction times.\n",
    "\n",
    "Things you should do in your programs:\n",
    "* Your initialization should contain a synci instruction which gives the tProcessor time to get ahead of the clock.\n",
    "* Put a `sync_all()` somewhere in your loop body, probably at the end. This ensures that you don't have pulses or readouts that exceed the loop length.\n",
    "* Put a waiti instruction after the last readout in your loop body, to make sure the tProcessor doesn't prematurely update the data counter.\n",
    "* Follow the waiti with a sync that exceeds the waiti, to allow the tProcessor to get ahead of the clock.\n",
    "\n",
    "The last three points are automatically addressed if the last timed instruction in your loop body is a `measure()` instruction that specifies `wait=True` and a nonzero `syncdelay`.\n",
    "\n",
    "### How to ensure frequency matching\n",
    "DACs and ADCs have different frequency units, and the frequencies used in the two systems must be exactly equal. If they are not, there will be a small difference between the upconversion and downconversion frequencies - this will manifest as a sliding phase, and so you will not see a consistent phase between acquisitions.\n",
    "\n",
    "There are two ways to ensure frequency matching:\n",
    "* When converting a frequency to an integer value (often with `freq2reg()` or `declare_readout()`), specify not only the channel you are configuring, but the channel you want to be frequency-matched to.\n",
    "* Before doing any conversion, round the frequency to the closest frequency that is valid on both channels using `soccfg.adcfreq(f, gen_ch, ro_ch)`.\n",
    "\n",
    "Frequency-matching makes your frequency resolution worse, since the smallest possible frequency step is now the LCM of the two channels' frequency steps. Usually this doesn't matter - O(10 Hz) resolution is ample for most applications - but you can disable frequency-matching by specifying None as the other channel.\n",
    "\n",
    "You may have a DAC channel that does not itself drive any ADC channels, but needs to be phase-locked to a DAC channel that does. In this case you will want to frequency-match both DAC channels to that ADC, otherwise you will have a sliding phase between the two DAC channels.\n",
    "\n",
    "Since all DAC and ADC channels are the same in the standard QICK firmware, it's OK to just use ch 0 for the matched channel. But it's a good habit to do this consistently correctly, and that is the approach here.\n",
    "\n",
    "### Clocks and durations\n",
    "Time durations are generally specified in units of clock cycles. The relevant clocks are the tProcessor clock and the fabric clocks of the DACs and ADCs. In general these can all be different (and can even vary among DACs), though the standard ZCU111 firmware uses the same clock in all three places.\n",
    "\n",
    "For convenience, the `us2cycles()` and `cycles2us()` methods will convert between floating-point times and integer cycles. You should be careful to specify which clock you are using, and set the appropriate parameter in `us2cycles()`:\n",
    "* Pulse parameters (the `length` parameter to `set_pulse_registers()`, the `length` and `sigma` parameters to `add_gauss`) use the DAC clock and you should specify `gen_ch`.\n",
    "* Readout parameters (the `length` parameter to `declare_readout()`) use the ADC clock and you should specify `ro_ch`.\n",
    "* All other values will use the tProc clock. This includes sync and wait commands, and any sort of delay (`t`, `adc_trig_offset`). No special parameter needed.\n",
    "\n",
    "### How to play pulses\n",
    "There are three steps to playing a pulse:\n",
    "\n",
    "#### Loading a waveform\n",
    "(You skip this step for rectangular \"const\" pulses, which have no envelope.)\n",
    "\n",
    "Each signal generator has an internal waveform memory, which stores the I/Q data for the pulse envelope. Multiple waveforms can be stored in the same signal generator, and a single waveform can be used for different pulses (e.g. a Gaussian waveform can be used for Gaussian pulses and the ramp-up/ramp-down of flat-top pulses with different flat-top duration, each with its own gain and carrier frequency).\n",
    "\n",
    "`add_pulse(ch, name, idata, qdata)` writes an arbitrary waveform to the specified channel's waveform memory. \n",
    "`add_gauss(ch, name, length, sigma)`, `add_triangle(ch, name, length)`, and `add_DRAG(ch, name, length, sigma, delta, alpha)` write commonly-used standard pulse waveforms, with duration units of fabric clock cycles. The name is used in the next step.\n",
    "\n",
    "#### Setting registers\n",
    "There are a lot of parameters that need to be specified when playing a pulse - more than can be specified inline in a tProcessor instruction. So all the parameters must be written to registers first, and when we fire the pulse we just tell the tProcessor which registers to read.\n",
    "\n",
    "`set_pulse_registers()` writes the settings for a pulse to registers. All arguments to this method must be integers in the native units of the signal generator. This can happen immediately before you fire the pulse, but if a signal generator is only used for one type of pulse you will save time for the tProcessor by setting registers in initialization, before the program loop.\n",
    "\n",
    "If you want to modify pulse parameters on the fly (for example, you might want to sweep the frequency of the qubit drive pulse), you will set the registers in two steps (you can see an example in the demo 02_Sweeping_variables):\n",
    "* First, use set_pulse_registers() to write initial values for all parameters. You could do this in initialization, or right before the following step.\n",
    "* Second, overwrite the register(s) you want to update. You need to get the page and address of the register using ch_page(ch) and sreg(ch, name). Then you can use assembly instructions to change the value of that register.\n",
    "\n",
    "#### Firing the pulse\n",
    "`pulse(ch, t)` fires a pulse on the specified channel at the specified time, using whatever values are loaded in the registers.\n",
    "\n",
    "Often you will want to trigger the readout at the same time: `measure()` is a wrapper around `trigger()` and `pulse()`, and that's what is used in this demo."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "class LoopbackProgram(AveragerProgram):\n",
    "    def initialize(self):\n",
    "        cfg=self.cfg   \n",
    "        res_ch = cfg[\"res_ch\"]\n",
    "\n",
    "        # set the nyquist zone\n",
    "        self.declare_gen(ch=cfg[\"res_ch\"], nqz=1)\n",
    "        \n",
    "        # configure the readout lengths and downconversion frequencies (ensuring it is an available DAC frequency)\n",
    "        for ch in cfg[\"ro_chs\"]:\n",
    "            self.declare_readout(ch=ch, length=self.cfg[\"readout_length\"],\n",
    "                                 freq=self.cfg[\"pulse_freq\"], gen_ch=cfg[\"res_ch\"])\n",
    "\n",
    "        # convert frequency to DAC frequency (ensuring it is an available ADC frequency)\n",
    "        freq = self.freq2reg(cfg[\"pulse_freq\"],gen_ch=res_ch, ro_ch=cfg[\"ro_chs\"][0])\n",
    "        phase = self.deg2reg(cfg[\"res_phase\"], gen_ch=res_ch)\n",
    "        gain = cfg[\"pulse_gain\"]\n",
    "        self.default_pulse_registers(ch=res_ch, freq=freq, phase=phase, gain=gain)\n",
    "\n",
    "        style=self.cfg[\"pulse_style\"]\n",
    "\n",
    "        if style in [\"flat_top\",\"arb\"]:\n",
    "            sigma = cfg[\"sigma\"]\n",
    "            self.add_gauss(ch=res_ch, name=\"measure\", sigma=sigma, length=sigma*5)\n",
    "            \n",
    "        if style == \"const\":\n",
    "            self.set_pulse_registers(ch=res_ch, style=style, length=cfg[\"length\"])\n",
    "        elif style == \"flat_top\":\n",
    "            # The first half of the waveform ramps up the pulse, the second half ramps down the pulse\n",
    "            self.set_pulse_registers(ch=res_ch, style=style, waveform=\"measure\", length=cfg[\"length\"])\n",
    "        elif style == \"arb\":\n",
    "            self.set_pulse_registers(ch=res_ch, style=style, waveform=\"measure\")\n",
    "        \n",
    "        self.synci(200)  # give processor some time to configure pulses\n",
    "    \n",
    "    def body(self):\n",
    "        # fire the pulse\n",
    "        # trigger all declared ADCs\n",
    "        # pulse PMOD0_0 for a scope trigger\n",
    "        # pause the tProc until readout is done\n",
    "        # increment the time counter to give some time before the next measurement\n",
    "        # (the syncdelay also lets the tProc get back ahead of the clock)\n",
    "        self.measure(pulse_ch=self.cfg[\"res_ch\"], \n",
    "                     adcs=self.ro_chs,\n",
    "                     pins=[0], \n",
    "                     adc_trig_offset=self.cfg[\"adc_trig_offset\"],\n",
    "                     wait=True,\n",
    "                     syncdelay=self.us2cycles(self.cfg[\"relax_delay\"]))\n",
    "        \n",
    "        # equivalent to the following:\n",
    "#         self.trigger(adcs=self.ro_chs,\n",
    "#                      pins=[0], \n",
    "#                      adc_trig_offset=self.cfg[\"adc_trig_offset\"])\n",
    "#         self.pulse(ch=self.cfg[\"res_ch\"])\n",
    "#         self.wait_all()\n",
    "#         self.sync_all(self.us2cycles(self.cfg[\"relax_delay\"]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Send/receive a pulse with <code> pulse_style </code> = <code> const </code>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "5242490f466b4913ad56378c0bedddbe",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "config={\"res_ch\":5, # --Fixed\n",
    "        \"ro_chs\":[1], # --Fixed\n",
    "        \"reps\":1, # --Fixed\n",
    "        \"relax_delay\":1.0, # --us\n",
    "        \"res_phase\":0, # --degrees\n",
    "        \"pulse_style\": \"const\", # --Fixed\n",
    "        \n",
    "        \"length\":50, # [Clock ticks]\n",
    "        # Try varying length from 10-100 clock ticks\n",
    "        \n",
    "        \"readout_length\":200, # [Clock ticks]\n",
    "        # Try varying readout_length from 50-1000 clock ticks\n",
    "\n",
    "        \"pulse_gain\":10000, # [DAC units]\n",
    "        # Try varying pulse_gain from 500 to 30000 DAC units\n",
    "\n",
    "        \"pulse_freq\": 1000, # [MHz]\n",
    "        # In this program the signal is up and downconverted digitally so you won't see any frequency\n",
    "        # components in the I/Q traces below. But since the signal gain depends on frequency, \n",
    "        # if you lower pulse_freq you will see an increased gain.\n",
    "\n",
    "        \"adc_trig_offset\": 100, # [Clock ticks]\n",
    "        # Try varying adc_trig_offset from 100 to 220 clock ticks\n",
    "\n",
    "        \"soft_avgs\":100\n",
    "        # Try varying soft_avgs from 1 to 200 averages\n",
    "\n",
    "       }\n",
    "\n",
    "###################\n",
    "# Try it yourself !\n",
    "###################\n",
    "\n",
    "prog =LoopbackProgram(soccfg, config)\n",
    "iq_list = prog.acquire_decimated(soc, load_pulses=True, progress=True, debug=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot results.\n",
    "plt.figure(1)\n",
    "for ii, iq in enumerate(iq_list):\n",
    "    plt.plot(iq[0], label=\"I value, ADC %d\"%(config['ro_chs'][ii]))\n",
    "    plt.plot(iq[1], label=\"Q value, ADC %d\"%(config['ro_chs'][ii]))\n",
    "    plt.plot(np.abs(iq[0]+1j*iq[1]), label=\"mag, ADC %d\"%(config['ro_chs'][ii]))\n",
    "plt.ylabel(\"a.u.\")\n",
    "plt.xlabel(\"Clock ticks\")\n",
    "plt.title(\"Averages = \" + str(config[\"soft_avgs\"]))\n",
    "plt.legend()\n",
    "plt.savefig(\"images/Send_recieve_pulse_const.pdf\", dpi=350)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Rep-to-rep consistency\n",
    "In this notebook we mostly use decimated readout (we acquire a full waveform, not just a single accumulated value). To avoid exhausting the waveform buffer, we usually run with reps=1 (the tProcessor program only fires+reads one pulse, and we run the program `soft_avgs` times).\n",
    "\n",
    "However, it's important to check that if you run a tProcessor loop with reps>1, the pulse looks the same in each iteration of the loop. So let's do a decimated readout with multiple reps; the 1024-sample buffer will allow for 10 reps of 100 samples each.\n",
    "\n",
    "Try changing the relax_delay to 0. You will see that the first rep appears in the same place, but the others are delayed by a bit because the tProcessor didn't have enough time between waiting for the measurement in one rep and firing the pulse in the next rep."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "8a28f1abc91049579e0b61726a9dc3b0",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0xffff76fcb8b0>"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "config={\"res_ch\":5, # --Fixed\n",
    "        \"ro_chs\":[1], # --Fixed\n",
    "        \"reps\":10, # --Fixed\n",
    "        \"relax_delay\":1.0, # --us\n",
    "        \"res_phase\":0, # --degrees\n",
    "        \"pulse_style\": \"const\", # --Fixed\n",
    "        \n",
    "        \"length\":20, # [Clock ticks]\n",
    "        # Try varying length from 10-100 clock ticks\n",
    "        \n",
    "        \"readout_length\":100, # [Clock ticks]\n",
    "        # Try varying readout_length from 50-1000 clock ticks\n",
    "\n",
    "        \"pulse_gain\":10000, # [DAC units]\n",
    "        # Try varying pulse_gain from 500 to 30000 DAC units\n",
    "\n",
    "        \"pulse_freq\": 1000, # [MHz]\n",
    "        # In this program the signal is up and downconverted digitally so you won't see any frequency\n",
    "        # components in the I/Q traces below. But since the signal gain depends on frequency, \n",
    "        # if you lower pulse_freq you will see an increased gain.\n",
    "\n",
    "        \"adc_trig_offset\": 100, # [Clock ticks]\n",
    "        # Try varying adc_trig_offset from 100 to 220 clock ticks\n",
    "\n",
    "        \"soft_avgs\":100\n",
    "        # Try varying soft_avgs from 1 to 200 averages\n",
    "\n",
    "       }\n",
    "\n",
    "###################\n",
    "# Try it yourself !\n",
    "###################\n",
    "\n",
    "prog =LoopbackProgram(soccfg, config)\n",
    "iq_list = prog.acquire_decimated(soc, load_pulses=True, progress=True, debug=False)\n",
    "\n",
    "plt.figure(1)\n",
    "for ii, iq in enumerate(iq_list[0]):\n",
    "#     plt.plot(iq[0], label=\"I value, rep %d\"%(ii))\n",
    "#     plt.plot(iq[1], label=\"Q value, rep %d\"%(ii))\n",
    "    plt.plot(np.abs(iq[0]+1j*iq[1]), label=\"mag, rep %d\"%(ii))\n",
    "plt.ylabel(\"a.u.\")\n",
    "plt.xlabel(\"Clock ticks\")\n",
    "plt.title(\"Averages = \" + str(config[\"soft_avgs\"]))\n",
    "plt.legend()\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Send/receive a pulse with <code> pulse_style </code> = <code> flat_top </code>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "730cc1de0ee54e518a5750224ca6bb97",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "config={\"res_ch\":5, # --Fixed\n",
    "        \"ro_chs\":[1], # --Fixed\n",
    "        \"reps\":1, # --Fixed\n",
    "        \"relax_delay\":1.0, # --us\n",
    "        \"res_phase\":0, # --degrees\n",
    "        \"pulse_style\": \"flat_top\", # --Fixed\n",
    "        \"length\": 50, # [Clock ticks]\n",
    "        # Try varying  length from 10-100 clock ticks\n",
    "        \"sigma\": 30, # [Clock ticks]\n",
    "        # Try varying sigma from 10-50 clock ticks\n",
    "        \n",
    "        \"readout_length\":300, # [Clock ticks]\n",
    "        # Try varying readout_length from 50-1000 clock ticks\n",
    "\n",
    "        \"pulse_gain\":30000, # [DAC units]\n",
    "        # Try varying pulse_gain from 500 to 30000 DAC units\n",
    "\n",
    "        \"pulse_freq\": 1000, # [MHz]\n",
    "        # In this program the signal is up and downconverted digitally so you won't see any frequency\n",
    "        # components in the I/Q traces below. But since the signal gain depends on frequency, \n",
    "        # if you lower pulse_freq you will see an increased gain.\n",
    "\n",
    "        \"adc_trig_offset\": 100, # [Clock ticks]\n",
    "        # Try varying adc_trig_offset from 100 to 220 clock ticks\n",
    "\n",
    "        \"soft_avgs\":100\n",
    "        # Try varying soft_avgs from 1 to 200 averages\n",
    "\n",
    "       }\n",
    "\n",
    "###################\n",
    "# Try it yourself !\n",
    "###################\n",
    "\n",
    "prog =LoopbackProgram(soccfg, config)\n",
    "iq_list = prog.acquire_decimated(soc, load_pulses=True, progress=True, debug=False)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot results.\n",
    "plt.figure(1)\n",
    "for ii, iq in enumerate(iq_list):\n",
    "    plt.plot(iq[0], label=\"I value, ADC %d\"%(config['ro_chs'][ii]))\n",
    "    plt.plot(iq[1], label=\"Q value, ADC %d\"%(config['ro_chs'][ii]))\n",
    "    plt.plot(np.abs(iq[0]+1j*iq[1]), label=\"mag, ADC %d\"%(config['ro_chs'][ii]))\n",
    "plt.ylabel(\"a.u.\")\n",
    "plt.xlabel(\"Clock ticks\")\n",
    "plt.title(\"Averages = \" + str(config[\"soft_avgs\"]))\n",
    "plt.legend()\n",
    "plt.savefig(\"images/Send_recieve_pulse_flattop.pdf\", dpi=350)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Send/receive a pulse with <code> pulse_style </code> = <code> arb </code>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "e271dac0623c44e0b8667d3314fd6fab",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "config={\"res_ch\":5, # --Fixed\n",
    "        \"ro_chs\":[1], # --Fixed\n",
    "        \"reps\":1, # --Fixed\n",
    "        \"relax_delay\":1.0, # --us\n",
    "        \"res_phase\":0, # --degrees\n",
    "        \"pulse_style\": \"arb\", # --Fixed\n",
    "        \n",
    "        \"sigma\": 30, # [Clock ticks]\n",
    "        # Try varying sigma from 10-50 clock ticks\n",
    "        \n",
    "        \"readout_length\":300, # [Clock ticks]\n",
    "        # Try varying readout_length from 50-1000 clock ticks\n",
    "\n",
    "        \"pulse_gain\":30000, # [DAC units]\n",
    "        # Try varying pulse_gain from 500 to 30000 DAC units\n",
    "\n",
    "        \"pulse_freq\": 1000, # [MHz]\n",
    "        # In this program the signal is up and downconverted digitally so you won't see any frequency\n",
    "        # components in the I/Q traces below. But since the signal gain depends on frequency, \n",
    "        # if you lower pulse_freq you will see an increased gain.\n",
    "\n",
    "        \"adc_trig_offset\": 100, # [Clock ticks]\n",
    "        # Try varying adc_trig_offset from 100 to 220 clock ticks\n",
    "\n",
    "        \"soft_avgs\":100\n",
    "        # Try varying soft_avgs from 1 to 200 averages\n",
    "\n",
    "       }\n",
    "\n",
    "###################\n",
    "# Try it yourself !\n",
    "###################\n",
    "\n",
    "prog =LoopbackProgram(soccfg, config)\n",
    "iq_list = prog.acquire_decimated(soc, load_pulses=True, progress=True, debug=False)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Plot results.\n",
    "plt.figure(1)\n",
    "for ii, iq in enumerate(iq_list):\n",
    "    plt.plot(iq[0], label=\"I value, ADC %d\"%(config['ro_chs'][ii]))\n",
    "    plt.plot(iq[1], label=\"Q value, ADC %d\"%(config['ro_chs'][ii]))\n",
    "    plt.plot(np.abs(iq[0]+1j*iq[1]), label=\"mag, ADC %d\"%(config['ro_chs'][ii]))\n",
    "plt.ylabel(\"a.u.\")\n",
    "plt.xlabel(\"Clock ticks\")\n",
    "plt.title(\"Averages = \" + str(config[\"soft_avgs\"]))\n",
    "plt.legend()\n",
    "plt.savefig(\"images/Send_recieve_pulse_arb.pdf\", dpi=350)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Compare the two main ways of acquiring data: <code>prog.acquire_decimated</code> and <code>prog.acquire</code>\n",
    "\n",
    "In the previous two demonstrations we used <code>prog.acquire_decimated</code> which uses the QICK decimated buffer (acquiring a whole time trace of data for every measurement shot. The QICK accumulated buffer is used in <code>prog.acquire</code>, which acquires a single I/Q data point per measurement shot- the average of the I/Q values in the decimated buffer. In qubit experiments we will be mainly using <code>prog.acquire</code> since for every shot we only need one I/Q value to assess the state of the qubit. So let's verify that <code>prog.acquire_decimated</code> and <code>prog.acquire</code> produce similar results (to within +/- 1 DAC units)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "77be34d70b994cfcbe33f25b7379616c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "  0%|          | 0/100 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# First, lets collect the results with the decimated buffer as we did before.\n",
    "config={\"res_ch\":5, # --Fixed\n",
    "        \"ro_chs\":[1], # --Fixed\n",
    "        \"reps\":1, # --Fixed\n",
    "        \"relax_delay\":1, # --Fixed\n",
    "        \"res_phase\":0, # --Fixed\n",
    "        \"pulse_style\": \"const\", # --Fixed\n",
    "        \"length\":20, # [Clock ticks]        \n",
    "        \"readout_length\":200, # [Clock ticks]\n",
    "        \"pulse_gain\":10000, # [DAC units]\n",
    "        \"pulse_freq\": 100, # [MHz]\n",
    "        \"adc_trig_offset\": 100, # [Clock ticks]\n",
    "        \"soft_avgs\":100\n",
    "       }\n",
    "\n",
    "prog =LoopbackProgram(soccfg, config)\n",
    "iq_list = prog.acquire_decimated(soc, load_pulses=True, progress=True, debug=False)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "I value; ADC 0; Decimated buffer:  -15.309\n",
      "Q value; ADC 0; Decimated buffer:  156.74785\n"
     ]
    }
   ],
   "source": [
    "print(\"I value; ADC 0; Decimated buffer: \",  np.mean(iq_list[0][0]))\n",
    "print(\"Q value; ADC 0; Decimated buffer: \", np.mean(iq_list[0][1]))\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now, lets collect the results with the accumulated buffer. \n",
    "config[\"reps\"] = 100; # Set reps equal to soft_avgs in the prior acquisition method\n",
    "\n",
    "prog =LoopbackProgram(soccfg, config)\n",
    "avgi, avgq = prog.acquire(soc, load_pulses=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "I value; ADC 0; Accumulated buffer:  [-16.5799]\n",
      "Q value; ADC 0; Accumulated buffer:  [155.7073]\n"
     ]
    }
   ],
   "source": [
    "print(\"I value; ADC 0; Accumulated buffer: \", avgi[0])\n",
    "print(\"Q value; ADC 0; Accumulated buffer: \", avgq[0])\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Printing the program\n",
    "It's sometimes useful to print the program in ASM format, to get a feeling for what's going on."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "// Program\n",
      "\n",
      "        regwi 3, $13, 69905067;                 //freq = 69905067\n",
      "        regwi 3, $14, 0;                        //phase = 0\n",
      "        regwi 3, $16, 10000;                    //gain = 10000\n",
      "        regwi 3, $17, 589844;                   //stdysel | mode | outsel = 0b01001 | length = 20 \n",
      "        synci 200;\n",
      "        regwi 0, $15, 0;\n",
      "        regwi 0, $14, 99;\n",
      "LOOP_J: regwi 0, $31, 32769;                    //out = 0b1000000000000001\n",
      "        seti 0, 0, $31, 100;                    //ch =0 out = $31 @t = 0\n",
      "        seti 0, 0, $0, 110;                     //ch =0 out = 0 @t = 0\n",
      "        regwi 3, $18, 0;                        //t = 0\n",
      "        set 6, 3, $13, $14, $0, $16, $17, $18;  //ch = 5, pulse @t = $18\n",
      "        waiti 0, 300;\n",
      "        synci 684;\n",
      "        mathi 0, $15, $15, +, 1;\n",
      "        memwi 0, $15, 1;\n",
      "        loopnz 0, $14, @LOOP_J;\n",
      "        end ;\n"
     ]
    }
   ],
   "source": [
    "print(prog)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "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.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
