3.2.4. qupulse.hardware.setup¶
Classes
Representation of the hardware setup. |
|
|
A hardware channel that can only take two values |
|
|
|
A hardware channel that is not a marker |
|
Create new instance of RegisteredProgram(program, measurement_windows, run_callback, awgs_to_upload_to, dacs_to_arm) |
- class HardwareSetup[source]¶
Bases:
objectRepresentation of the hardware setup.
The class takes an instruction block, forms it into possibly channel dependent programs and registers the programs at the AWGs which modify their program to fit to their capabilities. The class also extracts the measurement windows(with absolute times) and hands them over to the DACs which will do further processing.
- arm_program(name: str) None[source]¶
Assert program is in memory. Hardware will wait for trigger event
- clear_programs() None[source]¶
Clears all programs from all known AWG and DAC devices.
Does not affect channel configurations or measurement masks set by set_channel or set_measurement.
- register_program(name: str, program: Loop, run_callback=<function HardwareSetup.<lambda>>, update: bool = False, measurements: Mapping[str, ~typing.Tuple[~numpy.ndarray, ~numpy.ndarray]]=None, channels: Sequence[str | int] = None) None[source]¶
Register a program under a given name at the hardware setup. The program will be uploaded to the participating AWGs and DACs. The run callback is used for triggering the program after arming.
- Parameters:
name – Name of the program.
program – Output of
create_program()run_callback – Used to trigger the program after arming
update – Must be set if the program is already known.
measurements – Will be used as measurements if provided. Otherwise, the measurements are extracted from the program.
- set_channel(identifier: str | int, single_channel: _SingleChannel | Iterable[_SingleChannel], allow_multiple_registration: bool = False) None[source]¶
- set_measurement(measurement_name: str, measurement_mask: MeasurementMask | Iterable[MeasurementMask], allow_multiple_registration: bool = False)[source]¶
- class MarkerChannel(awg: AWG, channel_on_awg: int)[source]¶
Bases:
_SingleChannelA hardware channel that can only take two values
- class PlaybackChannel(awg: ~qupulse.hardware.awgs.base.AWG, channel_on_awg: int, voltage_transformation: ~typing.Callable[[~numpy.ndarray], ~numpy.ndarray] = <function PlaybackChannel.<lambda>>)[source]¶
Bases:
_SingleChannelA hardware channel that is not a marker
- voltage_transformation¶
A transformation that is applied to the pulses on the channel. One use case is to scale up the voltage if an amplifier is inserted.