|
sPyNNaker neural_modelling
development
|
Izhekevich neuron type. More...
#include "neuron_model.h"Go to the source code of this file.
Data Structures | |
| struct | neuron_params_t |
| definition of neuron parameters More... | |
| struct | neuron_t |
| definition for LIF neuron state More... | |
Functions | |
| static void | neuron_model_initialise (neuron_t *state, neuron_params_t *params, uint32_t n_steps_per_timestep) |
| static void | neuron_model_save_state (neuron_t *state, neuron_params_t *params) |
| static void | rk2_kernel_midpoint (REAL h, neuron_t *neuron, REAL input_this_timestep) |
| Midpoint is best balance between speed and accuracy so far. More... | |
| static state_t | neuron_model_state_update (uint16_t num_excitatory_inputs, const input_t *exc_input, uint16_t num_inhibitory_inputs, const input_t *inh_input, input_t external_bias, REAL current_offset, neuron_t *restrict neuron) |
| primary function called in timer loop after synaptic updates More... | |
| static void | neuron_model_has_spiked (neuron_t *restrict neuron) |
| Indicates that the neuron has spiked. More... | |
| static state_t | neuron_model_get_membrane_voltage (const neuron_t *neuron) |
| get the neuron membrane voltage for a given neuron parameter set More... | |
| static void | neuron_model_print_state_variables (const neuron_t *neuron) |
| static void | neuron_model_print_parameters (const neuron_t *neuron) |
Variables | |
| static const REAL | SIMPLE_TQ_OFFSET = REAL_CONST(1.85) |
| For linear membrane voltages, 1.5 is the correct value. However with actual membrane voltage behaviour and tested over an wide range of use cases 1.85 gives slightly better spike timings. | |
| static const REAL | MAGIC_MULTIPLIER = REAL_CONST(0.040008544921875) |
| The original model uses 0.04, but this (1 ULP larger?) gives better numeric stability. More... | |
Izhekevich neuron type.
Definition in file neuron_model_izh_impl.h.
| struct neuron_params_t |
definition of neuron parameters
The state parameters of an Izhekevich model neuron.
definition for LIF neuron parameters
Definition at line 47 of file neuron_impl_stoc_exp.h.
| Data Fields | ||
|---|---|---|
| UREAL | tau_ms | The tau value of the neuron. |
| UREAL | time_step |
The timestep of the neuron being used. The time step in milliseconds. current timestep in ms |
| REAL | bias | The bias value. |
| uint32_t | refract_init | The initial refractory timer. |
| mars_kiss64_seed_t | random_seed | Random seed to use. |
| REAL | v_init | The initial membrane voltage. |
| REAL | v_reset | The reset membrane voltage after a spike. |
| UREAL | tau | The tau value of the neuron, multiplied by 2^v to get probability. |
| UREAL | tau_refract |
The refractory period of the neuron in milliseconds. The refractory period of the neuron, in ms. |
| REAL | alpha | The alpha value of the neuron prob = (2^(-2^(alpha x voltage))) |
| REAL | V_init | membrane voltage [mV] |
| REAL | c_m | membrane capacitance [nF] |
| REAL | tau_m | membrane decay time constant |
| REAL | I_offset | offset current [nA] |
| REAL | V_reset | post-spike reset membrane voltage [mV] |
| REAL | T_refract_ms | refractory time of neuron [ms] |
| int32_t | refract_timer_init | initial refractory timer value (saved) |
| REAL | time_step |
The time step in milliseconds. current timestep in ms |
| REAL | A | |
| REAL | B | |
| REAL | C | |
| REAL | D | |
| REAL | V | |
| REAL | U | |
| REAL | next_h | next value of this_h (saved) |
| REAL | V_rest | membrane resting voltage [mV] |
| struct neuron_t |
definition for LIF neuron state
The state variables of an Izhekevich model neuron.
Definition at line 53 of file neuron_model_if_trunc.h.
| Data Fields | ||
|---|---|---|
| REAL | V_membrane | membrane voltage [mV] |
| REAL | R_membrane | membrane resistance [MOhm] |
| REAL | I_offset | offset current [nA] |
| int32_t | refract_timer | countdown to end of next refractory period [timesteps] |
| REAL | V_reset | post-spike reset membrane voltage [mV] |
| int32_t | T_refract | refractory time of neuron [timesteps] |
| REAL | A | |
| REAL | B | |
| REAL | C | |
| REAL | D | |
| REAL | V | |
| REAL | U | |
| REAL | this_h | current timestep |
| REAL | reset_h | timestep to reset to when not just spiked |
| REAL | V_rest | membrane resting voltage [mV] |
| REAL | exp_TC |
'fixed' computation parameter - time constant multiplier for closed-form solution exp(-(machine time step in ms)/(R * C)) [.] |
|
inlinestatic |
Midpoint is best balance between speed and accuracy so far.
From ODE solver comparison work, paper shows that Trapezoid version gives better accuracy at small speed cost
| [in] | h | threshold |
| [in,out] | neuron | The model being updated |
| [in] | input_this_timestep | the input |
Definition at line 129 of file neuron_model_izh_impl.h.
|
inlinestatic |
primary function called in timer loop after synaptic updates
| [in] | num_excitatory_inputs | Number of excitatory receptor types. |
| [in] | exc_input | Pointer to array of inputs per receptor type received this timer tick that produce a positive reaction within the neuron in terms of stimulation. |
| [in] | num_inhibitory_inputs | Number of inhibitory receptor types. |
| [in] | inh_input | Pointer to array of inputs per receptor type received this timer tick that produce a negative reaction within the neuron in terms of stimulation. |
| [in] | external_bias | This is the intrinsic plasticity which could be used for ac, noisy input etc etc. (general purpose input) |
| [in,out] | neuron | the pointer to a neuron parameter struct which contains all the parameters for a specific neuron |
Definition at line 166 of file neuron_model_izh_impl.h.
|
inlinestatic |
Indicates that the neuron has spiked.
| [in,out] | neuron | pointer to a neuron parameter struct which contains all the parameters for a specific neuron |
Definition at line 193 of file neuron_model_izh_impl.h.
get the neuron membrane voltage for a given neuron parameter set
| [in] | neuron | a pointer to a neuron parameter struct which contains all the parameters for a specific neuron |
Definition at line 209 of file neuron_model_izh_impl.h.
|
static |
The original model uses 0.04, but this (1 ULP larger?) gives better numeric stability.
Thanks to Mantas Mikaitis for this!
Definition at line 119 of file neuron_model_izh_impl.h.