[Id(q), MEAS(q)] breaks the logic in
|
for ct, switchPt in enumerate(switchPts): |
|
# skip if: |
|
# 1) control-flow instruction or label (i.e. not a waveform) |
|
# 2) the trigger count is too long |
|
# 3) the previous trigger pulse entends into the current entry |
|
while (not isinstance(miniLL_IQ[curIQIdx], APSWaveform) or |
|
(switchPt - timePts[curIQIdx]) > |
|
(ADDRESS_UNIT * MAX_TRIGGER_COUNT) or len(trigQueue) > 1): |
|
# update the trigger queue, dropping triggers that have played |
|
trigQueue = [t - miniLL_IQ[curIQIdx].length for t in trigQueue] |
|
trigQueue = [t for t in trigQueue if t >= 0] |
|
curIQIdx += 1 |
|
# add padding pulses if needed |
|
if curIQIdx >= len(miniLL_IQ): |
|
if len(trigQueue) > 0: |
|
pad = max(MIN_ENTRY_LENGTH, min(trigQueue, 0)) |
|
else: |
|
pad = MIN_ENTRY_LENGTH |
|
miniLL_IQ.append(padding_entry(pad)) |
|
#Push on the trigger count |
, which tries to add a padding after the
GOTO instruction.
Adding any delay after MEAS sidesteps the problem.
[Id(q), MEAS(q)]breaks the logic inQGL/QGL/drivers/APSPattern.py
Lines 543 to 562 in 53e5f16
GOTOinstruction.Adding any delay after
MEASsidesteps the problem.