qat.engines.qblox.live module

class CompositeQbloxInstrument

Bases: CompositeInstrument

For daisy-chained Qblox chassis.

class QbloxEngine(instrument)

Bases: NativeEngine

static combine_playbacks(playbacks)

Combines acquisition objects from multiple acquire instructions in multiple readout targets. Notice that groupby() preserves (original) relative order, which makes it honour the (sequential) lexicographical order of the loop nest:

playback[target][“acq_0”] contains (potentially) a list of acquisitions collected in the same order as the order in which the packages were sent to the FPGA.

Although acquisition names are enough for unicity in practice, the playback’s structure distinguishes different (multiple) acquisitions per readout target, thus making it more robust.

execute(executable)

Executes a compiled instruction executable and returns results that are processed according to the acquires.

The engine is expected to return the results as a dictionary with the output variables as keys. This may be changed in future iterations.

Return type:

Dict[PulseChannel, Dict[str, Acquisition]]

class QbloxInstrument(dev_id, name, address=None, dummy_cfg=None)

Bases: LeafInstrument

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

allocate_resources(target)
configure(target, package, module, sequencer)
connect()
disconnect()
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_post_init(context, /)

This function is meant to behave like a BaseModel method to initialise private attributes.

It takes context as an argument since that’s what pydantic-core passes when calling it.

Return type:

None

Args:

self: The BaseModel instance. context: The context.

playback()
setup(executable)