Support qick v2 - #179
Conversation
|
@rodolfocarobene I created a new ConfigV2 to support new parameters in asmv2. I assume those who use qibosoq endpoint should know which firmware are they running on RFSoC. Though we need more thoughts in qibolab side.
Difference between ConfigV1 and V2
|
|
Hi @cpcepa, thanks for the work! I have a few general comments. First, what is the difference between self.trigger(ros=[adc_ch], t=t + self.ro_time_of_flight)My proposal would be to just keep using Then, I'm not sure about the pulse scheduling. I think you may have unintentionally introduced a difference with respect to the current qibosoq behavior. This is not necessarily bad, but I think we should discuss it. Currently, a sequence is executed roughly like this:
What you are doing instead seems to treat for elem in self.sequence:
# Wait the required amount of time so that the pulse starts at the correct time.
if isinstance(elem.start_delay, QickRegister):
self.sync(elem.start_delay.page, elem.start_delay.addr)
...
self.pulse(ch=pulse.dac, name=pulse.name, t="auto")Also, what exactly have you tested so far? In particular, have you tested this using an actual board, and possibly with qubits? I'm asking mainly to understand what we already know to be functionally correct and what still needs to be tested. For example, from experience I know that delay sweepers in Ramsey-like experiments can be error-prone. If this has already been tested, that's useful to know; otherwise, we'll need to test it. In any case, I think we should first agree on After that, we can functionally test all the features. Finally, I can do a more formal code review. Code quality is of course important, but at this stage I think getting the behavior and functionality right is the higher priority. |
|
Hi @rodolfocarobene, I will add back ro_time_of_flight since I tested out yesterday and realised I have this shortfall and need to delay the ADC readout. I also prefer to combine both config, but V1's unit is usually in tproc cycle, V2 is in mircoseconds (us). Can we follow V2 us unit whenever possible? That also means I need to do a conversion from us -> tproc cycle in v1 code, e.g. For start_delay, I think I overlooked or misunderstood from how it was used here: https://github.com/meeg/qick_demos_sho/blob/main/tprocv2/01_gens-and-readouts.ipynb. Was thinking that since the pulses are added one by one, "t" acts like delay. I am currently running qibosoq on PYNQ v3.0.1 (python3.10), ZCU216 for all the test, and I have qubit access these few days, so will try to finish all testing. Haven't tested any experiment yet because currently we are debugging why qubit not responding. I agreed that behavior and functionality right is the higher priority since I am not an expert in this, will need to rely on your expertise to guide me on the functions. Thanks in advance! |
|
Yea, let's try to update the config code just so that tproc2 works, eventually we will also drop tprocv1! Thanks for your work! |
Created a pull request to start the new feature discussion.
Checklist before review:
Checklist before merge: