acquisitions#

Classes for handling acquisitions.

Module Contents#

Classes#

AcquisitionStrategyPartial

Contains the logic shared between all the acquisitions.

SquareAcquisitionStrategy

Performs a square acquisition (i.e. without acquisition weights).

WeightedAcquisitionStrategy

Performs a weighted acquisition.

TriggerCountAcquisitionStrategy

Performs a trigger count acquisition.

TimetagAcquisitionStrategy

Performs a timetag acquisition.

class AcquisitionStrategyPartial(operation_info: quantify_scheduler.backends.types.qblox.OpInfo)[source]#

Bases: quantify_scheduler.backends.qblox.operation_handling.base.IOperationStrategy

Contains the logic shared between all the acquisitions.

Parameters:

operation_info – The operation info that corresponds to this operation.

bin_idx_register: str | None = None[source]#

The register used to keep track of the bin index, only not None for append mode acquisitions.

insert_qasm(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram)[source]#

Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition. This function calls either _acquire_average or _acquire_append, depending on the bin mode.

The _acquire_average and _acquire_append are to be implemented in the subclass.

Parameters:

qasm_program – The QASMProgram to add the assembly instructions to.

abstract _acquire_average(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram)[source]#

Adds the assembly to the program for a bin_mode==AVERAGE acquisition.

abstract _acquire_append(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram)[source]#

Adds the assembly to the program for a bin_mode==APPEND acquisition.

property operation_info: quantify_scheduler.backends.types.qblox.OpInfo[source]#

Property for retrieving the operation info.

class SquareAcquisitionStrategy(operation_info: quantify_scheduler.backends.types.qblox.OpInfo)[source]#

Bases: AcquisitionStrategyPartial

Performs a square acquisition (i.e. without acquisition weights).

generate_data(wf_dict: Dict[str, Any]) None[source]#

Returns None as no waveform is needed.

_acquire_average(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram)[source]#

Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming averaging is used.

Parameters:

qasm_program – The QASMProgram to add the assembly instructions to.

_acquire_append(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram)[source]#

Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming append is used.

Parameters:

qasm_program – The QASMProgram to add the assembly instructions to.

_acquire_square(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram, bin_idx: int | str) None[source]#

Adds the instruction for performing acquisitions without weights playback.

Parameters:
  • qasm_program – The qasm program to add the acquisition to.

  • bin_idx – The bin_idx to store the result in, can be either an int (for immediates) or a str (for registers).

class WeightedAcquisitionStrategy(operation_info: quantify_scheduler.backends.types.qblox.OpInfo)[source]#

Bases: AcquisitionStrategyPartial

Performs a weighted acquisition.

Parameters:

operation_info – The operation info that corresponds to this acquisition.

generate_data(wf_dict: Dict[str, Any])[source]#

Generates the waveform data for both acquisition weights.

Parameters:

wf_dict – The dictionary to add the waveform to. N.B. the dictionary is modified in function.

_acquire_average(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram)[source]#

Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming averaging is used.

Parameters:

qasm_program – The QASMProgram to add the assembly instructions to.

_acquire_append(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram)[source]#

Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming append is used. Registers will be used for the weight indexes and the bin index.

Parameters:

qasm_program – The QASMProgram to add the assembly instructions to.

class TriggerCountAcquisitionStrategy(operation_info: quantify_scheduler.backends.types.qblox.OpInfo)[source]#

Bases: AcquisitionStrategyPartial

Performs a trigger count acquisition.

generate_data(wf_dict: Dict[str, Any]) None[source]#

Returns None as no waveform is needed.

_acquire_average(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram)[source]#

Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming averaging is used.

Parameters:

qasm_program – The QASMProgram to add the assembly instructions to.

_acquire_append(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram)[source]#

Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming append is used.

Parameters:

qasm_program – The QASMProgram to add the assembly instructions to.

class TimetagAcquisitionStrategy(operation_info: quantify_scheduler.backends.types.qblox.OpInfo)[source]#

Bases: AcquisitionStrategyPartial

Performs a timetag acquisition.

generate_data(wf_dict: Dict[str, Any]) None[source]#

Returns None as no waveform is needed.

abstract _acquire_average(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram)[source]#

Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming averaging is used.

Parameters:

qasm_program – The QASMProgram to add the assembly instructions to.

_acquire_append(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram)[source]#

Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming append is used.

Parameters:

qasm_program – The QASMProgram to add the assembly instructions to.