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 tii3q98 zcu111 for testing software #199

Open
wants to merge 17 commits into
base: 0.1
Choose a base branch
from
238 changes: 238 additions & 0 deletions tii3q98_zcu111/parameters.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,238 @@
{
"nqubits": 3,
"description": "qubits 1, 2, 3 of tii3qw98 controlled by a Xilinx ZCU111 board",
"settings": {
"nshots": 1024,
"relaxation_time": 50000
},
"qubits": [
1,
2,
3
],
"topology": [
[
1,
2
],
[
2,
3
]
],
"instruments": {
"LO": {
"frequency": 6550000000,
"power": 10
}
},

"native_gates": {
"single_qubit": {

"1": {
"RX": {
"duration": 150,
"amplitude": 0.35,
"shape": "Gaussian(5)",
"frequency": 4466187000,
"relative_start": 0,
"phase": 0,
"type": "qd"
},
"MZ": {
"duration": 2500,
"amplitude": 0.5,
"shape": "Rectangular()",
"frequency": 6259600000,
"relative_start": 0,
"phase": 0,
"type": "ro"
}
},
"2": {
"RX": {
"duration": 150,
"amplitude": 0.23,
"shape": "Gaussian(5)",
"frequency": 4852200000,
"relative_start": 0,
"phase": 0,
"type": "qd"
},
"MZ": {
"duration": 2500,
"amplitude": 0.99,
"shape": "Rectangular()",
"frequency": 6385672000,
"relative_start": 0,
"phase": 0,
"type": "ro"
}
},
"3": {
"RX": {
"duration": 150,
"amplitude": 0.725,
"shape": "Gaussian(5)",
"frequency": 5265200000,
"relative_start": 0,
"phase": 0,
"type": "qd"
},
"MZ": {
"duration": 2500,
"amplitude": 0.2,
"shape": "Rectangular()",
"frequency": 6451980000,
"relative_start": 0,
"phase": 0,
"type": "ro"
}
}

},
"two_qubit": {
"1-2": {
"CZ": [
{
"duration": 40,
"amplitude": 0.077,
"shape": "Rectangular()",
"qubit": 2,
"relative_start": 0,
"type": "qf"
},
{
"type": "virtual_z",
"phase": 0.0,
"qubit": 2
},
{
"type": "virtual_z",
"phase": 0.0,
"qubit": 1
}
]
},
"2-3": {
"CZ": [
{
"duration": 40,
"amplitude": 0.077,
"shape": "Rectangular()",
"qubit": 2,
"relative_start": 0,
"type": "qf"
},
{
"type": "virtual_z",
"phase": 0.0,
"qubit": 2
},
{
"type": "virtual_z",
"phase": 0.0,
"qubit": 3
}
]
}
}
},
"characterization": {
"single_qubit": {

"1": {
"bare_resonator_frequency": 0,
"readout_frequency": 7511552000,
"drive_frequency": 4866533959,
"anharmonicity": 0,
"sweetspot": 0.0,
"asymmetry": 0.0,
"crosstalk_matrix": { "2": 1, "3": 0, "4": 0},
"Ec": 0.0,
"Ej": 0.0,
"g": 0.0,
"assignment_fidelity": 0.0,
"readout_fidelity": 0.0,
"effective_temperature": 0.0,
"peak_voltage": 0,
"pi_pulse_amplitude": 0.286,
"T1": 4210.0,
"T2": 0.0,
"T2_spin_echo": 0,
"state0_voltage": 0,
"state1_voltage": 0,
"mean_gnd_states": [-2.489, -0.445],
"mean_exc_states": [-1.537, -2.797],
"threshold": 1.03212,
"iq_angle": 1.186,
"mixer_drive_g": 0.0,
"mixer_drive_phi": 0.0,
"mixer_readout_g": 0.0,
"mixer_readout_phi": 0.0
},
"2": {
"bare_resonator_frequency": 0,
"readout_frequency": 7548731000,
"drive_frequency": 4186934000,
"anharmonicity": 286200000,
"sweetspot": -0.1919,
"asymmetry": 0.0,
"crosstalk_matrix": { "2": 0, "3": 1, "4": 0},
"Ec": 0.0,
"Ej": 0.0,
"g": 0.0,
"assignment_fidelity": 0.0,
"readout_fidelity": 0.0,
"effective_temperature": 0.0,
"peak_voltage": 0,
"pi_pulse_amplitude": 0.4,
"T1": 8900.0,
"T2": 0.0,
"T2_spin_echo": 0,
"state0_voltage": 0,
"state1_voltage": 0,
"mean_gnd_states": [-1.773, 2.147],
"mean_exc_states": [-3.099, 1.369],
"threshold": 1.854602,
"iq_angle": 2.611,
"mixer_drive_g": 0.0,
"mixer_drive_phi": 0.0,
"mixer_readout_g": 0.0,
"mixer_readout_phi": 0.0
},
"3": {
"bare_resonator_frequency": 0,
"readout_frequency": 7548731000,
"drive_frequency": 4186934000,
"anharmonicity": 286200000,
"sweetspot": -0.1919,
"asymmetry": 0.0,
"crosstalk_matrix": { "2": 0, "3": 1, "4": 0},
"Ec": 0.0,
"Ej": 0.0,
"g": 0.0,
"assignment_fidelity": 0.0,
"readout_fidelity": 0.0,
"effective_temperature": 0.0,
"peak_voltage": 0,
"pi_pulse_amplitude": 0.4,
"T1": 6610.395234920448,
"T2": 0.0,
"T2_spin_echo": 0,
"state0_voltage": 0,
"state1_voltage": 0,
"mean_gnd_states": [-1.773, 2.147],
"mean_exc_states": [-3.099, 1.369],
"threshold": 1.854602,
"iq_angle": 2.611,
"mixer_drive_g": 0.0,
"mixer_drive_phi": 0.0,
"mixer_readout_g": 0.0,
"mixer_readout_phi": 0.0
}

}
}
}
83 changes: 83 additions & 0 deletions tii3q98_zcu111/platform.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
import pathlib

from qibolab.channels import Channel, ChannelMap
from qibolab.instruments.rfsoc import RFSoC
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,
)

# from qibolab.kernels import Kernels

NAME = "tii3q98_zcu111"
ADDRESS = "192.168.0.81"
PORT = 6000
LO_ADDRESS = "192.168.0.31"
# TWPA_ADDRESS = "192.168.0.37"
FOLDER = pathlib.Path(__file__).parent
print(FOLDER)


def create():
"""Platform for qubits 2, 3 and witness on tii3qw81 chipusing the ZCU111 board running qibosoq.
The chip has fixed-frequency transmons without flux lines
IPs and other instrument related parameters are hardcoded in.
"""

# Instantiate QICK instruments
controller = RFSoC(str(FOLDER), ADDRESS, PORT, sampling_rate=6.144)
controller.cfg.adc_trig_offset = 200
controller.cfg.repetition_duration = 100

# Create channel objects
channels = ChannelMap()
channels |= Channel("L3-28_ro", port=controller.ports(6)) # probe dac6
# QUBIT 1
channels |= Channel("L1-2-RO_1", port=controller.ports(3)) # feedback adc1
channels |= Channel("L4-30_qd", port=controller.ports(5)) # drive dac3
channels |= Channel("L1-21_fl", port=controller.ports(2)) # Not Used flux dac2
# QUBIT 2
channels |= Channel("L1-2-RO_2", port=controller.ports(1)) # feedback adc1
channels |= Channel("L4-31_qd", port=controller.ports(3)) # drive dac3
channels |= Channel("L1-22_fl", port=controller.ports(0)) # Not Used flux dac0

# QUBIT 3
channels |= Channel("L1-2-RO_3", port=controller.ports(2)) # feedback adc2
channels |= Channel("L4-32_qd", port=controller.ports(4)) # drive dac4
channels |= Channel("L1-23_fl", port=controller.ports(1)) # Not Usedflux dac1

# Readout local oscillator
local_oscillator = SGS100A(name="LO", address=LO_ADDRESS)
channels["L3-28_ro"].local_oscillator = local_oscillator

runcard = load_runcard(FOLDER)
qubits, couplers, pairs = load_qubits(runcard)

qubits[1].readout = channels["L3-28_ro"]
qubits[1].feedback = channels["L1-2-RO_1"]
qubits[1].drive = channels["L4-30_qd"]
qubits[1].flux = channels["L1-21_fl"] # Not Used
channels["L1-21_fl"].qubit = qubits[1]

qubits[2].readout = channels["L3-28_ro"]
qubits[2].feedback = channels["L1-2-RO_2"]
qubits[2].drive = channels["L4-31_qd"]
qubits[2].flux = channels["L1-22_fl"] # Not Used
channels["L1-22_fl"].qubit = qubits[2]

qubits[3].readout = channels["L3-28_ro"]
qubits[3].feedback = channels["L1-2-RO_3"]
qubits[3].drive = channels["L4-32_qd"]
qubits[3].flux = channels["L1-23_fl"] # Not Used
channels["L1-23_fl"].qubit = qubits[3]

instruments = {controller.name: controller, local_oscillator.name: local_oscillator}
settings = load_settings(runcard)
instruments = load_instrument_settings(runcard, instruments)
return Platform(
str(FOLDER), qubits, pairs, instruments, settings, resonator_type="2D"
)
Loading