def test_measure_all(self): """Test utility function - measure.""" with pulse.build(self.backend) as schedule: regs = pulse.measure_all() self.assertEqual(regs, [pulse.MemorySlot(0), pulse.MemorySlot(1)]) reference = macros.measure_all(self.backend) self.assertEqual(schedule, reference) backend_100q = ConfigurableBackend('100q', 100) with pulse.build(backend_100q) as schedule: regs = pulse.measure_all() reference = backend_100q.defaults().instruction_schedule_map.\ get('measure', list(range(100))) self.assertEqual(schedule, reference)
def test_measure_all(self): """Test measure_all function.""" sched = macros.measure_all(self.backend) expected = Schedule(self.inst_map.get('measure', [0, 1])) self.assertEqual(sched.instructions, expected.instructions)
def generate_schedule(pulse_seq, backend, draw_progs): D0 = [] D1 = [] for i, a in enumerate(pulse_seq): if len(pulse_seq[0]) == 2: # D0.append(complex(a[0], a[1])) D0.append(complex(a[0], a[1])) elif len(pulse_seq[0]) == 4: D0.append(complex(a[0], a[1])) D1.append(complex(a[2], a[3])) else: D0.append(a[0]) # if len(pulse_seq[0]) == 2: # # D0.append(complex(a[0], a[1])) # D0.append(complex(a[0], a[1])) # D1.append(complex(a[2], a[3])) # else: # D0.append(a[0]) # D0.append(a[0]) # D1.append(complex(a[2], a[3])) q1 = 0 q2 = 1 drive_chan1 = pulse.DriveChannel(q1) meas_chan1 = pulse.MeasureChannel(q1) acq_chan1 = pulse.AcquireChannel(q1) con_chan1 = pulse.ControlChannel(q1) drive_chan2 = pulse.DriveChannel(q2) meas_chan2 = pulse.MeasureChannel(q2) acq_chan2 = pulse.AcquireChannel(q2) con_chan2 = pulse.ControlChannel(q2) schedule = pulse.Schedule(name='sigmax') # init_x = backend.defaults().instruction_schedule_map.get('x', [1]) # def_seq = init_x.instructions[0] # def_seq = def_seq[1].pulse.get_waveform().samples # init_x = backend.defaults().instruction_schedule_map.get('x').data # schedule += Play(Waveform(def_seq), drive_chan2) # schedule += init_x later = schedule.duration # schedule += def_cx << later # if len(subsystem_list) == 1: # schedule += Play(SamplePulse(pulse_seqs[0]), drive_chan1) << later # else: # schedule += Play(SamplePulse(pulse_seqs[0]), con_chan1) << later # schedule += Play(SamplePulse(pulse_seqs[1]), con_chan2) << later # schedule += Play(SamplePulse(pulse_seqs[2]), drive_chan1) << later # schedule += Play(SamplePulse(pulse_seqs[3]), drive_chan2) schedule += Play(Waveform(D0), drive_chan1) << later # schedule.duration if len(pulse_seq[0]) == 4: schedule += Play(Waveform(D1), drive_chan2) << later # schedule.duration schedule += measure_all(backend) << schedule.duration if draw_progs: schedule.draw(plot_range=[0, len(D0)]) return schedule
"drive_sigma": 336, "pi_amp_01": 0.22109871419576962, "pi_amp_12": 0.36665303953291, "cal_qubit_freq": 4974529080.135406, "scale_factor": 1e-14, "qubit_12_freq": 4626195988.353748, "dt": 2.2222222222222221e-10 } pi_pulse_01 = get_pi_pulse_01(calibration) pi_pulse_12 = get_pi_pulse_12(calibration) drive_chan = pulse.DriveChannel(0) zero = pulse.Schedule(name="zero") zero |= measure_all(backend) one = pulse.Schedule(name="one") one |= pulse.Play(pi_pulse_01, drive_chan) one |= measure_all(backend) << one.duration two = pulse.Schedule(name="two") two |= pulse.Play(pi_pulse_01, drive_chan) two |= pulse.Play(pi_pulse_12, drive_chan) << two.duration two |= measure_all(backend) << two.duration prog = assemble_sched([zero, one, two], backend, calibration) job = backend.run(prog) job_monitor(job) data = get_job_data(job, calibration)
def generate_qiskit_program(pulse_seq, backend, default_seq=None, derotate_flag=False, draw_progs=False): D0 = [] D1 = [] if default_seq: D0 = default_seq else: for i, a in enumerate(pulse_seq): if derotate_flag: amp2 = derotate(a[1], i, backend) amp1 = derotate(a[0], i, backend) D0.append(complex(amp1, amp2)) else: if len(pulse_seq[0]) == 2: # D0.append(complex(a[0], a[1])) D0.append(complex(a[0], a[1])) elif len(pulse_seq[0]) == 4: D0.append(complex(a[0], a[1])) D1.append(complex(a[2], a[3])) else: D0.append(a[0]) # if len(pulse_seq[0]) == 2: # # D0.append(complex(a[0], a[1])) # D0.append(complex(a[0], a[1])) # D1.append(complex(a[2], a[3])) # else: # D0.append(a[0]) # D0.append(a[0]) # D1.append(complex(a[2], a[3])) q1 = 0 q2 = 1 drive_chan1 = pulse.DriveChannel(q1) meas_chan1 = pulse.MeasureChannel(q1) acq_chan1 = pulse.AcquireChannel(q1) con_chan1 = pulse.ControlChannel(q1) drive_chan2 = pulse.DriveChannel(q2) meas_chan2 = pulse.MeasureChannel(q2) acq_chan2 = pulse.AcquireChannel(q2) con_chan2 = pulse.ControlChannel(q2) schedule = pulse.Schedule(name='sigmax') # init_x = backend.defaults().instruction_schedule_map.get('x', [1]) # def_seq = init_x.instructions[0] # def_seq = def_seq[1].pulse.get_waveform().samples # init_x = backend.defaults().instruction_schedule_map.get('x').data # schedule += Play(Waveform(def_seq), drive_chan2) # schedule += init_x later = schedule.duration # schedule += def_cx << later # if len(subsystem_list) == 1: # schedule += Play(SamplePulse(pulse_seqs[0]), drive_chan1) << later # else: # schedule += Play(SamplePulse(pulse_seqs[0]), con_chan1) << later # schedule += Play(SamplePulse(pulse_seqs[1]), con_chan2) << later # schedule += Play(SamplePulse(pulse_seqs[2]), drive_chan1) << later # schedule += Play(SamplePulse(pulse_seqs[3]), drive_chan2) schedule += Play(Waveform(D0), drive_chan1) << later # schedule.duration if len(pulse_seq[0]) == 4: schedule += Play(Waveform(D1), drive_chan2) << later # schedule.duration schedule += measure_all(backend) << schedule.duration from qiskit import assemble if draw_progs: schedule.draw(plot_range=[0, len(D0)]) num_shots = 1024 qoc_test_program = assemble( schedule, backend=backend, meas_level=2, meas_return='single', # qubit_lo_freq=backend.defaults().qubit_freq_est, shots=num_shots, ) # schedule_los=schedule_frequencies) return qoc_test_program