qat.experimental.system_data.materialisers.echo.utils module
Factory helpers for building default echo QPU canonical system data.
These functions produce a fully populated
CanonicalSystemData without
requiring any external source payload or parse step.
Typical usage
Build a 4-qubit ring topology with all defaults:
from qat.experimental.system_data.materialisers.echo.utils import (
build_default_echo_topology,
)
builder = build_default_echo_topology(qubit_count=4)
canonical = builder.build()
Override frequencies and connectivity:
builder = build_default_echo_topology(
qubit_count=3,
connectivity=[(0, 1), (1, 2)],
calibration_id="lab-echo-001",
drive_frequency_hz=5_200_000_000,
readout_frequency_hz=7_500_000_000,
)
canonical = builder.build()
All parameters have useful defaults that reproduce a standard transmon-style echo QPU.
A CanonicalSystemDataBuilder
is returned — call build() to produce the frozen
CanonicalSystemData. No boundary
parse step is required.
Default hardware parameters
Drive frequency: 5.5 GHz (
drive_frequency_hz)Readout frequency: 8.5 GHz (
readout_frequency_hz)Sample time: 1 000 ps / 1 ns (
sample_time_ps)Acquire limit: unlimited /
-1(acquire_limit)Acquire modes:
integrator,scope(acquire_modes)Default acquire mode:
integrator(default_acquire_mode)Reset methods:
passive(reset_methods)Default reset method:
passive(default_reset_method)
- build_default_echo_topology(qubit_count=4, connectivity=None, calibration_id='', drive_frequency_hz=5500000000, readout_frequency_hz=8500000000, sample_time_ps=1000, acquire_limit=-1, acquire_modes=None, default_acquire_mode='integrator', reset_methods=None, default_reset_method='passive')
Build a default echo QPU canonical system data instance.
Produces a fully populated
CanonicalSystemDatawith a transmon-inspired signal path for each qubit and a configurable coupling topology. The result is returned directly — no boundary parse step is required.Per-qubit signal path
For each qubit at index
i:Oscillators:
lo_drive_q{i}(drive_frequency_hz),lo_readout_q{i}(readout_frequency_hz).Ports:
port_drive_q{i}(sample_time_ps),port_readout_q{i}(sample_time_ps, acquire-capable).Channels:
ch_drive_q{i},ch_measure_q{i},ch_acquire_q{i}.Modes:
drive_q{i},measure_q{i},acquire_q{i}.
Coupling topology
Each undirected edge in
connectivityproduces two directedQubitCouplingDataentries (both directions). IfconnectivityisNone, a ring topology is generated viagenerate_echo_ring_connectivity().- type _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.qubit_count:
int- param _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.qubit_count:
Number of qubits to include in the topology.
- type _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.connectivity:
Optional[list[tuple[int,int]]]- param _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.connectivity:
Undirected coupling edges as
(source_index, target_index)pairs.Nonegenerates a ring topology automatically.- type _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.calibration_id:
str- param _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.calibration_id:
Calibration identifier embedded in the returned record.
- type _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.drive_frequency_hz:
int- param _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.drive_frequency_hz:
Drive channel frequency in Hz. Defaults to 5.5 GHz.
- type _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.readout_frequency_hz:
int- param _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.readout_frequency_hz:
Readout channel frequency in Hz. Defaults to 8.5 GHz.
- type _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.sample_time_ps:
int- param _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.sample_time_ps:
Port sample period in picoseconds. Defaults to 1 000 ps (1 ns).
- type _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.acquire_limit:
int- param _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.acquire_limit:
Maximum acquisitions per execution batch;
-1is unlimited.- type _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.acquire_modes:
Optional[list[str]]- param _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.acquire_modes:
Supported acquisition mode type strings. Defaults to
["integrator", "scope"].- type _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.default_acquire_mode:
str- param _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.default_acquire_mode:
Default acquisition mode type. Defaults to
"integrator".- type _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.reset_methods:
Optional[list[str]]- param _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.reset_methods:
Supported reset strategy type strings. Defaults to
["passive"].- type _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.default_reset_method:
str- param _sphinx_paramlinks_qat.experimental.system_data.materialisers.echo.utils.build_default_echo_topology.default_reset_method:
Default reset strategy type. Defaults to
"passive".- rtype:
- returns:
CanonicalSystemDataBuilderpopulated with the echo QPU topology. Callbuild()to produce the frozenCanonicalSystemData.- raises ValueError:
If
qubit_countis negative, or if any connectivity index is out of range forqubit_count.
- generate_echo_ring_connectivity(qubit_count)
Return undirected ring connectivity edges for
qubit_countqubits.- Parameters:
qubit_count¶ (
int) – Number of qubits in the lattice.- Return type:
list[tuple[int,int]]- Returns:
List of undirected
(source_index, target_index)pairs. Returns an empty list forqubit_count <= 1and a single pair forqubit_count == 2.- Raises:
ValueError – If
qubit_countis negative.