qiboteam / qibolab

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

Sequences with different frequencies are not separated #1069

Open jevillegasdatTII opened 2 weeks ago

jevillegasdatTII commented 2 weeks ago

https://github.com/qiboteam/qibolab/blob/898fa86c2ed60f3a0cd149715c73db508f924f9b/src/qibolab/pulses.py#L1586

When sending two pulse sequences over the same channel, provided they don't overlap in time, they are not getting separated into different sequencers. Consequently, the frequency of the first pulse defines the nco frequency for the sequence and all the following pulses use the same frequency irrespective of their settings. For instance, the following code generates the attached sequences sent to qblox.

sequence = PulseSequence()
rx_pulse_q0 = platform.create_RX_pulse(0, start = 0)
rx_pulse_q1 = platform.create_RX_pulse(1, start = 0)
sequence.add(rx_pulse_q0)
sequence.add(rx_pulse_q1)
cr_pulse = platform.create_RX_pulse(1, start = rx_pulse_q1.finish)
cr_pulse.frequency = rx_pulse_q0.frequency
cr_pulse.duration = 1000
sequence.add(cr_pulse)

Z_qcm_rf0_sequencer1_sequence.json Z_qcm_rf0_sequencer0_sequence.json Z_qcm_rf0_snapshot.json

Notably, only two sequencers are created, where we need three (channel 2 with two different frequencies and channel one a single one).

jevillegasdatTII commented 2 weeks ago

Possble fix in commit https://github.com/qiboteam/qibolab/commit/94bed208cc04eb9a065dd03a6e397c4d1d5e0cb2

hay-k commented 2 weeks ago

@jevillegasdatTII I will take a look at your commits, but for the future can you please not push any commits directly to the branch qblox-ad-hoc-features, and instead create a PR pointing to that branch.

jevillegasdatTII commented 2 weeks ago

Absolutely, sorry. :(