calix.spiking.neuron_calib_parts

Helper functions representing parts of the spiking neuron calibration.

These functions are intended to be called in a specific order, as it is done in the spiking neuron calibration - please use caution in case you call them directly.

Classes

COBAParameters(target)

Collection of parameters for COBA synaptic input calibration.

SyninParameters(target)

Collection of parameters for synaptic input calibration.

Functions

calix.spiking.neuron_calib_parts.calibrate_synapse_dac_bias(connection: hxcomm.ConnectionHandle, synapse_dac_bias: int, calib_result: calix.hagen.neuron.CalibResultInternal)

Calibrate the synapse DAC bias.

First, configure the target parameters on each quadrant. Then, calibrate each quadrant’s parameters such that the minimum amplitude of those measured previously on the quadrants is reached.

Parameters
  • connection – Connection to chip to run on.

  • synapse_dac_bias – Target CapMem value for calibration.

  • calib_result – Calib result.

calix.spiking.neuron_calib_parts.calibrate_synaptic_input(connection: hxcomm.ConnectionHandle, target: neuron.NeuronCalibTarget, calib_result: neuron._CalibResultInternal, target_cadc_reads: np.ndarray)

Run calibration of (current-based) synaptic inputs.

Parameters
  • connection – Connection to chip to run on.

  • target – Target parameters for neuron calibration.

  • calib_result – Calib result to store parameters in.

  • target_cadc_reads – CADC samples at resting potential, with synaptic input disabled.

calix.spiking.neuron_calib_parts.calibrate_synin_coba(connection: hxcomm.ConnectionHandle, target: neuron.NeuronCalibTarget, calib_result: neuron.NeuronCalibResult)

Calibrate synaptic input in COBA mode, i.e. calibrate the OTA that modulates the CUBA OTA’s bias.

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

  • target – Target for neuron calibration.

  • calib_result – Neuron calibration result.

calix.spiking.neuron_calib_parts.calibrate_synin_references(connection: hxcomm.ConnectionHandle, target_cadc_reads: np.ndarray, calib_result: neuron._CalibResultInternal)

Calibrate synaptic input OTA reference potentials such that the given target CADC reads are reached with synaptic inputs enabled, i.e., set to the bias currents in the calib result.

Parameters
  • connection – Connection to chip to run on.

  • target_cadc_reads – Target CADC reads, obtained at leak potential with synaptic inputs disabled.

  • calib_result – Result of neuron calibration.

calix.spiking.neuron_calib_parts.calibrate_tau_mem(connection: hxcomm.ConnectionHandle, tau_mem: pq.Quantity, calib_result: neuron._CalibResultInternal)

Calibrate membrane time constant to given target.

Parameters
  • connection – Connection to chip to run on.

  • tau_mem – Target membrane time constant.

  • calib_result – Neuron calibration result.

calix.spiking.neuron_calib_parts.calibrate_tau_syn(connection: hxcomm.ConnectionHandle, tau_syn: np.ndarray, calib_result: neuron._CalibResultInternal)

Calibrate synaptic input time constant to given target.

Parameters
  • connection – Connection to chip to run on.

  • tau_syn – Target synaptic input time constant.

  • calib_result – Calib result to store parameters in.

calix.spiking.neuron_calib_parts.deepcopy(x, memo=None, _nil=[])

Deep copy operation on arbitrary Python objects.

See the module’s __doc__ string for more info.

calix.spiking.neuron_calib_parts.disable_synin_and_threshold(connection: hxcomm.ConnectionHandle, calib_result: neuron._CalibResultInternal)

Configure neurons with synaptic input OTAs and spike threshold disabled.

This is a benign state in which many other parameters can be calibrated more easily.

Parameters
  • connection – Connection to chip to run on.

  • calib_result – Neuron calibration result.

calix.spiking.neuron_calib_parts.finalize_synin_calib(connection: hxcomm.ConnectionHandle, calib_result: neuron._CalibResultInternal)

Un-set some of the hagen-mode specific parameters that were set in prepare_for_synin_calib.

The synaptic input time constant is re-set to the user-selected value, that was calibrated previously. We don’t change the membrane time constant here, as it will be calibrated only afterwards.

Parameters
  • connection – Connection to chip to run on.

  • calib_result – Calib result to store parameters in.

calix.spiking.neuron_calib_parts.prepare_for_synin_calib(connection: hxcomm.ConnectionHandle, options: neuron.NeuronCalibOptions, calib_result: neuron._CalibResultInternal)np.ndarray

Preconfigure the chip for synaptic input calibration.

Select a hagen-mode-like setup, i.e. calibrate membrane time constant to a high value and synaptic input time constant to a low value.

Note that there is a corresponding function finalize_synin_calib that undoes some of these changes, i.e. re-applies the synaptic input time constant to the user-selected value.

Parameters
  • connection – Connection to chip to run on.

  • options – Further options for calibration.

  • calib_result – Calib result to store parameters in.

Returns

Array of target CADC reads at resting potential, to be used as reference point during synaptic input calib.