Commit f23b545f authored by Kelvin Loh's avatar Kelvin Loh 🖖
Browse files

Merge branch 'qblox-backend' into 'develop'

Qblox backend

Closes #89, #59, #73, #74, #86, #93, and #101

See merge request !81
parents 68deb286 e849e478
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -99,7 +99,7 @@ max-line-length=88
# Good variable names which should always be accepted, separated by a comma
# p0,p1,etc. are for pulses
# x0,x1,y0,y1,etc. are for quantify dataset variables
good-names=i,j,k,e,x,y,_,yi,yj,yk,ys,xi,xj,xk,xs,zi,zj,zk,zs,ax,S21,S11,S12,S22,t,t0,t1,t2,t3,t4,x0,x1,x2,x3,x4,y0,y1,y2,y3,y4,p0,p1,p2,p3,p4,q0,q1
good-names=i,j,k,e,x,y,_,yi,yj,yk,ys,xi,xj,xk,xs,zi,zj,zk,zs,ax, io,S21,S11,S12,S22,t,t0,t1,t2,t3,t4,x0,x1,x2,x3,x4,y0,y1,y2,y3,y4,p0,p1,p2,p3,p4,q0,q1

# Naming style matching correct argument names.
argument-naming-style=snake_case
+25 −2
Original line number Diff line number Diff line
@@ -96,10 +96,10 @@ backends
.. automodule:: quantify.scheduler.backends
    :members:

pulsar_backend
qblox_backend
~~~~~~~~~~~~~~

.. automodule:: quantify.scheduler.backends.pulsar_backend
.. automodule:: quantify.scheduler.backends.qblox_backend
    :members:

zhinst_backend
@@ -111,9 +111,31 @@ zhinst_backend
types
~~~~~

.. automodule:: quantify.scheduler.backends.types.qblox
    :members:

.. automodule:: quantify.scheduler.backends.types.zhinst
    :members:

Qblox
~~~~~~

.. automodule:: quantify.scheduler.backends.qblox.helpers
    :members:

.. automodule:: quantify.scheduler.backends.qblox.instrument_compilers
    :members:

.. automodule:: quantify.scheduler.backends.qblox.compilers_abc
    :members:

.. automodule:: quantify.scheduler.backends.qblox.constants
    :members:

.. automodule:: quantify.scheduler.backends.qblox.q1asm_instructions
    :members:


zhinst
~~~~~~

@@ -154,6 +176,7 @@ pulse_diagram
~~~~~~~~~~~~~

.. automodule:: quantify.scheduler.visualization.pulse_diagram

=======

miscellaneous
+8 −10
Original line number Diff line number Diff line
@@ -212,7 +212,7 @@ Compilation of pulses onto physical hardware

The compilation from the pulse-level description for execution on physical hardware is done using a backend and based on the :ref:`hardware mapping file <sec-hardware-config>`.

Here we will use the :class:`~quantify.scheduler.backends.pulsar_backend.pulsar_assembler_backend` made for the Qblox pulsar series hardware.
Here we will use the :class:`~quantify.scheduler.backends.qblox_backend.hardware_compile` made for the Qblox pulsar series hardware.

.. jupyter-execute::

@@ -236,23 +236,23 @@ also use for demonstration purposes as part of this tutorial:
    from pulsar_qrm.pulsar_qrm import pulsar_qrm_dummy

    qcm0 = pulsar_qcm_dummy('qcm0')
    qcm1 = pulsar_qcm_dummy('qcm1')
    qrm0 = pulsar_qrm_dummy('qrm0')


.. jupyter-execute::

    from quantify.scheduler.backends.pulsar_backend import pulsar_assembler_backend, configure_pulsars
    from quantify.scheduler.backends.qblox_backend import hardware_compile
    from pulsar_qcm.pulsar_qcm import pulsar_qcm
    from qcodes import Instrument

    sched, config = pulsar_assembler_backend(sched, qblox_test_mapping)
    config = hardware_compile(sched, qblox_test_mapping)

The compiled schedule can be uploaded to the hardware using the following command.
The compiled schedule can be uploaded to the hardware using the following commands.

.. jupyter-execute::

    #configure_pulsars(config, qblox_test_mapping)
    seq_fn = config['qrm0']['seq0']['seq_fn']
    qrm0.sequencer0_waveforms_and_program(seq_fn)


At this point, the assembler on the device will load the waveforms into memory and verify the program can be executed. We must next arm and then start the device:
@@ -261,11 +261,9 @@ At this point, the assembler on the device will load the waveforms into memory a
.. jupyter-execute::

    qcm0.arm_sequencer()
    qcm1.arm_sequencer()
    qrm0.arm_sequencer()

    qcm0.start_sequencer()
    qcm1.start_sequencer()
    qrm0.start_sequencer()


@@ -295,7 +293,7 @@ between X gates on a pair of qubits.
    from quantify.scheduler.resources import ClockResource

    sched = Schedule("Chevron Experiment")
    for duration in np.linspace(20e-9, 40e-9, 5):
    for duration in np.linspace(20e-9, 60e-9, 6): # NB multiples of 4 ns need to be used due to limitations of the pulsars
        for amp in np.linspace(0.1, 1.0, 10):
            begin = sched.add(Reset('q0', 'q1'))
            sched.add(X('q0'), ref_op=begin, ref_pt='start')
@@ -321,4 +319,4 @@ We can also quickly compile using the :func:`!qcompile` function and associate m
.. jupyter-execute::

    from quantify.scheduler.compilation import qcompile
    sched, cfg = qcompile(sched, transmon_test_config, qblox_test_mapping)
    cfg = qcompile(sched, transmon_test_config, qblox_test_mapping)
+0 −1235

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −0

Empty file added.

Loading