spinqick.core.eo_pulses
Module for setting up exchange-only pulse sequences.
Attributes
Functions
|
Calculate the pulse length after rounding to fabric cycles. |
|
Declare all generators associated with a qubit. |
|
Setup a pi pulse for one or more axes of a qubit. |
|
Play pi pulse programmed by setup_pi_pulse. |
|
Set up an evol pulse for one or both axes of a qubit. |
|
Setup an exchange pulse for one axis of a qubit . |
|
Setup an evol pulse for one axis of a qubit. This assumes that the user is using the |
|
Set up an evol pulse for one or more axes of a qubit.This automatically rounds the pulse |
|
Play evol pulses programmed by setup_evol. |
|
Play evol pulses programmed by setup_evol_sweep or setup_evol. |
|
Convert desired angle to x-gate gain. This assumes the user is using the crosstalk |
|
Takes a list of angles on z and n axes, and converts them into waveforms. It assumes that. |
|
Return separate lists of angles for the n and z axes for a given clifford. |
|
Setup pulses for a series of single qubit cliffords. |
|
Play a single qubit clifford. |
Module Contents
- spinqick.core.eo_pulses.THETA1
- spinqick.core.eo_pulses.THETA2
- spinqick.core.eo_pulses.THETA3
- spinqick.core.eo_pulses.THETA4
- spinqick.core.eo_pulses.CLIFFORDS_1Q
- spinqick.core.eo_pulses.round_up_pulses(pulsetime, soccfg)
Calculate the pulse length after rounding to fabric cycles.
- Parameters:
pulsetime (float)
soccfg (qick.QickConfig)
- spinqick.core.eo_pulses.setup_eo_gens(prog, qubit_cfg)
Declare all generators associated with a qubit.
- Parameters:
prog (qick.asm_v2.QickProgramV2)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)
- spinqick.core.eo_pulses.setup_pi_pulse(prog, qubit_cfg, exchange_axis, pulse_time_cal='fine')
Setup a pi pulse for one or more axes of a qubit.
- Parameters:
pulse_time_cal (Literal['course', 'fine']) – if “course”, function assumes that the calibration was performed with pulse time rounded to the nearest fabric clock cycle. If “fine”, pulse times are defined and rounded to the nearest dac clock cycle.
prog (qick.asm_v2.QickProgramV2)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)
exchange_axis (list[spinqick.helper_functions.spinqick_enums.ExchangeAxis])
- spinqick.core.eo_pulses.play_pi(prog, exchange_axis, qubit_cfg, t=0, t_res='course')
Play pi pulse programmed by setup_pi_pulse.
- Parameters:
t (float) – time in program to play pulse (in microseconds). This goes directly into the qick api “pulse” command.
t_res (Literal['course', 'fine']) – if “course”, function assumes that the calibration was performed with pulse time rounded to the nearest fabric clock cycle. In this case, the script plays a pulse directly after the pi pulse which is at the idle voltage amplitude. If “fine”, pulse times are defined and rounded to the nearest dac clock cycle.
prog (qick.asm_v2.AsmV2)
exchange_axis (spinqick.helper_functions.spinqick_enums.ExchangeAxis)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)
- spinqick.core.eo_pulses.setup_evol_sweep(prog, qubit_cfg, exchange_axis, sweep_dict)
Set up an evol pulse for one or both axes of a qubit.
This automatically rounds the pulse times up to the nearest dac fabric cycle :param sweep_dict: {axis: {gate: {sweep: 1dqicksweep}} dictionary to specify gates to sweep and
supply a 1dqicksweep object.
- Parameters:
prog (qick.asm_v2.QickProgramV2)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)
exchange_axis (List[spinqick.helper_functions.spinqick_enums.ExchangeAxis])
sweep_dict (dict)
- spinqick.core.eo_pulses.setup_evol(prog, qubit_cfg, exchange_axis, n_pulses=10, ptime_res='fabric', sweep_dict=None)
Setup an exchange pulse for one axis of a qubit .
- Parameters:
n_pulses (int) – program n_pulses to play in a row, if ptime_res is set to “fs”
ptime_res (Literal['fabric', 'fs']) – time resolution of pulse time. If “fs”, set to sampling rate of dac, and pad end of pulse with idle_gain values. If “fabric”, round pulse length up to next fabric clock length.
sweep_dict (dict | None) – {axis: {gate: gain} dictionary to specify gates to modulate when applying exchange and supply a gain for each gate.
prog (qick.asm_v2.QickProgramV2)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)
exchange_axis (list[spinqick.helper_functions.spinqick_enums.ExchangeAxis])
- spinqick.core.eo_pulses.setup_evol_comp(prog, qubit_cfg, exchange_axis, n_pulses=10, ptime_res='fs', sweep_dict=None)
Setup an evol pulse for one axis of a qubit. This assumes that the user is using the compensation firmware to pulse along the exchange axis, so it only commands the x-gate to pulse during an exchange pulse.
- Parameters:
n_pulses (int) – program n_pulses to play in a row, if ptime_res is set to “fs”
ptime_res (Literal['fabric', 'fs']) – time resolution of pulse time. If “fs”, set to sampling rate of dac, and pad end of pulse with idle_gain values. If “fabric”, round pulse length up to next fabric clock length.
sweep_dict (dict | None) – {axis: {gate: gain} dictionary to specify gates to modulate when applying exchange and supply a gain for each gate.
prog (qick.asm_v2.QickProgramV2)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)
exchange_axis (list[spinqick.helper_functions.spinqick_enums.ExchangeAxis])
- spinqick.core.eo_pulses.setup_evol_sweep_comp(prog, qubit_cfg, exchange_axis, sweep_dict, n_pulses)
Set up an evol pulse for one or more axes of a qubit.This automatically rounds the pulse times up to the nearest dac fabric cycle.
- Parameters:
n_pulses (int) – program n_pulses to play in a row, if ptime_res is set to “fs”
ptime_res – time resolution of pulse time. If “fs”, set to sampling rate of dac, and pad end of pulse with idle_gain values. If “fabric”, round pulse length up to next fabric clock length.
sweep_dict (dict) – {axis: {gate: {sweep: 1dqicksweep}} specify gates to sweep and supply a 1dqicksweep object describing the sweep.
prog (qick.asm_v2.QickProgramV2)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)
exchange_axis (List[spinqick.helper_functions.spinqick_enums.ExchangeAxis])
- spinqick.core.eo_pulses.play_evol_fine(prog, exchange_axis, qubit_cfg, t=0, comp=False)
Play evol pulses programmed by setup_evol.
- Parameters:
prog (qick.asm_v2.AsmV2)
exchange_axis (spinqick.helper_functions.spinqick_enums.ExchangeAxis)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)
t (float)
comp (bool)
- spinqick.core.eo_pulses.play_evol_course(prog, exchange_axis, qubit_cfg, t=0, n_pulses=1)
Play evol pulses programmed by setup_evol_sweep or setup_evol.
- Parameters:
comp – if using pulse compensation firmware, only play a pulse on x-gate
prog (qick.asm_v2.AsmV2)
exchange_axis (spinqick.helper_functions.spinqick_enums.ExchangeAxis)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)
t (float)
n_pulses (int)
- spinqick.core.eo_pulses.theta_to_x_gain(exchange_axis, qubit_cfg, theta, x_gate_conversion)
Convert desired angle to x-gate gain. This assumes the user is using the crosstalk compensation firmware.
- Parameters:
theta (float) – desired angle in radians.
x_gate_conversion (float) – specify the conversion from voltage to dac units
exchange_axis (spinqick.helper_functions.spinqick_enums.ExchangeAxis)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)
- spinqick.core.eo_pulses.dumb_1q_compiler(prog, qubit_cfg, n_recipe, z_recipe, x_n_conversion, x_z_conversion)
Takes a list of angles on z and n axes, and converts them into waveforms. It assumes that.
- Parameters:
x_n_conversion (float) – specify the conversion from voltage to dac units for the n axis
x_z_conversion (float) – specify the conversion from voltage to dac units for the z axis
prog (qick.asm_v2.QickProgramV2)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)
n_recipe (List)
z_recipe (List)
- spinqick.core.eo_pulses.clifford_to_recipe(clifford)
Return separate lists of angles for the n and z axes for a given clifford.
This uses the one qubit clifford definitions listed above in CLIFFORD_1Q.
- Parameters:
clifford (str)
- spinqick.core.eo_pulses.setup_1q_cliffords(prog, qubit_cfg, cliffords, x_n_conversion, x_z_conversion)
Setup pulses for a series of single qubit cliffords.
- Parameters:
cliffords (List[str]) – list of strings describing clifford gates from CLIFFORD_1Q.
x_n_conversion (float) – specify the conversion from voltage to dac units for the n axis
x_z_conversion (float) – specify the conversion from voltage to dac units for the z axis
prog (qick.asm_v2.QickProgramV2)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)
- spinqick.core.eo_pulses.play_1q_clifford(prog, qubit_cfg, cliffords, t=0)
Play a single qubit clifford.
- Parameters:
cliffords (List[str]) – a list of strings specifying clifford gates from CLIFFORD_1Q.
t (float) – time in qickprogram to execute the cliffords in microseconds.
prog (qick.asm_v2.QickProgramV2)
qubit_cfg (spinqick.models.qubit_models.Eo1Qubit)