qat.purr.backends.qblox.ir module

class Opcode(value)

Bases: Enum

An enumeration.

ACQUIRE = 'acquire'
ACQUIRE_TTL = 'acquire_ttl'
ACQUIRE_WEIGHED = 'acquire_weighed'
ADD = 'add'
ADDRESS = ''
AND = 'and'
JUMP = 'jmp'
JUMP_GREATER_EQUALS = 'jge'
JUMP_LESS_THAN = 'jlt'
LOOP = 'loop'
MOVE = 'move'
NEW_LINE = '\n'
NOP = 'nop'
NOT = 'not'
OR = 'or'
PLAY = 'play'
RESET_PHASE = 'reset_ph'
SET_AWG_GAIN = 'set_awg_gain'
SET_AWG_OFFSET = 'set_awg_offs'
SET_MARKER = 'set_mrk'
SET_NCO_FREQUENCY = 'set_freq'
SET_NCO_PHASE = 'set_ph'
SET_NCO_PHASE_OFFSET = 'set_ph_delta'
STOP = 'stop'
SUB = 'sub'
UPDATE_PARAMETERS = 'upd_param'
WAIT = 'wait'
WAIT_SYNC = 'wait_sync'
WAIT_TRIGGER = 'wait_trigger'
XOR = 'xor'
class Q1asmInstruction(opcode, *operands)

Bases: object

class Sequence(waveforms, weights, acquisitions, program)

Bases: object

acquisitions: Dict[str, Any]
program: str
waveforms: Dict[str, Dict[str, Any]]
weights: Dict[str, Any]
class SequenceBuilder

Bases: object

High-level builder apis for sequence codegen. This includes q1asm, waveforms, weights, and acquisitions.

acquire(acq, bin, duration)
acquire_ttl(acq, bin, enable, duration)
acquire_weighed(acq, bin, weight_i, weight_q, duration)
add(a, b, dest)
add_acquisition(name, index, num_bins)
add_waveform(name, index, data)
add_weight(name, index, data)
build()
jge(a, b, address)
jlt(a, b, address)
jmp(address)
label(label)
logic_and(a, b, dest)
logic_not(src, dest)
logic_or(a, b, dest)
logic_xor(a, b, dest)
loop(a, address)
move(src, dest)
nop()
play(wave_i, wave_q, duration)
reset_ph()
set_awg_gain(gain_i, gain_q)
set_awg_offs(offset_i, offset_q)
set_freq(frequency)
set_mrk(mask)
set_ph(phase)
set_ph_delta(phase_delta)
stop()
sub(a, b, dest)
upd_param(duration)
wait(duration)
wait_sync(duration)
wait_trigger(trigger, duration)