qiboteam / qibolab

Quantum hardware module and drivers for Qibo.
https://qibo.science
Apache License 2.0
43 stars 14 forks source link

resonator flux no longer works with qblox drivers #819

Closed aorgazf closed 7 months ago

aorgazf commented 7 months ago

Hi, There seems to be a problem with some of the latest changes introduced in qibolab, sweeping flux pulses no longer works with qblox. resonator_flux_issue.zip

I've inspected the q1asm code and it does not contain the instructions necessary to sweep the offset on the qcm_bb modeules. before:

            # setup

            move 0, R3                           # navgs loop
            nop
            loop_R3:

                move 0, R2                       # nshots loop
                nop
                loop_R2:

                    move 4294958954, R1          # offset loop, start: -0.45
                    nop
                    loop_R1:
                    set_awg_offs R1, R1
                    upd_param 1000

                        move 0, R0               # frequency loop, start: 0
                        nop
                        loop_R0:

                            wait_sync 4
                            reset_ph

                            wait 4500

                        add R0, 1, R0            # frequency loop, step: 1
                        nop
                        jlt R0, 60, @loop_R0     # frequency loop, stop: 59

                    add R1, 185, R1              # offset loop, step: 0.01
                    nop
                    jge R1, 2147483648, @loop_R1
                    jlt R1, 8124, @loop_R1       # offset loop, stop: 0.44

                add R2, 1, R2
                nop
                jlt R2, 1, @loop_R2              # nshots loop

            add R3, 1, R3
            nop
            jlt R3, 1000, @loop_R3               # navgs loop

            # cleaup
            stop

now:

            # setup

            move 0, R3                           # navgs loop
            nop
            loop_R3:

                move 0, R2                       # nshots loop
                nop
                loop_R2:

                    move 0, R1                   # bias loop, start: 0
                    nop
                    loop_R1:

                        move 0, R0               # frequency loop, start: 0
                        nop
                        loop_R0:

                            wait_sync 4
                            reset_ph

                            wait 4500

                        add R0, 1, R0            # frequency loop, step: 1
                        nop
                        jlt R0, 60, @loop_R0     # frequency loop, stop: 59

                    add R1, 1, R1                # bias loop, step: 1
                    nop
                    jlt R1, 90, @loop_R1         # bias loop, stop: 89

                add R2, 1, R2
                nop
                jlt R2, 1, @loop_R2              # nshots loop

            add R3, 1, R3
            nop
            jlt R3, 1000, @loop_R3               # navgs loop

            # cleaup
            stop

the driver is no longer generating the following instructions that update the offset:

                    set_awg_offs R1, R1
                    upd_param 1000

Given the fact that qblox and qm are our main control instruments and that without this routine we cannot determine sweetspots, I will mark this issue as urgent.

alecandido commented 7 months ago

Thanks @aorgazf for reporting, we will take care of this as soon as possible.

With the output you provided, it should not be too difficult to find the offending change.