Skip to content

Commit

Permalink
Mask not needed when APS2 loads from RAM
Browse files Browse the repository at this point in the history
  • Loading branch information
Diego Ristè committed Jun 13, 2018
1 parent 2cec398 commit de5b08e
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 8 deletions.
7 changes: 3 additions & 4 deletions QGL/BasicSequences/Feedback.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 = []
Expand Down
8 changes: 4 additions & 4 deletions QGL/ControlFlow.py
Original file line number Diff line number Diff line change
Expand Up @@ -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)
'''
Expand All @@ -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)]



Expand Down

0 comments on commit de5b08e

Please sign in to comment.