QuEL-1 skew adjustment workflow
Use this walkthrough when you need to inspect and retune inter-box skew for a QuEL-1 or QuBE setup with shared clock synchronization.
This flow assumes:
- your
system.yamlentry uses thequel1backend and definesquel1.clock_master - your config directory already contains
box.yamlandskew.yaml skew.yamllists the monitor path, reference port, and target-boxport_waitvalues
Minimal setup
Create an Experiment with the QuEL-1 system you want to operate.
import qubex as qx
exp = qx.Experiment(
system_id="64Q-HF-Q1",
qubits=[0, 1],
config_dir="/path/to/qubex-config/config",
params_dir="/path/to/qubex-config/params/64Q-HF-Q1",
)
The active config_dir should contain a skew.yaml similar to this:
box_setting:
S87R:
slot: 0
wait: 0
port_wait:
1: 0
S89R:
slot: 1
wait: 0
port_wait:
8: 0
monitor_port: S87R-12
reference_port: S87R-1
scale:
S87R-1: 0.125
target_port: !!set
S87R-1: null
S89R-8: null
time_to_start: 0
trigger_nport: 10
box_setting.*.wait is the box-common wait, and box_setting.*.port_wait
stores per-port residuals.
Check the current skew
Run exp.tool.check_skew(...) for the boxes you want to inspect.
result = exp.tool.check_skew(["S87R", "S89R"])
This helper:
- reads
skew.yamlandbox.yamlfrom the active config directory - uses the reference box from
reference_port - runs the current skew measurement flow on the QuEL-1 backend
- returns a
Resultthat keeps the measured skew object and plot
For example:
skew_runtime = result["skew"]
figure = result.figure
Update the target skew value
After check_skew(...) estimates the current pulse indices, call
exp.tool.update_skew(...) to update wait and port_wait so the measured
indices align to a common target.
exp.tool.update_skew(250, ["S87R", "S89R"], backup=True)
This helper:
- updates
box_setting.<box>.waitandport_waitinskew.yaml - writes a timestamped backup file such as
skew.yaml.bak.20260520_124900whenbackup=True - reloads the updated skew file into the active QuEL-1 backend
If box_ids is omitted, Qubex updates every box listed under box_setting.
exp.tool.update_skew(250, backup=True)
Re-check after the update
Measure again with the updated file.
result = exp.tool.check_skew(["S87R", "S89R"])
Inspect the returned figure and repeat the adjustment if needed.
If the skew does not converge, one practical recovery path is to retry with
target 0, check again, and then restore the intended value.
exp.tool.update_skew(0, ["S87R", "S89R"], backup=True)
exp.tool.check_skew(["S87R", "S89R"])
exp.tool.update_skew(250, ["S87R", "S89R"], backup=True)
exp.tool.check_skew(["S87R", "S89R"])