Output API#

IOChannel#

The IOChannel module is responsible for adding the parameters of a single digital in/output within a module.

class qblox_instruments.qcodes_drivers.io_channel.IOChannel(parent: Instrument | InstrumentChannel, name: str, io_channel_idx: int)[source]#

Bases: Component

This class represents a single IO channel. It combines all IO channel specific parameters and functions into a single QCoDes InstrumentChannel.

DISPLAY_TO_INTERNAL_MODE_MAP: Final[dict[str, str]] = {'force_off': 'low', 'force_on': 'high', 'input': 'disabled', 'output': 'sequencer'}#
__init__(parent: Instrument | InstrumentChannel, name: str, io_channel_idx: int) None[source]#

Creates a IO channel class and adds all relevant parameters for the IO channel.

Parameters:
  • parent (Union[Instrument, InstrumentChannel]) – The QCoDeS class to which this IO channel belongs.

  • name (str) – Name of this IO channel

  • io_channel_idx (int) – The index of this IO channel in the parent instrument, representing which IO channel is controlled by this class.

property io_channel_idx: int#

Get IO channel index.

Returns:

IOChannel index

Return type:

int

truth_table_data(input_src: list | TruthTable, default_trg_addr: int = 0, overwrite_conflict: bool = False) None[source]#

Generates Truth Table configuration to be sent to the instrument.

Parameters:

input_src (Union[list, TruthTable]) – List of rules used to build the Truth Table or a Truth Table object.

Cluster QTM IOChannel parameters#

IOChannel.mode()#

Sets/gets the output function of the I/O Port for the givenchannel (‘input’ = port is in 50Ohm mode, ‘force_off’ = the port drives low-impedance 0V, ‘force_on’ = the port drives low-impedance ~3.3V, ‘output’ = enables the port to output digital values according to the sequencer)

Properties:
  • value: <Enum: {‘force_on’, ‘output’, ‘force_off’, ‘input’}>

IOChannel.analog_threshold()#

Sets/gets the primary threshold voltage used for digitization of the input signal on the given channel

Properties:
  • unit: V

  • value: <Numbers>

IOChannel.binned_acq_time_source()#

Sets/gets the timetag data source for acquisitions made on this channel using the acquire_timetags instruction

Properties:
  • value: <Enum: {‘last’, ‘first’, ‘second’}>

IOChannel.binned_acq_time_ref()#

Selects which time reference is used when each timetag is recorded.

Parameters

value | args[0]str
One of the following values:
  • start (default): Record relative to the start of the window.

  • end: Record relative to the end of the window (always yields a negative timetag).

  • first0: Record relative to the first recorded timetag of the most recently closed window on channel 0.

  • first1: Record relative to the first recorded timetag of the most recently closed window on channel 1.

  • first2: Record relative to the first recorded timetag of the most recently closed window on channel 2.

  • first3: Record relative to the first recorded timetag of the most recently closed window on channel 3.

  • first4: Record relative to the first recorded timetag of the most recently closed window on channel 4.

  • first5: Record relative to the first recorded timetag of the most recently closed window on channel 5.

  • first6: Record relative to the first recorded timetag of the most recently closed window on channel 6.

  • first7: Record relative to the first recorded timetag of the most recently closed window on channel 7.

  • sequencer: Record relative to the timestamp marked using the set_time_ref Q1 instruction.

Properties:
  • value: <Enum: {‘first’, ‘sequencer’, ‘first0’, ‘first7’, ‘first6’, ‘first1’, ‘end’, ‘first3’, ‘first4’, ‘first5’, ‘first2’, ‘start’}>

IOChannel.binned_acq_on_invalid_time_delta()#

Sets/gets averaging and binning logic behavior if/when no valid time delta is available, typically because no event occurred in the window

Properties:
  • value: <Enum: {‘discard’, ‘error’, ‘record_0’}>

IOChannel.binned_acq_count_source()#

Sets/gets the way events are counted during acquire_timetags windows. In ‘timetags’ mode, the timetags themselves are counted, limiting repetition rate and latency to the capabilities of the time-to-digital converter. In ‘low-latency’ mode, a dedicated, low-latency counter is used instead. This counter is not limited by repetition rate, but uses a less accurate window. In ‘combined’ mode, both counters are used redundantly, and a disagreement in their counts is treated as an invalid count.

Properties:
  • value: <Enum: {‘low-latency’, ‘combined’, ‘timetags’}>

IOChannel.binned_acq_on_invalid_count()#

Sets/gets averaging and binning logic behavior if/when no valid event count is available, typically due to counter disagreement for binned_acq_count_source = combined

Properties:
  • value: <Enum: {‘discard’, ‘error’, ‘record_0’}>

IOChannel.binned_acq_on_invalid_threshold()#

Sets/gets averaging and binning logic behavior if/when no valid count threshold is available, typically due to counter disagreement for binned_acq_count_source = combined

Properties:
  • value: <Enum: {‘discard’, ‘error’, ‘record_0’}>

IOChannel.binned_acq_threshold_source()#

Sets/gets the data source of the threshold recorded by acquire timetags

Properties:
  • value: <Enum: {‘thresh0’, ‘thresh1’}>

IOChannel.is_above_threshold()#

Gets the current level of the input. Returns False if the input level is below analog_threshold, or True if it’s aboveacquire timetags

Properties:
  • value: None

IOChannel.forward_trigger_en()#

Sets/gets the enable that controls sending triggers to the trigger network automatically or based on direct sampling of the inputs. The mode is configured by forward_trigger_mode, and the address by forward_trigger_address

Properties:
  • value: <Boolean>

IOChannel.forward_trigger_mode()#

Sets/gets which event causes a trigger to be sent if forward_trigger_en is enabled

Properties:
  • value: <Enum: {‘falling’, ‘sampled-low’, ‘sampled-high’, ‘rising’}>

IOChannel.forward_trigger_address()#

Sets/gets which event causes a trigger to be sent if forward_trigger_en is enabled

Properties:
  • value: <Ints 1<=v<=15>

IOChannel.scope_trigger_mode()#

Sets/gets how the scope/trace unit for this channel is triggered is enabled

Properties:
  • value: <Enum: {‘external’, ‘sequencer’}>

IOChannel.scope_trigger_level()#

Sets/gets how the scope/trace unit for this channel is triggered is enabled

Properties:
  • value: <Enum: {‘low’, ‘rising’, ‘falling’, ‘high’, ‘any’}>

IOChannel.scope_mode()#

Sets/gets what type of data is traced when the scope/trace unit for this channel is triggered

Properties:
  • value: <Enum: {‘scope’, ‘timetags-windowed’, ‘timetags’}>

IOChannel.thresholded_acq_trigger_en()#

Sets/gets whether the thresholded acquisition result of acquire_timetags is mapped to the trigger network for feedback purposes

Properties:
  • value: <Boolean>

IOChannel.thresholded_acq_trigger_address_low()#

Sets/gets whether a trigger is to be sent and which trigger address is to be used when the result is low

Properties:
  • value: <Ints 0<=v<=15>

IOChannel.thresholded_acq_trigger_address_mid()#

Sets/gets whether a trigger is to be sent and which trigger address is to be used when the result is mid

Properties:
  • value: <Ints 0<=v<=15>

IOChannel.thresholded_acq_trigger_address_high()#

Sets/gets whether a trigger is to be sent and which trigger address is to be used when the result is high

Properties:
  • value: <Ints 0<=v<=15>

IOChannel.thresholded_acq_trigger_address_invalid()#

Sets/gets whether a trigger is to be sent and which trigger address is to be used when the result is invalid

Properties:
  • value: <Ints 0<=v<=15>

IOChannel.truth_table_en()#

Enable/disable Truth Table usage in the local channel

Properties:
  • value: <Boolean>

IOChannel.get_scope_data() Any

Returns the QTM I/O channel scope data for the given slot and channel acquired since the previous call.

Returns:

The acquired data. Empty if no data acquired since last call.

Return type:

Any

Raises:

NotImplementedError – Functionality not available on this module.

Note

This method calls Cluster.get_scope_data using functools.partial to set the slot index. The docstring above is of Cluster.get_scope_data:

Note

This method calls Module.get_scope_data using functools.partial to set the IO channel index. The docstring above is of Module.get_scope_data:

IOChannel.truth_table_data(input_src: list | qblox_instruments.qcodes_drivers.truth_table.TruthTable, default_trg_addr: int = 0, overwrite_conflict: bool = False) None#

Generates Truth Table configuration to be sent to the instrument.

Parameters:

input_src (Union[list, TruthTable]) – List of rules used to build the Truth Table or a Truth Table object.

Quad#

The Quad module is responsible for adding the parameters of a group of four digital in/output channels (quad) within a module.

class qblox_instruments.qcodes_drivers.quad.Quad(parent: Instrument | InstrumentChannel, name: str, quad_idx: int)[source]#

Bases: Component

This class represents a single quad. It combines all quad specific parameters and functions into a single QCoDes InstrumentChannel.

DISPLAY_TO_INTERNAL_CHANNEL_COMBINE_MAP: Final[dict[bool, str]] = {False: 'independent', True: 'fan-out'}#
__init__(parent: Instrument | InstrumentChannel, name: str, quad_idx: int) None[source]#

Creates a quad class and adds all relevant parameters for the quad.

Parameters:
  • parent (Union[Instrument, InstrumentChannel]) – The QCoDeS class to which this quad belongs.

  • name (str) – Name of this quad channel

  • quad_idx (int) – The index of this quad in the parent instrument, representing which quad is controlled by this class.

property quad_idx: int#

Get quad index.

Returns:

Quad index

Return type:

int

Cluster QTM Quad parameters#

Quad.timetag_oversampling()#

Sets/gets the timetag oversampling setting of all channels in the given quad (‘disabled’ = no oversampling, ‘2x’ = events are sampled by the converter twice with a typical single-shot RMS of 15 ps, ‘4x’ = events are sampled by the converter four times with a typical single-shot RMS of 10 ps)

Properties:
  • value: <Enum: {‘disabled’, ‘x4’, ‘x2’}>

Quad.input_fan_out()#

Sets/gets the input fan-out status of both pairs in this channel. If True, the input of the auxiliary channel is internally wired to the main I/O, otherwise the channels in each channel pair are fully independent.

Properties:
  • value: <Boolean>