def setUpClass(self): self.station = station.Station() self.CCL_qubit = ct.CCLight_Transmon('CCL_qubit') self.MW1 = vmw.VirtualMWsource('MW1') self.MW2 = vmw.VirtualMWsource('MW2') self.MW3 = vmw.VirtualMWsource('MW3') self.SH = sh.virtual_SignalHound_USB_SA124B('SH') self.UHFQC = UHF.UHFQC(name='UHFQC', server='emulator', device='dev2109', interface='1GbE') self.CCL = dummy_CCL('CCL') # self.VSM = Dummy_Duplexer('VSM') self.VSM = Dummy_QuTechVSMModule('VSM') self.MC = measurement_control.MeasurementControl( 'MC', live_plot_enabled=False, verbose=False) self.MC.station = self.station self.station.add_component(self.MC) # Required to set it to the testing datadir test_datadir = os.path.join(pq.__path__[0], 'tests', 'test_output') self.MC.datadir(test_datadir) a_tools.datadir = self.MC.datadir() self.AWG = HDAWG.ZI_HDAWG8(name='DummyAWG8', server='emulator', num_codewords=32, device='dev8026', interface='1GbE') self.AWG8_VSM_MW_LutMan = mwl.AWG8_VSM_MW_LutMan('MW_LutMan_VSM') self.AWG8_VSM_MW_LutMan.AWG(self.AWG.name) self.AWG8_VSM_MW_LutMan.channel_GI(1) self.AWG8_VSM_MW_LutMan.channel_GQ(2) self.AWG8_VSM_MW_LutMan.channel_DI(3) self.AWG8_VSM_MW_LutMan.channel_DQ(4) self.AWG8_VSM_MW_LutMan.mw_modulation(100e6) self.AWG8_VSM_MW_LutMan.sampling_rate(2.4e9) self.ro_lutman = UHFQC_RO_LutMan('RO_lutman', num_res=5, feedline_number=0) self.ro_lutman.AWG(self.UHFQC.name) # Assign instruments self.CCL_qubit.instr_LutMan_MW(self.AWG8_VSM_MW_LutMan.name) self.CCL_qubit.instr_LO_ro(self.MW1.name) self.CCL_qubit.instr_LO_mw(self.MW2.name) self.CCL_qubit.instr_spec_source(self.MW3.name) self.CCL_qubit.instr_acquisition(self.UHFQC.name) self.CCL_qubit.instr_VSM(self.VSM.name) self.CCL_qubit.instr_CC(self.CCL.name) self.CCL_qubit.instr_LutMan_RO(self.ro_lutman.name) self.CCL_qubit.instr_MC(self.MC.name) self.CCL_qubit.instr_SH(self.SH.name) config_fn = os.path.join(pq.__path__[0], 'tests', 'openql', 'test_cfg_CCL.json') self.CCL_qubit.cfg_openql_platform_fn(config_fn) # Setting some "random" initial parameters self.CCL_qubit.ro_freq(5.43e9) self.CCL_qubit.ro_freq_mod(200e6) self.CCL_qubit.freq_qubit(4.56e9) self.CCL_qubit.freq_max(4.62e9) self.CCL_qubit.mw_freq_mod(-100e6) self.CCL_qubit.mw_awg_ch(1) self.CCL_qubit.cfg_qubit_nr(0) self.CCL_qubit.mw_vsm_delay(15) self.CCL_qubit.mw_mixer_offs_GI(.1) self.CCL_qubit.mw_mixer_offs_GQ(.2) self.CCL_qubit.mw_mixer_offs_DI(.3) self.CCL_qubit.mw_mixer_offs_DQ(.4)
def setUpClass(self): self.station = station.Station() self.CCL_qubit = ct.Mock_CCLight_Transmon('CCL_qubit') self.fluxcurrent = flx.virtual_SPI_S4g_FluxCurrent('fluxcurrent', channel_map={ 'FBL_Q1': (0, 0), 'FBL_Q2': (0, 1), }) self.fluxcurrent.FBL_Q1(0) self.fluxcurrent.FBL_Q2(0) self.station.add_component(self.fluxcurrent) self.MW1 = vmw.VirtualMWsource('MW1') self.MW2 = vmw.VirtualMWsource('MW2') self.MW3 = vmw.VirtualMWsource('MW3') self.SH = sh.virtual_SignalHound_USB_SA124B('SH') self.UHFQC = dummy_UHFQC('UHFQC') self.CCL = dummy_CCL('CCL') # self.VSM = Dummy_Duplexer('VSM') self.VSM = Dummy_QuTechVSMModule('VSM') self.MC = measurement_control.MeasurementControl( 'MC', live_plot_enabled=False, verbose=False) self.MC.station = self.station self.station.add_component(self.MC) # Required to set it to the testing datadir test_datadir = os.path.join(pq.__path__[0], 'tests', 'test_output') self.MC.datadir(test_datadir) a_tools.datadir = self.MC.datadir() self.AWG = v8.VirtualAWG8('DummyAWG8') self.AWG8_VSM_MW_LutMan = mwl.AWG8_VSM_MW_LutMan('MW_LutMan_VSM') self.AWG8_VSM_MW_LutMan.AWG(self.AWG.name) self.AWG8_VSM_MW_LutMan.channel_GI(1) self.AWG8_VSM_MW_LutMan.channel_GQ(2) self.AWG8_VSM_MW_LutMan.channel_DI(3) self.AWG8_VSM_MW_LutMan.channel_DQ(4) self.AWG8_VSM_MW_LutMan.mw_modulation(100e6) self.AWG8_VSM_MW_LutMan.sampling_rate(2.4e9) self.ro_lutman = UHFQC_RO_LutMan('RO_lutman', num_res=5, feedline_number=0) self.ro_lutman.AWG(self.UHFQC.name) # Assign instruments self.CCL_qubit.instr_LutMan_MW(self.AWG8_VSM_MW_LutMan.name) self.CCL_qubit.instr_LO_ro(self.MW1.name) self.CCL_qubit.instr_LO_mw(self.MW2.name) self.CCL_qubit.instr_spec_source(self.MW3.name) self.CCL_qubit.instr_acquisition(self.UHFQC.name) self.CCL_qubit.instr_VSM(self.VSM.name) self.CCL_qubit.instr_CC(self.CCL.name) self.CCL_qubit.instr_LutMan_RO(self.ro_lutman.name) self.CCL_qubit.instr_MC(self.MC.name) self.CCL_qubit.instr_FluxCtrl(self.fluxcurrent.name) self.CCL_qubit.instr_SH(self.SH.name) config_fn = os.path.join(pq.__path__[0], 'tests', 'openql', 'test_cfg_CCL.json') self.CCL_qubit.cfg_openql_platform_fn(config_fn) # Setting some "random" initial parameters self.CCL_qubit.ro_freq(5.43e9) self.CCL_qubit.ro_freq_mod(200e6) self.CCL_qubit.freq_qubit(4.56e9) self.CCL_qubit.freq_max(4.62e9) self.CCL_qubit.mw_freq_mod(-100e6) self.CCL_qubit.mw_awg_ch(1) self.CCL_qubit.cfg_qubit_nr(0) self.CCL_qubit.mw_vsm_delay(15) self.CCL_qubit.mw_mixer_offs_GI(.1) self.CCL_qubit.mw_mixer_offs_GQ(.2) self.CCL_qubit.mw_mixer_offs_DI(.3) self.CCL_qubit.mw_mixer_offs_DQ(.4) # self.CCL_qubit.ro_acq_averages(32768) self.device = do.DeviceCCL(name='device') self.CCL_qubit.instr_device(self.device.name)
def setUpClass(self): """ This sets up a mock setup using a CCL to control multiple qubits """ self.station = station.Station() self.MW1 = vmw.VirtualMWsource('MW1') self.MW2 = vmw.VirtualMWsource('MW2') self.MW3 = vmw.VirtualMWsource('MW3') self.SH = sh.virtual_SignalHound_USB_SA124B('SH') self.UHFQC_0 = UHF.UHFQC(name='UHFQC_0', server='emulator', device='dev2109', interface='1GbE') self.UHFQC_1 = UHF.UHFQC(name='UHFQC_1', server='emulator', device='dev2110', interface='1GbE') self.UHFQC_2 = UHF.UHFQC(name='UHFQC_2', server='emulator', device='dev2111', interface='1GbE') self.CCL = dummy_CCL('CCL') self.QCC = dummy_QCC('QCC') self.CC = QuTechCC('CC', DummyTransport()) self.VSM = Dummy_Duplexer('VSM') self.MC = measurement_control.MeasurementControl( 'MC', live_plot_enabled=False, verbose=False) self.MC.station = self.station self.station.add_component(self.MC) # Required to set it to the testing datadir test_datadir = os.path.join(pq.__path__[0], 'tests', 'test_output') self.MC.datadir(test_datadir) a_tools.datadir = self.MC.datadir() self.AWG_mw_0 = HDAWG.ZI_HDAWG8(name='AWG_mw_0', server='emulator', num_codewords=32, device='dev8026', interface='1GbE') self.AWG_mw_1 = HDAWG.ZI_HDAWG8(name='AWG_mw_1', server='emulator', num_codewords=32, device='dev8027', interface='1GbE') self.AWG_flux_0 = HDAWG.ZI_HDAWG8(name='AWG_flux_0', server='emulator', num_codewords=32, device='dev8028', interface='1GbE') self.AWG8_VSM_MW_LutMan = mwl.AWG8_VSM_MW_LutMan('MW_LutMan_VSM') self.AWG8_VSM_MW_LutMan.AWG(self.AWG_mw_0.name) self.AWG8_VSM_MW_LutMan.channel_GI(1) self.AWG8_VSM_MW_LutMan.channel_GQ(2) self.AWG8_VSM_MW_LutMan.channel_DI(3) self.AWG8_VSM_MW_LutMan.channel_DQ(4) self.AWG8_VSM_MW_LutMan.mw_modulation(100e6) self.AWG8_VSM_MW_LutMan.sampling_rate(2.4e9) self.ro_lutman_0 = UHFQC_RO_LutMan('ro_lutman_0', feedline_number=0, feedline_map='S17', num_res=9) self.ro_lutman_0.AWG(self.UHFQC_0.name) self.ro_lutman_1 = UHFQC_RO_LutMan('ro_lutman_1', feedline_number=1, feedline_map='S17', num_res=9) self.ro_lutman_1.AWG(self.UHFQC_1.name) self.ro_lutman_2 = UHFQC_RO_LutMan('ro_lutman_2', feedline_number=2, feedline_map='S17', num_res=9) self.ro_lutman_2.AWG(self.UHFQC_2.name) # Assign instruments qubits = [] for q_idx in range(17): q = ct.CCLight_Transmon('q{}'.format(q_idx)) qubits.append(q) q.instr_LutMan_MW(self.AWG8_VSM_MW_LutMan.name) q.instr_LO_ro(self.MW1.name) q.instr_LO_mw(self.MW2.name) q.instr_spec_source(self.MW3.name) if q_idx in [13, 16]: q.instr_acquisition(self.UHFQC_0.name) q.instr_LutMan_RO(self.ro_lutman_0.name) elif q_idx in [1, 4, 5, 7, 8, 10, 11, 14, 15]: q.instr_acquisition(self.UHFQC_1.name) q.instr_LutMan_RO(self.ro_lutman_1.name) elif q_idx in [0, 2, 3, 6, 9, 12]: q.instr_acquisition(self.UHFQC_2.name) q.instr_LutMan_RO(self.ro_lutman_2.name) q.instr_VSM(self.VSM.name) q.instr_CC(self.CCL.name) q.instr_MC(self.MC.name) q.instr_SH(self.SH.name) config_fn = os.path.join(pq.__path__[0], 'tests', 'test_cfg_CCL.json') q.cfg_openql_platform_fn(config_fn) # Setting some "random" initial parameters q.ro_freq(5.43e9 + q_idx * 50e6) q.ro_freq_mod(200e6) q.freq_qubit(4.56e9 + q_idx * 50e6) q.freq_max(4.62e9 + q_idx * 50e6) q.mw_freq_mod(-100e6) q.mw_awg_ch(1) q.cfg_qubit_nr(q_idx) # q.mw_vsm_delay(15) q.mw_mixer_offs_GI(.1) q.mw_mixer_offs_GQ(.2) q.mw_mixer_offs_DI(.3) q.mw_mixer_offs_DQ(.4) # Set up the device object and set required params self.device = do.DeviceCCL('device') self.device.qubits([q.name for q in qubits]) self.device.instr_CC(self.CCL.name) self.device.instr_AWG_mw_0(self.AWG_mw_0.name) self.device.instr_AWG_mw_1(self.AWG_mw_1.name) self.device.instr_AWG_flux_0(self.AWG_flux_0.name) self.device.ro_lo_freq(6e9)
def setUpClass(self): """ This sets up a mock setup using a CCL to control multiple qubits """ self.station = station.Station() self.MW1 = vmw.VirtualMWsource("MW1") self.MW2 = vmw.VirtualMWsource("MW2") self.MW3 = vmw.VirtualMWsource("MW3") self.SH = sh.virtual_SignalHound_USB_SA124B("SH") self.UHFQC_0 = UHF.UHFQC( name="UHFQC_0", server="emulator", device="dev2109", interface="1GbE" ) self.UHFQC_1 = UHF.UHFQC( name="UHFQC_1", server="emulator", device="dev2110", interface="1GbE" ) self.UHFQC_2 = UHF.UHFQC( name="UHFQC_2", server="emulator", device="dev2111", interface="1GbE" ) self.CCL = dummy_CCL('CCL') self.QCC = dummy_QCC('QCC') self.CC = CC('CC', DummyTransport()) self.VSM = Dummy_QuTechVSMModule('VSM') self.MC = measurement_control.MeasurementControl( "MC", live_plot_enabled=False, verbose=False ) self.MC.station = self.station self.station.add_component(self.MC) # Required to set it to the testing datadir test_datadir = os.path.join(pq.__path__[0], "tests", "test_output") self.MC.datadir(test_datadir) a_tools.datadir = self.MC.datadir() self.AWG_mw_0 = HDAWG.ZI_HDAWG8( name="AWG_mw_0", server="emulator", num_codewords=32, device="dev8026", interface="1GbE", ) self.AWG_mw_1 = HDAWG.ZI_HDAWG8( name="AWG_mw_1", server="emulator", num_codewords=32, device="dev8027", interface="1GbE", ) self.AWG_flux_0 = HDAWG.ZI_HDAWG8( name="AWG_flux_0", server="emulator", num_codewords=32, device="dev8028", interface="1GbE", ) if 0: # FIXME: PR #658: test broken by commit bd19f56 self.mw_lutman = mwl.AWG8_VSM_MW_LutMan("MW_LutMan_VSM") self.mw_lutman.AWG(self.AWG_mw_0.name) self.mw_lutman.channel_GI(1) self.mw_lutman.channel_GQ(2) self.mw_lutman.channel_DI(3) self.mw_lutman.channel_DQ(4) else: # FIXME: workaround self.mw_lutman = mwl.AWG8_MW_LutMan("MW_LutMan") self.mw_lutman.channel_I(1) self.mw_lutman.channel_Q(2) self.mw_lutman.mw_modulation(100e6) self.mw_lutman.sampling_rate(2.4e9) self.ro_lutman_0 = UHFQC_RO_LutMan( "ro_lutman_0", feedline_number=0, feedline_map="S17", num_res=9 ) self.ro_lutman_0.AWG(self.UHFQC_0.name) self.ro_lutman_1 = UHFQC_RO_LutMan( "ro_lutman_1", feedline_number=1, feedline_map="S17", num_res=9 ) self.ro_lutman_1.AWG(self.UHFQC_1.name) self.ro_lutman_2 = UHFQC_RO_LutMan( "ro_lutman_2", feedline_number=2, feedline_map="S17", num_res=9 ) self.ro_lutman_2.AWG(self.UHFQC_2.name) # Assign instruments qubits = [] for q_idx in range(17): q = ct.CCLight_Transmon("q{}".format(q_idx)) qubits.append(q) q.instr_LutMan_MW(self.mw_lutman.name) q.instr_LO_ro(self.MW1.name) q.instr_LO_mw(self.MW2.name) q.instr_spec_source(self.MW3.name) if q_idx in [13, 16]: q.instr_acquisition(self.UHFQC_0.name) q.instr_LutMan_RO(self.ro_lutman_0.name) elif q_idx in [1, 4, 5, 7, 8, 10, 11, 14, 15]: q.instr_acquisition(self.UHFQC_1.name) q.instr_LutMan_RO(self.ro_lutman_1.name) elif q_idx in [0, 2, 3, 6, 9, 12]: q.instr_acquisition(self.UHFQC_2.name) q.instr_LutMan_RO(self.ro_lutman_2.name) q.instr_VSM(self.VSM.name) q.instr_CC(self.CCL.name) q.instr_MC(self.MC.name) q.instr_SH(self.SH.name) config_fn = os.path.join(pq.__path__[0], "tests", "test_cfg_CCL.json") q.cfg_openql_platform_fn(config_fn) # Setting some "random" initial parameters q.ro_freq(5.43e9 + q_idx * 50e6) q.ro_freq_mod(200e6) q.freq_qubit(4.56e9 + q_idx * 50e6) q.freq_max(4.62e9 + q_idx * 50e6) q.mw_freq_mod(-100e6) q.mw_awg_ch(1) q.cfg_qubit_nr(q_idx) # q.mw_vsm_delay(15) q.mw_mixer_offs_GI(0.1) q.mw_mixer_offs_GQ(0.2) q.mw_mixer_offs_DI(0.3) q.mw_mixer_offs_DQ(0.4) # Set up the device object and set required params self.device = do.DeviceCCL("device") self.device.qubits([q.name for q in qubits]) self.device.instr_CC(self.CCL.name) self.device.instr_AWG_mw_0(self.AWG_mw_0.name) self.device.instr_AWG_mw_1(self.AWG_mw_1.name) self.device.instr_AWG_flux_0(self.AWG_flux_0.name) self.device.ro_lo_freq(6e9) # Fixed by design self.dio_map_CCL = {"ro_0": 1, "ro_1": 2, "flux_0": 3, "mw_0": 4, "mw_1": 5} # Fixed by design self.dio_map_QCC = { "ro_0": 1, "ro_1": 2, "ro_2": 3, "mw_0": 4, "mw_1": 5, "flux_0": 6, "flux_1": 7, "flux_2": 8, "mw_2": 9, "mw_3": 10, "mw_4": 11, } # Modular, arbitrary example here self.dio_map_CC = { "ro_0": 0, "ro_1": 1, "ro_2": 2, "mw_0": 3, "mw_1": 4, "flux_0": 6, "flux_1": 7, "flux_2": 8, } self.device.dio_map(self.dio_map_CCL)
def setUpClass(self): """ This sets up a mock setup using a CCL to control multiple qubits """ self.station = station.Station() self.CCL_qubit = ct.CCLight_Transmon('CCL_qubit') self.MW1 = vmw.VirtualMWsource('MW1') self.MW2 = vmw.VirtualMWsource('MW2') self.MW3 = vmw.VirtualMWsource('MW3') self.SH = sh.virtual_SignalHound_USB_SA124B('SH') self.UHFQC = dummy_UHFQC('UHFQC') self.CCL = dummy_CCL('CCL') self.QCC = dummy_QCC('QCC') self.VSM = Dummy_Duplexer('VSM') self.MC = measurement_control.MeasurementControl( 'MC', live_plot_enabled=False, verbose=False) self.MC.station = self.station self.station.add_component(self.MC) # Required to set it to the testing datadir test_datadir = os.path.join(pq.__path__[0], 'tests', 'test_output') self.MC.datadir(test_datadir) a_tools.datadir = self.MC.datadir() self.AWG_mw_0 = v8.VirtualAWG8('AWG_mw_0') self.AWG_mw_1 = v8.VirtualAWG8('AWG_mw_1') self.AWG_flux_0 = v8.VirtualAWG8('AWG_flux_0') self.AWG8_VSM_MW_LutMan = mwl.AWG8_VSM_MW_LutMan('MW_LutMan_VSM') self.AWG8_VSM_MW_LutMan.AWG(self.AWG_mw_0.name) self.AWG8_VSM_MW_LutMan.channel_GI(1) self.AWG8_VSM_MW_LutMan.channel_GQ(2) self.AWG8_VSM_MW_LutMan.channel_DI(3) self.AWG8_VSM_MW_LutMan.channel_DQ(4) self.AWG8_VSM_MW_LutMan.mw_modulation(100e6) self.AWG8_VSM_MW_LutMan.sampling_rate(2.4e9) self.ro_lutman = UHFQC_RO_LutMan('RO_lutman', num_res=5) self.ro_lutman.AWG(self.UHFQC.name) # Assign instruments self.CCL_qubit.instr_LutMan_MW(self.AWG8_VSM_MW_LutMan.name) self.CCL_qubit.instr_LO_ro(self.MW1.name) self.CCL_qubit.instr_LO_mw(self.MW2.name) self.CCL_qubit.instr_spec_source(self.MW3.name) self.CCL_qubit.instr_acquisition(self.UHFQC.name) self.CCL_qubit.instr_VSM(self.VSM.name) self.CCL_qubit.instr_CC(self.CCL.name) self.CCL_qubit.instr_LutMan_RO(self.ro_lutman.name) self.CCL_qubit.instr_MC(self.MC.name) self.CCL_qubit.instr_SH(self.SH.name) config_fn = os.path.join(pq.__path__[0], 'tests', 'test_cfg_CCL.json') self.CCL_qubit.cfg_openql_platform_fn(config_fn) # Setting some "random" initial parameters self.CCL_qubit.ro_freq(5.43e9) self.CCL_qubit.ro_freq_mod(200e6) self.CCL_qubit.freq_qubit(4.56e9) self.CCL_qubit.freq_max(4.62e9) self.CCL_qubit.mw_freq_mod(-100e6) self.CCL_qubit.mw_awg_ch(1) self.CCL_qubit.cfg_qubit_nr(0) self.CCL_qubit.mw_vsm_delay(15) self.CCL_qubit.mw_mixer_offs_GI(.1) self.CCL_qubit.mw_mixer_offs_GQ(.2) self.CCL_qubit.mw_mixer_offs_DI(.3) self.CCL_qubit.mw_mixer_offs_DQ(.4) # Set up the device object and set required params self.device = do.DeviceCCL('device') self.device.qubits([self.CCL_qubit.name]) self.device.instr_CC(self.CCL.name) self.device.instr_AWG_mw_0(self.AWG_mw_0.name) self.device.instr_AWG_mw_1(self.AWG_mw_1.name) self.device.instr_AWG_flux_0(self.AWG_flux_0.name)