From de5b08e3000f55d1731e601a20730c64a3bee344 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Rist=C3=A8?= Date: Wed, 13 Jun 2018 09:25:47 -0400 Subject: [PATCH] Mask not needed when APS2 loads from RAM --- QGL/BasicSequences/Feedback.py | 7 +++---- QGL/ControlFlow.py | 8 ++++---- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/QGL/BasicSequences/Feedback.py b/QGL/BasicSequences/Feedback.py index ef7c4499..e713a76e 100644 --- a/QGL/BasicSequences/Feedback.py +++ b/QGL/BasicSequences/Feedback.py @@ -135,13 +135,12 @@ def BitFlip3(data_qs, ancilla_qs, theta=None, phi=None, nrounds=1, meas_delay=1e for k in range(nrounds): seqs+=[CNOT(data_qs[0],ancilla_qs[0])*CNOT(data_qs[1],ancilla_qs[1])], seqs+=[CNOT(data_qs[1], ancilla_qs[0])*CNOT(data_qs[2],ancilla_qs[1])], - seqs+= [MEASA(ancilla_qs[0], maddr=(10,2**(2*n))*MEASA(ancilla_qs[1], maddr=(10,2**(2*n+1))), + seqs+= [MEASA(ancilla_qs[0], maddr=(10,2**(2*n)))*MEASA(ancilla_qs[1], maddr=(10,2**(2*n+1))), Id(ancilla_qs[0], meas_delay), MEAS(data_qs[0],amp=0)*MEAS(data_qs[1],amp=0)*MEAS(data_qs[2],amp=0)] # virtual msmt's just to keep the number of segments uniform across digitizer channels seqs+=Decode(10, 11, 4**nrounds-1) - seqs+=qwait("RAM",11, 1) - seqs+=[MEAS(data_qs[0])*MEAS(data_qs[1])*MEAS(data_qs[2]) - *MEAS(ancilla_qs[0],amp=0)*MEAS(ancilla_qs[1],amp=0)] # virtual msmt's just to keep the number + seqs+=qwait("RAM",11, 4**nrounds-1) + seqs+=[MEAS(data_qs[0])*MEAS(data_qs[1])*MEAS(data_qs[2])] # apply corrective pulses depending on the decoder result FbGates = [] diff --git a/QGL/ControlFlow.py b/QGL/ControlFlow.py index 4f1219ab..9c78ba2b 100644 --- a/QGL/ControlFlow.py +++ b/QGL/ControlFlow.py @@ -84,7 +84,7 @@ def repeatall(n, seqs): return seqs -def qwait(kind="TRIG", addr=None, mask=None, channels=None): +def qwait(kind="TRIG", addr=None, channels=None): ''' Insert a WAIT or LOADCMP command on the target channels (an iterable, or None) ''' @@ -93,9 +93,9 @@ def qwait(kind="TRIG", addr=None, mask=None, channels=None): elif kind == "CMP": return LoadCmp(channels) elif kind == "RAM": - if not addr or not mask: - raise Exception('Please specify address and mask') - return [WriteAddrInstruction('INVALIDATE', None, 1, addr, mask, False), LoadCmpVramInstruction('LOADCMPVRAM', 1, addr, mask, False)] + if not addr: + raise Exception('Please specify address') + return [WriteAddrInstruction('INVALIDATE', None, 1, addr, 0xffffffff, False), LoadCmpVramInstruction('LOADCMPVRAM', 1, addr, 0xff, False)]