Add QCVT: pulse schedule visualization for AveragerProgramV2 - #426
Add QCVT: pulse schedule visualization for AveragerProgramV2#426DRNag2 wants to merge 4 commits into
Conversation
Merge the standalone QCVT tool (https://github.com/DRNag2/QCVT) into QICK as discussed in openquantumhardware#229. Ships as the qcvt package (install via pip install "qick[qcvt]"), with offline demos, tests, and CI.
Formalize the QickConfig and asm_v2 fields QCVT needs (clocks, maxv, macros, pulses, envelopes, ro_chs, loop_dict) so tools can depend on methods instead of raw instance dicts.
|
@meeg I checked this out and can say it's definitely at a point where it'll be valuable to experimenters. There's one point that I think we should get your input on. In my lab it's "common knowledge" that arb pulses wind up with higher amplitude than const pulses for the same DAC gain. So to get continuity from an arb to a const pulse, you need to multiply the dac gain of the const by 1/sqrt(2) (and also subtract 45 degrees from its phase). This is demonstrated by the attached screenshot and code The visualizer doesn't know about this discrepancy, and displays the programmed DAC gain. The straightforward thing to do would be to blanket apply this 1/sqrt(2) correction in the visualizer, so that the visualization in the screenshot has continuous gain rather than the discontinuities we see here. But I don't know where this correction originates from, so I don't know if that's the best idea. Do you think we should take a more nuanced approach? |

Summary
qcvtpackage (pip install "qick[qcvt]") with offline demos underqick_demos/qcvt/QickConfig/ program classesNotes for reviewers
Load-bearing program attributes currently used:
macro_list,pulses,envelopes,ro_chs,loop_dict, plus gens/readouts clock/maxvfields inQickConfigpip install -e ".[qcvt]" pytestpytest qick_lib/qcvt/tests/ -vpython qick_demos/qcvt/run_offline_example.pyAddresses #229