Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New platform for chip tii3qw81 controlled by ZCU111 #177

Closed
wants to merge 14 commits into from
274 changes: 274 additions & 0 deletions spinq10q.yml
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Outdated file, please remove

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in bbd371c

Original file line number Diff line number Diff line change
@@ -0,0 +1,274 @@
nqubits: 10
settings: {nshots: 1024, sampling_rate: 1_000_000_000, relaxation_time: 50_000}
qubits: [6, 7, 8, 9, 10]
topology:
- [6, 7]
- [7, 8]
- [8, 9]
- [9, 10]
instruments:
twpa_pump1: {power: 2, frequency: 6300000000} # not calibrated
qrm_rf1: # q6, q7, q8, q9, q10
o1:
attenuation: 36
lo_frequency: 7_640_000_000
i1:
acquisition_hold_off: 500
acquisition_duration: 2500

# qcm_rf2:
# o1:
# attenuation: 60
# lo_frequency: 4_288_807_000 # q5
# o2:
# attenuation: 20
# lo_frequency: 4_994_000_000 # q6,
# qcm_rf3:
# o1:
# attenuation: 20
# lo_frequency: 4_327_000_000 # q7,
# o2:
# attenuation: 20
# lo_frequency: 4_931_000_000 # q8,
# qcm_rf4:
# o1:
# attenuation: 20
# lo_frequency: 4_029_000_000 # q9,
# o2:
# attenuation: 20
# lo_frequency: 4_564_000_000 # q10,

# qcm_bb1:
# o1:
# offset: 0.0 # q5
# o2:
# offset: 0.0 # q6
# o3:
# offset: 0.0 # q7
# o4:
# offset: 0.0 # q8
# qcm_bb2:
# o1:
# offset: 0.0 #
# o2:
# offset: 0.0 #
# o3:
# offset: 0.0 # q9
# o4:
# offset: 0.0 # q10

native_gates:
single_qubit:
6:
RX: {duration: 40, amplitude: 0.2, shape: Gaussian(5), frequency: 4807000000,
relative_start: 0, phase: 0, type: qd}
MZ: {duration: 2500, amplitude: 0.1, shape: Rectangular(), frequency: 7492871912,
relative_start: 0, phase: 0, type: ro}
7:
RX: {duration: 40, amplitude: 0.2, shape: Gaussian(5), frequency: 4138000000,
relative_start: 0, phase: 0, type: qd}
MZ: {duration: 2500, amplitude: 0.05, shape: Rectangular(), frequency: 7552523695,
relative_start: 0, phase: 0, type: ro}
8:
RX: {duration: 40, amplitude: 0.2, shape: Gaussian(5), frequency: 4740000000,
relative_start: 0, phase: 0, type: qd}
MZ: {duration: 2500, amplitude: 0.1, shape: Rectangular(), frequency: 7582597778,
relative_start: 0, phase: 0, type: ro}
9:
RX: {duration: 40, amplitude: 0.2, shape: Gaussian(5), frequency: 3936000000,
relative_start: 0, phase: 0, type: qd}
MZ: {duration: 2500, amplitude: 0.1, shape: Rectangular(), frequency: 7439612987,
relative_start: 0, phase: 0, type: ro}
10:
RX: {duration: 40, amplitude: 0.2, shape: Gaussian(5), frequency: 4443000000,
relative_start: 0, phase: 0, type: qd}
MZ: {duration: 2500, amplitude: 0.1, shape: Rectangular(), frequency: 7625805244,
relative_start: 0, phase: 0, type: ro}
two_qubit:
6-7:
CZ:
- {duration: 40, amplitude: 0.01, shape: Rectangular(), qubit: 6, relative_start: 0,
type: qf}
7-8:
CZ:
- {duration: 40, amplitude: 0.01, shape: Rectangular(), qubit: 8, relative_start: 0,
type: qf}
8-9:
CZ:
- {duration: 40, amplitude: 0.01, shape: Rectangular(), qubit: 8, relative_start: 0,
type: qf}
9-10:
CZ:
- {duration: 40, amplitude: 0.01, shape: Rectangular(), qubit: 10, relative_start: 0,
type: qf}

characterization:
single_qubit:
6:
bare_resonator_frequency: 7492000000
readout_frequency: 7492871912
drive_frequency: 4807000000
anharmonicity: 300000000
# sweetspot: 0.0 # 0
# sweetspot: -0.27 # all sweetspot
sweetspot: 0.04 # all sweetspot
# sweetspot: 0.208 # parking
flux_to_bias: 1.6665895049327701
asymmetry: 0.5535122935186866
bare_resonator_frequency_sweetspot: 7489207877
ssf_brf: 0.0
Ec: 0.001712748757440161
Ej: 10.609527507376397
g: 0.160394924514527
assignment_fidelity: 0
readout_fidelity: 0.0
effective_temperature: 0.0
peak_voltage: 0
pi_pulse_amplitude: 0.5
T1: 0
T2: 0
T2_spin_echo: 0
state0_voltage: 0
state1_voltage: 0
mean_gnd_states: [0, 0]
mean_exc_states: [0, 0]
threshold: 0.0
iq_angle: 0.0
mixer_drive_g: 0.0
mixer_drive_phi: 0.0
mixer_readout_g: 0.0
mixer_readout_phi: 0.0
7:
bare_resonator_frequency: 7551000000
readout_frequency: 7552523695
drive_frequency: 4138000000
anharmonicity: 300000000
# sweetspot: 0.0 # 0
# sweetspot: 0.25 # all sweetspot
sweetspot: -0.01 # 1&2 ss rest parked
# sweetspot: 1 # parking
flux_to_bias: 0.3703033075501269
asymmetry: 0.03846063238221964
bare_resonator_frequency_sweetspot: 7551278196
ssf_brf: 0.0
Ec: 0.0009246451339489379
Ej: 5.562311176695407
g: 0.0916007392206866
assignment_fidelity: 0
readout_fidelity: 0.0
effective_temperature: 0.0
peak_voltage: 0
pi_pulse_amplitude: 0.5
T1: 0
T2: 0
T2_spin_echo: 0
state0_voltage: 0
state1_voltage: 0
mean_gnd_states: [0, 0]
mean_exc_states: [0, 0]
threshold: 0.0
iq_angle: 0.0
mixer_drive_g: 0.0
mixer_drive_phi: 0.0
mixer_readout_g: 0.0
mixer_readout_phi: 0.0
8:
bare_resonator_frequency: 7582000000
readout_frequency: 7582597778
drive_frequency: 4740000000
anharmonicity: 300000000
# sweetspot: 0.0 # 0
# sweetspot: 0.27 # all sweetspot
sweetspot: 0.01 # 1&2 ss rest parked
# sweetspot: 1 # parking
flux_to_bias: 0.4995172960641154
asymmetry: 0.2075344332925857
bare_resonator_frequency_sweetspot: 7581851516
ssf_brf: 0.0
Ec: 0.33019201147898763
Ej: 11.890449189962764
g: 0.04231188420111357
assignment_fidelity: 0
readout_fidelity: 0.0
effective_temperature: 0.0
peak_voltage: 0
pi_pulse_amplitude: 0.5
T1: 0
T2: 0
T2_spin_echo: 0
state0_voltage: 0
state1_voltage: 0
mean_gnd_states: [0, 0]
mean_exc_states: [0, 0]
threshold: 0.0
iq_angle: 0.0
mixer_drive_g: 0.0
mixer_drive_phi: 0.0
mixer_readout_g: 0.0
mixer_readout_phi: 0.0
9:
bare_resonator_frequency: 7443000000
readout_frequency: 7439612987
drive_frequency: 3936000000
anharmonicity: 300000000
# sweetspot: 0.0 # 0
# sweetspot: 0.28 # all sweetspot
sweetspot: 0.03 # 1&2 ss rest parked
flux_to_bias: 10.000130322312259
asymmetry: 1.3920288326762917
bare_resonator_frequency_sweetspot: 7436783114
ssf_brf: 0.0
Ec: 0.3031215235846714
Ej: 11.98896584756633
g: 0.10132930078089977
assignment_fidelity: 0
readout_fidelity: 0.0
effective_temperature: 0.0
peak_voltage: 0
pi_pulse_amplitude: 0.5
T1: 0
T2: 0
T2_spin_echo: 0
state0_voltage: 0
state1_voltage: 0
mean_gnd_states: [0, 0]
mean_exc_states: [0, 0]
threshold: 0.0
iq_angle: 0.0
mixer_drive_g: 0.0
mixer_drive_phi: 0.0
mixer_readout_g: 0.0
mixer_readout_phi: 0.0
10:
bare_resonator_frequency: 7626000000
readout_frequency: 7625805244
drive_frequency: 4443000000
anharmonicity: 300000000
# sweetspot: 0.0 # 0
# sweetspot: -0.21 # all sweetspot
sweetspot: 0.11 # 1&2 ss rest parked
flux_to_bias: 10.000712581827976
asymmetry: 0.017944091505718254
bare_resonator_frequency_sweetspot: 7622592997
ssf_brf: 0.0
Ec: 0.3029667450053242
Ej: 11.99519574096561
g: 0.10837183302651561
assignment_fidelity: 0
readout_fidelity: 0.0
effective_temperature: 0.0
peak_voltage: 0
pi_pulse_amplitude: 0.5
T1: 0
T2: 0
T2_spin_echo: 0
state0_voltage: 0
state1_voltage: 0
mean_gnd_states: [0, 0]
mean_exc_states: [0, 0]
threshold: 0.0
iq_angle: 0.0
mixer_drive_g: 0.0
mixer_drive_phi: 0.0
mixer_readout_g: 0.0
mixer_readout_phi: 0.0
116 changes: 116 additions & 0 deletions spinq10q_qblox.py
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Outdated file, please remove

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done in bbd371c

Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
import pathlib

from qibolab.channels import Channel, ChannelMap
from qibolab.instruments.qblox.cluster import (
Cluster,
Cluster_Settings,
ReferenceClockSource,
)
from qibolab.instruments.qblox.cluster_qcm_bb import ClusterQCM_BB
from qibolab.instruments.qblox.cluster_qcm_rf import ClusterQCM_RF
from qibolab.instruments.qblox.cluster_qrm_rf import ClusterQRM_RF
from qibolab.instruments.qblox.controller import QbloxController
from qibolab.instruments.rohde_schwarz import SGS100A
from qibolab.platform import Platform
from qibolab.serialize import (
load_instrument_settings,
load_qubits,
load_runcard,
load_settings,
)

NAME = "qblox"
ADDRESS = "192.168.0.3"
RUNCARD = pathlib.Path(__file__).parent / "spinq10q.yml"


def create(runcard_path=RUNCARD):
"""SpinQ 10q-chip controlled using qblox cluster 6.

Args:
runcard_path (str): Path to the runcard file.
"""
runcard = load_runcard(runcard_path)
cluster = Cluster(
name="cluster",
address="192.168.0.3",
settings=Cluster_Settings(reference_clock_source=ReferenceClockSource.EXTERNAL),
)
modules = {
"qrm_rf1": ClusterQRM_RF(
"qrm_rf1", f"{ADDRESS}:18", cluster
), # qubits q6, q7, q8, q9, q10
# "qcm_rf2": ClusterQCM_RF("qcm_rf2", f"{ADDRESS}:12", cluster), # qubits q5, q6
# "qcm_rf3": ClusterQCM_RF("qcm_rf3", f"{ADDRESS}:14", cluster), # qubits q7, q8
# "qcm_rf4": ClusterQCM_RF("qcm_rf4", f"{ADDRESS}:16", cluster), # qubits q9, q10
# "qcm_bb1": ClusterQCM_BB(
# "qcm_bb1", f"{ADDRESS}:4", cluster
# ), # qubits q5, q6, q7, q8
# "qcm_bb2": ClusterQCM_BB("qcm_bb2", f"{ADDRESS}:6", cluster), # qubits q9, q10
}
controller = QbloxController("qblox_controller", cluster, modules)
twpa_pump1 = SGS100A(name="twpa_pump1", address="192.168.0.39")

instruments = {
controller.name: controller,
twpa_pump1.name: twpa_pump1,
}
instruments.update(modules)
instruments = load_instrument_settings(runcard, instruments)

# DEBUG: debug folder = report folder ###################################################################
# import os
# from datetime import datetime

# QPU = "spinq10q"
# debug_folder = f"/home/users/alvaro.orgaz/reports/{datetime.now().strftime('%Y%m%d')}_{QPU}_/debug/"
# if not os.path.exists(debug_folder):
# os.makedirs(debug_folder)
# for name in modules:
# modules[name]._debug_folder = debug_folder
#########################################################################################################

# Create channel objects
channels = ChannelMap()
# Readout
channels |= Channel(name="L3-21", port=modules["qrm_rf1"].ports["o1"])

channels |= Channel(name="L2-17", port=modules["qrm_rf1"].ports["i1"])
# # Drive
# channels |= Channel(name="L6-6", port=modules["qcm_rf2"].ports["o2"])
# channels |= Channel(name="L6-7", port=modules["qcm_rf3"].ports["o1"])
# channels |= Channel(name="L6-8", port=modules["qcm_rf3"].ports["o2"])
# channels |= Channel(name="L6-9", port=modules["qcm_rf4"].ports["o1"])
# channels |= Channel(name="L6-10", port=modules["qcm_rf4"].ports["o2"])
# # Flux
# channels |= Channel(name="L6-44", port=modules["qcm_bb1"].ports["o2"])
# channels |= Channel(name="L6-45", port=modules["qcm_bb1"].ports["o3"])
# channels |= Channel(name="L6-46", port=modules["qcm_bb1"].ports["o4"])
# channels |= Channel(name="L6-47", port=modules["qcm_bb2"].ports["o4"])
# channels |= Channel(name="L6-48", port=modules["qcm_bb2"].ports["o3"])

# TWPA
channels |= Channel(name="L3-23", port=None)
channels["L3-23"].local_oscillator = twpa_pump1

# create qubit objects
qubits, couplers, pairs = load_qubits(runcard)

# assign channels to qubits
for q in [6, 7, 8, 9, 10]:
qubits[q].readout = channels["L3-21"]
qubits[q].feedback = channels["L2-17"]
qubits[q].twpa = channels["L3-23"]

# for q in range(6, 11):
# qubits[q].drive = channels[f"L6-{q}"]
# qubits[q].flux = channels[f"L6-{38+q}"]
# channels[f"L6-{38+q}"].qubit = qubits[q]
# # set maximum allowed bias
# qubits[q].flux.max_bias = 2.5

settings = load_settings(runcard)

return Platform(
"spinq10q_qblox", qubits, pairs, instruments, settings, resonator_type="2D"
)
Loading
Loading