qat.experimental.system_data.hardware.base module

Base dataclasses and interface for hardware-specific derived views of canonical system data.

This module provides the building blocks for describing a complete RF tone generation setup: a Generator groups the Sequencer instances and LocalOscillator instances required to produce a single tone (e.g. LO at 4.4 GHz + sequencer NCO at 240 MHz = 4.64 GHz output). The HardwareViewInterface interface ties these together into a derived view of CanonicalSystemData, enforcing that every concrete backend view exposes its generators and the acquisition limit drawn from the canonical system data.

class Generator(port_id, sample_time, sequencers=(), local_oscillators=())

Bases: object

Hardware generator representing a complete tone generation unit.

Contains sequencers and local oscillators that work together to generate a tone.

Variables:
  • port_id – Port ID this generator is derived from.

  • sample_time – Sample time in picoseconds.

  • sequencers – Tuple of sequencers that drive this generator.

  • local_oscillators – Tuple of local oscillators used by this generator.

local_oscillators: tuple[LocalOscillator, ...]
port_id: str
sample_time: int
sequencers: tuple[Sequencer, ...]
class HardwareViewInterface

Bases: DerivedViewInterface[CanonicalSystemData], ABC

Abstract interface for hardware-specific derived views of canonical system data.

Concrete backend views must implement derive() (inherited from DerivedViewInterface) and expose acquire_limit and generators.

Variables:
  • acquire_limit – Maximum allowed acquisitions for a single execution batch.

  • generators – Generators available in this hardware view.

acquire_limit: int
generators: tuple[Generator, ...]
class LocalOscillator(id, frequency)

Bases: object

Placeholder for hardware-specific local oscillator attributes.

frequency: int
id: str
class Sequencer(fields=<factory>, min_values=<factory>, max_values=<factory>)

Bases: ABC

Abstract hardware sequencer description.

Concrete hardware sequencer classes can expose arbitrary capabilities via fields and optional numeric bounds via min_values/max_values.

Variables:
  • fields – Hardware-specific sequencer fields keyed by string name.

  • min_values – Optional minimum bounds keyed by field name.

  • max_values – Optional maximum bounds keyed by field name.

fields: dict[str, object]
abstract classmethod kind()

Return the hardware-specific sequencer kind.

Return type:

str

max_values: dict[str, float]
min_values: dict[str, float]