acquisitions ============ .. py:module:: quantify_scheduler.backends.qblox.operation_handling.acquisitions .. autoapi-nested-parse:: Classes for handling acquisitions. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: quantify_scheduler.backends.qblox.operation_handling.acquisitions.AcquisitionStrategyPartial quantify_scheduler.backends.qblox.operation_handling.acquisitions.SquareAcquisitionStrategy quantify_scheduler.backends.qblox.operation_handling.acquisitions.WeightedAcquisitionStrategy quantify_scheduler.backends.qblox.operation_handling.acquisitions.TriggerCountAcquisitionStrategy .. py:class:: AcquisitionStrategyPartial(operation_info: quantify_scheduler.backends.types.qblox.OpInfo) Bases: :py:obj:`quantify_scheduler.backends.qblox.operation_handling.base.IOperationStrategy` Contains the logic shared between all the acquisitions. :param operation_info: The operation info that corresponds to this operation. .. py:attribute:: bin_idx_register :type: Optional[str] :value: None The register used to keep track of the bin index, only not None for append mode acquisitions. .. py:method:: insert_qasm(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) 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. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:method:: _acquire_average(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) :abstractmethod: Adds the assembly to the program for a bin_mode==AVERAGE acquisition. .. py:method:: _acquire_append(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) :abstractmethod: Adds the assembly to the program for a bin_mode==APPEND acquisition. .. py:property:: operation_info :type: quantify_scheduler.backends.types.qblox.OpInfo Property for retrieving the operation info. .. py:class:: SquareAcquisitionStrategy(operation_info: quantify_scheduler.backends.types.qblox.OpInfo) Bases: :py:obj:`AcquisitionStrategyPartial` Performs a square acquisition (i.e. without acquisition weights). .. py:method:: generate_data(wf_dict: Dict[str, Any]) -> None Returns None as no waveform is needed. .. py:method:: _acquire_average(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming averaging is used. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:method:: _acquire_append(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming append is used. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:method:: _acquire_square(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram, bin_idx: Union[int, str]) -> None Adds the instruction for performing acquisitions without weights playback. :param qasm_program: The qasm program to add the acquisition to. :param bin_idx: The bin_idx to store the result in, can be either an int (for immediates) or a str (for registers). .. py:class:: WeightedAcquisitionStrategy(operation_info: quantify_scheduler.backends.types.qblox.OpInfo) Bases: :py:obj:`AcquisitionStrategyPartial` Performs a weighted acquisition. :param operation_info: The operation info that corresponds to this acquisition. .. py:method:: generate_data(wf_dict: Dict[str, Any]) Generates the waveform data for both acquisition weights. :param wf_dict: The dictionary to add the waveform to. N.B. the dictionary is modified in function. .. py:method:: _acquire_average(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming averaging is used. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:method:: _acquire_append(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) 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. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:class:: TriggerCountAcquisitionStrategy(operation_info: quantify_scheduler.backends.types.qblox.OpInfo) Bases: :py:obj:`AcquisitionStrategyPartial` Performs a trigger count acquisition. .. py:method:: generate_data(wf_dict: Dict[str, Any]) -> None Returns None as no waveform is needed. .. py:method:: _acquire_average(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming averaging is used. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:method:: _acquire_append(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition, assuming append is used. :param qasm_program: The QASMProgram to add the assembly instructions to.