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)[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 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

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: {‘high’, ‘low’, ‘disabled’, ‘sequencer’}>

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

Sets/gets the time reference that the timetag recorded for each acquire_timetags instruction is recorded in relation to

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

IOChannel.binned_acq_on_invalid_time_delta()#

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

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

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_counter_mode()#

Sets/gets the manual control over the counter gate

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

IOChannel.in_counter_rising()#

Gets the raw value of the hardware rising-edge counter

Properties:
  • value: <Ints>

IOChannel.in_counter_falling()#

Gets the raw value of the hardware falling-edge counter

Properties:
  • value: <Ints>

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’, ‘sampled-low’, ‘sampled-high’, ‘falling’}>

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: {‘external’, ‘sequencer’}>

IOChannel.scope_trigger_level()#

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

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

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-windowed’, ‘scope’, ‘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.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:

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)[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: {‘x4’, ‘x2’, ‘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 the Latency of the TDC-capable input path in the given quad. Lower values decrease the feedback latency.

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