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 quantify_scheduler.backends.qblox.operation_handling.acquisitions.TimetagAcquisitionStrategy quantify_scheduler.backends.qblox.operation_handling.acquisitions.ScopedTimetagAcquisitionStrategy .. 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:: _acq_info :type: quantify_scheduler.backends.types.qblox.OpInfo .. py:attribute:: bin_mode :type: quantify_scheduler.enums.BinMode .. py:attribute:: acq_channel .. py:attribute:: bin_idx_register :type: str | None :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) -> None Add the assembly instructions for the Q1 sequence processor that corresponds to this acquisition. This function calls the appropriate method to generate assembly, depending on the bin mode. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:method:: _acquire_with_immediate_bin_index(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) -> None :abstractmethod: Adds the assembly to the program for an acquisition with an immediate value for the bin index. .. py:method:: _acquire_with_register_bin_index(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) -> None :abstractmethod: Adds the assembly to the program for an acquisition with a register value for the bin index, and assembly for incrementing the bin index by 1. .. 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_with_immediate_bin_index(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) -> None Adds the assembly to the program for an acquisition with an immediate value for the bin index. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:method:: _acquire_with_register_bin_index(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) -> None Adds the assembly to the program for an acquisition with a register value for the bin index, and assembly for incrementing the bin index by 1. :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: 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:attribute:: waveform_index0 :type: int | None :value: None .. py:attribute:: waveform_index1 :type: int | None :value: None .. py:method:: generate_data(wf_dict: dict[str, Any]) -> None 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_with_immediate_bin_index(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) -> None Adds the assembly to the program for an acquisition with an immediate value for the bin index. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:method:: _acquire_with_register_bin_index(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) -> None Adds the assembly to the program for an acquisition with a register value for the bin index, and assembly for incrementing the bin index by 1. 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_with_immediate_bin_index(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) -> None Adds the assembly to the program for an acquisition with an immediate value for the bin index. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:method:: _acquire_with_register_bin_index(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) -> None Adds the assembly to the program for an acquisition with a register value for the bin index, and assembly for incrementing the bin index by 1. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:class:: TimetagAcquisitionStrategy(operation_info: quantify_scheduler.backends.types.qblox.OpInfo) Bases: :py:obj:`AcquisitionStrategyPartial` Performs a timetag acquisition. .. py:attribute:: _fine_start_delay_int .. py:attribute:: _fine_end_delay_int .. py:method:: generate_data(wf_dict: dict[str, Any]) -> None Returns None as no waveform is needed. .. py:method:: _acquire_with_immediate_bin_index(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) -> None Adds the assembly to the program for an acquisition with an immediate value for the bin index. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:method:: _acquire_with_register_bin_index(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) -> None Adds the assembly to the program for an acquisition with a register value for the bin index, and assembly for incrementing the bin index by 1. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:class:: ScopedTimetagAcquisitionStrategy(operation_info: quantify_scheduler.backends.types.qblox.OpInfo) Bases: :py:obj:`TimetagAcquisitionStrategy` An acquisition strategy that wraps the emitted Q1ASM of ``TimetagAcquisitionStrategy`` in ``set_scope_en`` instructions. .. py:method:: _acquire_with_immediate_bin_index(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) -> None Adds the assembly to the program for an acquisition with an immediate value for the bin index. :param qasm_program: The QASMProgram to add the assembly instructions to. .. py:method:: _acquire_with_register_bin_index(qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) -> None Adds the assembly to the program for an acquisition with a register value for the bin index, and assembly for incrementing the bin index by 1. :param qasm_program: The QASMProgram to add the assembly instructions to.