calix.hagen.neuron_synin.SynTimeConstantCalib

class calix.hagen.neuron_synin.SynTimeConstantCalib(target: quantities.quantity.Quantity = array(1.2) * us, neuron_configs: Optional[List[pyhaldls_vx_v3.NeuronConfig]] = None)

Bases: calix.common.madc_base.Calib

Calibrate synaptic input time constant using the MADC.

The sypantic input time constant is fitted to an MADC trace: after we send some stimuli to decrease the voltage on the synaptic input line, we fit to the exponential decay back to the baseline voltage.

During prelude, the MADC is enabled and the current readout section config is saved. During calibration, the readout config is changed continuously to calibrate one neuron’s synaptic input time constant after another.

Synaptic inputs need to be disabled during calibration, thus the synaptic input bias currents are written to zero in the prelude. Their state is not saved and restored as this calibration will normally run before they are calibrated, anyway.

Requirements: * Synaptic events can reach the neurons, i.e. the synapse DAC bias

is set and the `hal.ColumnCurrentSwitch`es allow currents from the synapses through.

Variables

neuron_config_default – List of desired neuron configurations. Necessary to enable high resistance mode.

__init__(target: quantities.quantity.Quantity = array(1.2) * us, neuron_configs: Optional[List[pyhaldls_vx_v3.NeuronConfig]] = None)
Parameters
  • neuron_configs – List of neuron configurations. If None, the hagen-mode default neuron config is used.

  • target – Target synaptic input time constant.

Methods

__init__([target, neuron_configs])

param neuron_configs

List of neuron configurations. If None, the

configure_parameters(builder, parameters)

Configures the given array of synaptic input resistor bias currents.

evaluate(samples)

Evaluates the obtained MADC samples.

neuron_config_disabled(neuron_coord)

Return a neuron config with readout disabled.

neuron_config_readout(neuron_coord)

Return a neuron config with readout enabled.

prelude(connection)

Prepares chip for calibration.

stimulate(builder, neuron_coord, …)

Send some PADI events to the synaptic input in order to drop the potential.

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

Configures the given array of synaptic input resistor bias currents.

Parameters
  • builder – Builder to append configuration instructions to.

  • parameters – Array of bias currents to set up.

Returns

Builder with configuration appended.

evaluate(samples: List[numpy.ndarray])numpy.ndarray

Evaluates the obtained MADC samples.

To each neuron’s MADC samples, an exponential decay is fitted, and the resulting time constant is returned.

Parameters

samples – MADC samples obtained for each neuron.

Returns

Numpy array of fitted synaptic input time constants in microseconds.

neuron_config_disabled(neuron_coord)pyhaldls_vx_v3.NeuronConfig

Return a neuron config with readout disabled.

The synaptic input is also disabled, since the neurons’ readout multiplexer may leak if the membrane voltage rises above 1.2 V, impacting the syn. input measurement. Hence, the transmission gates between the OTAs and the membrane are disabled. Note that on Hicann-X v1, this does not suffice to disable the synaptic input, and also the OTA bias currents need to be set to zero, which is done during the prelude.

Returns

Neuron config with readout disabled.

neuron_config_readout(neuron_coord)pyhaldls_vx_v3.NeuronConfig

Return a neuron config with readout enabled.

Returns

Neuron config with readout enabled.

prelude(connection: pyhxcomm_vx.ConnectionHandle)None

Prepares chip for calibration.

Disables synaptic inputs. Configures synapse drivers to stimulate the necessary input.

Parameters

connection – Connection to the chip to calibrate.

stimulate(builder: calix.common.base.WriteRecordingPlaybackProgramBuilder, neuron_coord: pyhalco_hicann_dls_vx_v3.NeuronConfigOnDLS, stimulation_time: pyhaldls_vx_v3.Timer.Value)calix.common.base.WriteRecordingPlaybackProgramBuilder

Send some PADI events to the synaptic input in order to drop the potential.

Parameters
  • builder – Builder to append PADI events to.

  • neuron_coord – Coordinate of neuron which is currently recorded.

  • stimulation_time – Timer value at beginning of stimulation.

Returns

Builder with PADI events appended.