qblox_scheduler.backends.qblox.operation_handling.acquisitions#
Classes for handling acquisitions.
Classes#
Contains the logic shared between all the acquisitions. |
|
Performs a square acquisition (i.e. without acquisition weights). |
|
Performs a weighted acquisition. |
|
Performs a trigger count acquisition. |
|
Performs a timetag acquisition. |
|
An acquisition strategy that wraps the emitted Q1ASM of |
Module Contents#
- class AcquisitionStrategyPartial(operation_info: qblox_scheduler.backends.types.qblox.OpInfo)[source]#
Bases:
qblox_scheduler.backends.qblox.operation_handling.base.IOperationStrategyContains the logic shared between all the acquisitions.
- Parameters:
operation_info – The operation info that corresponds to this operation.
- bin_mode: qblox_scheduler.enums.BinMode[source]#
- 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: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
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.
- Parameters:
qasm_program – The QASMProgram to add the assembly instructions to.
- reset_bin_idx_reg(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
Resets the bin index register. This is used whenever the register which keeps track of the bin (for APPEND or AVERAGE_APPEND mode) needs to be reset. Used at the beginning of the whole program, or beginning of the schedule repetitions.
- Parameters:
qasm_program – The QASMProgram to add the assembly instructions to.
- abstract _acquire_with_immediate_bin_index(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
Adds the assembly to the program for an acquisition with an immediate value for the bin index.
- abstract _acquire_with_register_bin_index(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
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.
- property operation_info: qblox_scheduler.backends.types.qblox.OpInfo[source]#
Property for retrieving the operation info.
- _get_loop_bin_modes_with_schedule_repetitions() list[qblox_scheduler.enums.BinMode][source]#
For QASM compilation, we need information on the outermost Schedule’s repetitions, and we handle that in the QASMProgram the same way as any other loop bin mode. So we prepend the bin mode of the outermost Schedule’s bin mode to the loop bin modes.
- class SquareAcquisitionStrategy(operation_info: qblox_scheduler.backends.types.qblox.OpInfo)[source]#
Bases:
AcquisitionStrategyPartialPerforms a square acquisition (i.e. without acquisition weights).
- _acquire_with_immediate_bin_index(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
Adds the assembly to the program for an acquisition with an immediate value for the bin index.
- Parameters:
qasm_program – The QASMProgram to add the assembly instructions to.
- _acquire_with_register_bin_index(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
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.
- Parameters:
qasm_program – The QASMProgram to add the assembly instructions to.
- _acquire_square(qasm_program: qblox_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: qblox_scheduler.backends.types.qblox.OpInfo)[source]#
Bases:
AcquisitionStrategyPartialPerforms a weighted acquisition.
- Parameters:
operation_info – The operation info that corresponds to this acquisition.
- generate_data(wf_dict: dict[str, Any]) None[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_with_immediate_bin_index(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
Adds the assembly to the program for an acquisition with an immediate value for the bin index.
- Parameters:
qasm_program – The QASMProgram to add the assembly instructions to.
- _acquire_with_register_bin_index(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
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.
- Parameters:
qasm_program – The QASMProgram to add the assembly instructions to.
- class TriggerCountAcquisitionStrategy(operation_info: qblox_scheduler.backends.types.qblox.OpInfo)[source]#
Bases:
AcquisitionStrategyPartialPerforms a trigger count acquisition.
- _acquire_with_immediate_bin_index(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
Adds the assembly to the program for an acquisition with an immediate value for the bin index.
- Parameters:
qasm_program – The QASMProgram to add the assembly instructions to.
- _acquire_with_register_bin_index(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
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.
- Parameters:
qasm_program – The QASMProgram to add the assembly instructions to.
- class TimetagAcquisitionStrategy(operation_info: qblox_scheduler.backends.types.qblox.OpInfo)[source]#
Bases:
AcquisitionStrategyPartialPerforms a timetag acquisition.
- _acquire_with_immediate_bin_index(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
Adds the assembly to the program for an acquisition with an immediate value for the bin index.
- Parameters:
qasm_program – The QASMProgram to add the assembly instructions to.
- _acquire_with_register_bin_index(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
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.
- Parameters:
qasm_program – The QASMProgram to add the assembly instructions to.
- class ScopedTimetagAcquisitionStrategy(operation_info: qblox_scheduler.backends.types.qblox.OpInfo)[source]#
Bases:
TimetagAcquisitionStrategyAn acquisition strategy that wraps the emitted Q1ASM of
TimetagAcquisitionStrategyinset_scope_eninstructions.- _acquire_with_immediate_bin_index(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
Adds the assembly to the program for an acquisition with an immediate value for the bin index.
- Parameters:
qasm_program – The QASMProgram to add the assembly instructions to.
- _acquire_with_register_bin_index(qasm_program: qblox_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#
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.
- Parameters:
qasm_program – The QASMProgram to add the assembly instructions to.