Skip to content
Snippets Groups Projects
To find the state of this project's repository at the time of any of these versions, check out the tags.

Changelog

All notable changes to Pulselib will be documented in this file.

[1.6.1] - 2022-12-06

Added

  • start_times to measurement_description

Changed

  • measurement names do not have to be unique. They will get a postfix to make them unique.

[1.6.0] - 2022-11-25

Attention !!

  • Digitizer trigger timing has been corrected for channel delays !!
  • Digitizer RF source API has changed.
  • Looping has been refactored to add functionality and improve performance.
  • Important internal interface changes are marked with [v1.6.0] in the code.

Added

  • Added segment_container.update_dim for looping with index
  • Added numpy array operations to looping variables
  • Added looping.array to loop over an arbitrary array of values
  • Added digitizer_channel.delay
  • Added prolongation_ns to RF source configuration
  • Added iq_complex to fast_scan1D_param and fast_scan2D_param

Changed

  • Changed set_digitizer_rf_source trigger_offset_ns to startup_time_ns.
  • Refactored looping and segment indexing:
    • Improved performance of looping arguments
    • Improved performance of segment_container.reset_time()
    • Improved performance of segment and segment_container indexing
    • Improved performance of sequence pre-rendering
    • Reduced memory usage
    • Added sanity checks on looping arguments
  • Added checks on frequency when rendering MW pulses

Removed

  • Removed segment_container append(), slice_time(), last_edit
  • Removed segment_IQ.add_global_phase()

Fixed

  • Fixed addition of 2 segment_containers to construct simultaneous driving
  • Tektronix marker on unused AWG channel
  • Measurement result inversion with zero_on_high
  • Multiple measurements on 1 channel with down-sampling

[1.5.6] - 2022-10-10

Fixed

  • Fixed error in measurement parameter when no shot is accepted

[1.5.5] - 2022-09-27

Fixed

  • Incorrect setpoints in measurement_param.add_derived_param.

[1.5.4] - 2022-09-23

Added

  • Added endpoint to looping.linspace, logspace and geomspace.
  • Added more data selection options to get_measurement_results()
  • Added addition of segment_containers to construct simultaneous driving
  • Added sequence_builder.add_simultaneous()

Changed

  • Do not add axis 'repetition' if sequencer.n_rep == None.

Fixed

  • Fixed set_acquisition with t_measure and sample_rate
  • Fixed get_measurement_param with iq_complex=False
  • Fixed high memory usage due to unlimited waveform cache.

[1.5.3] - 2022-08-05

Fixed

  • Fixed looping and HVI marker
  • Added retries to sequence upload and play

[1.5.2] - 2022-08-03

Fixed

  • sequencer.get_channel_data and get_measurement_param when using play() with index as done by core-tools.

[1.5.1] - 2022-08-03

Added

  • Added sequencer.plot()

Fixed

  • Fixed looping t_off of add_HVI_marker
  • Fixed plotting after mk_sequence

[1.5.0] - 2022-07-25

Added

  • Support for Qblox modules: QCM and QRM
  • Added sequencer.get_channel_data
  • Added sequencer.set_acquisition
  • Added sequencer.get_measurement_param with automatic upload/play and thresholding
  • Added sequencer.get_measurement_results
  • Added channel acquire(..., n_repeat= , interval= )
  • Added qblox_fast_scan 1D and 2D
  • Added digitizer configuring by M3202A_Uploader.

Changed

  • Default channel offset is None to allow configuration outside of pulselib

Fixed

  • Scaling of custom pulses with virtual gates. Custom function now always called with amplitude of original pulse.

[1.4.0] - 2022-05-17

Changed

  • Renamed Tektronix backend 'Tektronix_5014' after refactoring:
    • Faster and allow fast switching between multiple uploaded sequences.
    • Amplitude output has been corrected. It is 2x previous output. Correct attenuation per channel!!
    • Use sequence.play(release=False) to call play multiple times after a single upload.
    • Use infinite looping when n_rep > 65535

Added

  • Added sequencer.repetition_aligment to align the duration of the sequence with an external clock or signal frequency. (currently only implemented for Tektronix)
  • Added argument reset_time to wait()
  • Several pages of documentation (not finished yet..)

[1.3.5] - 2022-03-29

Fixed

  • Error when rendering section with low sample rate extends into segment with high sample rate.

[1.3.4] - 2022-03-23

Improved

  • QuantumSequencer use waveform with low sample rate for long DC compensation pulse.

[1.3.3] - 2022-03-14

Fixed

  • QuantumSequencer bugs in 1.3.2

[1.3.2] - 2022-03-14

Fixed

  • Fixed long wait (> 160 ms) for QuantumSequencer

Added

  • Added attribute 'values' to sequence loop parameters

[1.3.1] - 2022-03-07

Fixed

  • Fixed rendering of segments with different sample rates
  • Rendering of conditional segments with looping

[1.3.0] - 2022-02-22

Added

  • IQ correction of phase, amplitude and offset: add_channel_offset, set_qubit_correction_phase, set_qubit_correction_gain
  • New interface from hardware class to pulselib: set_channel_attenuations and add_virtual_matrix
  • Virtual matrix on top of virtual gates
  • Added hw schedule for UHFLI with Tektronix
  • Improved release_awg_memory (for Keysight AWG)

Removed

  • pulse.add_channel_compenstation_limit. Correct method is add_channel_compensation_limit

Fixed

  • loops with t_measurement in HVI variable.
  • release_awg_memory() for Keysight

[1.2.0] - 2021-11-11

First labeled release. Start of dev branch and change logging.