calix.hagen.synapse_driver.HagenDACOffsetCalib

class calix.hagen.synapse_driver.HagenDACOffsetCalib

Bases: calix.common.base.Calib

Search Hagen-mode DAC offset settings such that drivers yield the same pulse lengths.

Initially, amplitudes at a high STP ramp current and a low hagen-mode DAC potential are measured, corresponding to the maximum available pulse length. We select the DAC offset such that with the desired ramp current, the amplitude starts decreasing from this maximum at a low, but non-zero DAC value (which equals a high, but non-maximum activation). Hence, this alignes the start points of the STP ramps to the start point of the DAC’s dynamic range.

Requirements: * Static synapse driver bias currents are set. This can be achieved

using preconfigure_capmem().

Variables
  • test_activation – Hagen-mode activation to use when determining the ramp start. Should be high, close but not equal to the maximum activation.

  • n_parallel_measurements – Number of parallel measurements to execute when measuring results.

  • maximum_amplitudes – Maximum amplitudes per driver, measured at a high ramp current and high activation. If not supplied otherwise, it will be measured during the prelude.

  • log – Logger used for printing outputs.

__init__()

Initialize self. See help(type(self)) for accurate signature.

Methods

__init__()

Initialize self.

configure_parameters(builder, parameters)

Configure the synapse drivers to the given offsets.

measure_maximum_amplitudes(connection)

Measure the maximum output amplitudes available per driver.

measure_results(connection, builder)

Read output amplitudes of synapse drivers.

postlude(connection)

Print the calibrated DAC offsets.

prelude(connection)

Configure synapse array and measure calibration target.

configure_parameters(builder: calix.common.base.WriteRecordingPlaybackProgramBuilder, parameters: numpy.ndarray)calix.common.base.WriteRecordingPlaybackProgramBuilder

Configure the synapse drivers to the given offsets.

Parameters
  • builder – Builder to append configuration to.

  • parameters – Synapse driver offset settings to configure.

Returns

Builder with configuration instructions appended.

measure_maximum_amplitudes(connection: pyhxcomm_vx.ConnectionHandle)numpy.ndarray

Measure the maximum output amplitudes available per driver.

We configure a high ramp current and measure amplitudes at a low address in order to achieve the full pulse length, i.e. the maximum amplitude for each driver.

Parameters

connection – Connection to the chip to be measured.

Returns

Array of maximum amplitudes per driver.

measure_results(connection: pyhxcomm_vx.ConnectionHandle, builder: calix.common.base.WriteRecordingPlaybackProgramBuilder)numpy.ndarray

Read output amplitudes of synapse drivers.

Parameters
  • connection – Connection to the chip to run on.

  • builder – Builder that is run before measuring.

Returns

Array of synapse drivers’ output amplitudes.

postlude(connection: pyhxcomm_vx.ConnectionHandle)None

Print the calibrated DAC offsets.

Parameters

connection – Connection to the chip to run on.

prelude(connection: pyhxcomm_vx.ConnectionHandle)None

Configure synapse array and measure calibration target.

Measure target: median amplitude of all drivers.

Parameters

connection – Connection to the chip to run on.