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.

__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

thresholded_acq_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.out_mode()#

Sets/gets the output function of the I/O Port for the givenchannel (‘disabled’ = port is in 50Ohm mode, ‘low’ = the port drives low-impedance 0V, ‘high’ = the port drives low-impedance ~3.3V)

Properties:
  • value: <Enum: {‘sequencer’, ‘high’, ‘low’, ‘disabled’}>

IOChannel.in_threshold_primary()#

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: {‘sequencer’, ‘first7’, ‘first2’, ‘first’, ‘first0’, ‘first6’, ‘first3’, ‘first4’, ‘first5’, ‘end’, ‘start’, ‘first1’}>

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’, ‘record_0’, ‘error’}>

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: {‘timetags’, ‘low-latency’, ‘combined’}>

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’, ‘record_0’, ‘error’}>

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’, ‘record_0’, ‘error’}>

IOChannel.binned_acq_threshold_source()#

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

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

IOChannel.current_in_level()#

Gets the current level of the input. Returns 0 if the input level is below in_threshold_primary, or 1 if it’s aboveacquire timetags

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

IOChannel.in_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 in_trigger_mode, and the address by in_trigger_address

Properties:
  • value: <Boolean>

IOChannel.in_trigger_mode()#

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

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

IOChannel.in_trigger_address()#

Sets/gets which event causes a trigger to be sent if in_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: {‘sequencer’, ‘external’}>

IOChannel.scope_trigger_level()#

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

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

IOChannel.scope_mode()#

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

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

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.thresholded_acq_truth_table_en()#

Enable/disable Truth Table usage in the local channel

Properties:
  • value: <Boolean>

IOChannel.get_scope_data() dict

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:

list

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.thresholded_acq_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.

__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: {‘x2’, ‘x4’, ‘disabled’}>

Quad.tdc_latency()#

Sets/gets the Latency of the TDC-capable input path in the given quad. Lower values decrease the feedback latency.

Properties:
  • unit: ns

  • value: <Numbers>

Quad.channel_combine()#

Sets/gets Controls the channel combine mode of both pairs in this channel (‘independent’ = the channels in each channel pair are fully independent, ‘fan-out’ = the input of the auxiliary channel is internally wired to the main I/O.)

Properties:
  • value: <Enum: {‘fan-out’, ‘independent’}>