ZI backend: ValueError exceptions when first non-Idle pulse starts at t_abs < 16.6ns (incl. latency correction)

  • Quantify-Scheduler version: main branch main at Wed Feb 2 13:35:33 2022 +0000, commit fa3c002d
  • Python version: 3.9.9
  • Python install method (anaconda/virtualenv/other?): virtualenv
  • Operating System: Windows 10

Description

Using the ZI backend to compile a Schedule that starts with a SquarePulse at t=0 throws a ValueError exception if the channel latency is set to a value smaller than 16.6666e-9 seconds in the hardware config file. The exact error depends on the value of the latency.

For channel latencies < 6.6666e-9 s (20/3 ns), the error is:

ValueError: Negative wait time, please ensure operations do not overlap in time.

For channel latencies between 6.666e-9 s (20/3 ns) and 16.6666-e9 s (50/3 ns) the error is (I slightly modified the error for clarity):

ValueError: Minimum number of clocks to wait must be at least 3 for HDAWG.

Note that a value of exactly 20/3 ns (~6.6666e-9 s) does not generate an error.

How to reproduce

To reproduce the 2nd error ("Minimum number of clocks..."):

Run the test-script https://gitlab.com/quantify-os/quantify-scheduler/-/blob/main/docs/tutorials/zhinst/T_verification_programs.rst.py with init_duration = 0

To reproduce the first error ("Negative wait time..."):

Same as above, but in addition set all latencies in the hardware config https://gitlab.com/quantify-os/quantify-scheduler/-/blob/main/quantify_scheduler/schemas/examples/zhinst_test_mapping.json to 0.

Comment

It seems that the limitations in durations mentioned above are in the sum of the latency and the initial wait time (IdlePulse as the first pulse), so with a sufficiently long initial IdlePulse these errors do not show up (as is the case in the example in the test script above).

Assignee Loading
Time tracking Loading