Upgrading SDK software version from 2.5.0 to 2.6.0#

Version 2.6.0 made a change in the way in the way that flattop waveforms get constructed.

Previously, a flattop was created by first making a waveform that represented the rising and falling portions. Then, when the to_flattop method was called, the waveform would “split” in half and a hold would be placed in between the rising and falling portions.

Now both of these steps are done with one call to either DCWaveform.create_dc_flattop or RFWaveform.create_rf_flattop. This comes with the additional benefit of being able to control the rising and falling times independently

Changes from 2.5.0 to 2.6.0#

Changes

2.5.0

2.6.0

DC Flattop construction

rise_fall_time = 50e-9
hold_time = 200e-9

dc_waveform = qcs.DCWaveform(
    duration= 2 * rise_fall_time,
    envelope= qcs.GaussianEnvelope(),
    amplitude= 0.1
)
dc_flattop = dc_waveform.to_flattop(hold_duration=hold_time)
rise_fall_time = 50e-9
hold_time = 200e-9

dc_flattop = qcs.DCWaveform.create_dc_flattop(
    rise_duration= rise_fall_time,
    hold_duration= hold_time,
    fall_duration= rise_fall_time,
    envelope= qcs.GaussianEnvelope(),
    amplitude= 0.1
)

RF Flattop construction

rise_fall_time = 50e-9
hold_time = 200e-9

rf_waveform = qcs.RFWaveform(
    duration= 2 * rise_fall_time,
    envelope= qcs.GaussianEnvelope(),
    amplitude= 0.1,
    frequency = 3e9
)
rf_flattop = rf_waveform.to_flattop(hold_duration=hold_time)
rise_fall_time = 50e-9
hold_time = 200e-9

rf_flattop = qcs.RFWaveform.create_rf_flattop(
    rise_duration= rise_fall_time,
    hold_duration= hold_time,
    fall_duration= rise_fall_time,
    envelope= qcs.GaussianEnvelope(),
    amplitude= 0.1,
    frequency= 3e9
)