sPyNNaker neural_modelling 7.3.1
Loading...
Searching...
No Matches
Data Structures | Functions | Variables
synapse_dynamics_external_weight_change.c File Reference

Allow weight change. More...

#include "post_events_with_weight_change.h"
#include <neuron/synapses.h>
#include <neuron/plasticity/synapse_dynamics.h>
#include <stddef.h>

Go to the source code of this file.

Data Structures

struct  limits
 
struct  change_params
 
struct  updatable_synapse_t
 
struct  synapse_row_plastic_data_t
 The format of the plastic data region of a synaptic row. More...
 
struct  fixed_stdp_synapse
 

Functions

bool synapse_dynamics_initialise (address_t address, uint32_t n_neurons, uint32_t n_synapse_types, uint32_t *ring_buffer_to_input_buffer_left_shifts)
 Initialise the synapse dynamics.
 
void synapse_dynamics_process_post_synaptic_event (uint32_t time, index_t neuron_index)
 Inform the synapses that the neuron fired.
 
static fixed_stdp_synapse synapse_dynamics_stdp_get_fixed (uint32_t control_word, uint32_t time, uint32_t colour_delay)
 
static void synapse_dynamics_stdp_update_ring_buffers (weight_t *ring_buffers, fixed_stdp_synapse s, int32_t weight)
 
static updatable_synapse_t process_plastic_synapse (uint32_t pre_spike, uint32_t control_word, weight_t *ring_buffers, uint32_t time, uint32_t colour_delay, updatable_synapse_t synapse, uint32_t *changed)
 
static int16_t change_sign (weight_t weight)
 
static void process_weight_update (synapse_row_plastic_data_t *plastic_region_address, synapse_row_fixed_part_t *fixed_region)
 
bool synapse_dynamics_process_plastic_synapses (synapse_row_plastic_data_t *plastic_region_address, synapse_row_fixed_part_t *fixed_region, weight_t *ring_buffers, uint32_t time, uint32_t colour_delay, bool *write_back)
 Process the dynamics of the synapses.
 
input_t synapse_dynamics_get_intrinsic_bias (uint32_t time, index_t neuron_index)
 
uint32_t synapse_dynamics_get_plastic_pre_synaptic_events (void)
 Get the counters for plastic pre synaptic events based on (if the model was compiled with SYNAPSE_BENCHMARK parameter) or returns 0.
 
uint32_t synapse_dynamics_get_plastic_saturation_count (void)
 Get the number of ring buffer saturation events due to adding plastic weights.
 

Variables

static post_event_history_tpost_event_history
 The history data of post-events.
 
static uint32_t num_plastic_pre_synaptic_events = 0
 Count of pre-synaptic events relevant to plastic processing.
 
static uint32_t plastic_saturation_count = 0
 Count of times that the plastic math became saturated.
 
static change_paramsparams
 Parameters.
 

Detailed Description

Allow weight change.

Definition in file synapse_dynamics_external_weight_change.c.


Data Structure Documentation

◆ limits

struct limits

Definition at line 24 of file synapse_dynamics_external_weight_change.c.

Data Fields
weight_t min
weight_t max

◆ change_params

struct change_params

Definition at line 29 of file synapse_dynamics_external_weight_change.c.

Data Fields
uint32_t n_limits
limits weight_limits[]

◆ updatable_synapse_t

struct updatable_synapse_t

Definition at line 34 of file synapse_dynamics_external_weight_change.c.

Data Fields
weight_t weight

◆ synapse_row_plastic_data_t

struct synapse_row_plastic_data_t

The format of the plastic data region of a synaptic row.

Definition at line 45 of file synapse_dynamics_stdp_izhikevich_neuromodulation.c.

Data Fields
union synapse_row_plastic_data_t.__unnamed10__ __unnamed__
pre_event_history_t history The pre-event history.
plastic_synapse_t synapses[] The per-synapse information.
uint32_t pre_spike: 31
uint32_t is_update: 1
updatable_synapse_t synapses[]

◆ fixed_stdp_synapse

struct fixed_stdp_synapse

Definition at line 85 of file synapse_dynamics_stdp_common.h.

Data Fields
uint32_t delay_dendritic
uint32_t delay_axonal
uint32_t type
uint32_t index
uint32_t type_index
uint32_t ring_buffer_index
uint32_t delay

Function Documentation

◆ synapse_dynamics_initialise()

bool synapse_dynamics_initialise ( address_t  address,
uint32_t  n_neurons,
uint32_t  n_synapse_types,
uint32_t *  ring_buffer_to_input_buffer_left_shifts 
)

Initialise the synapse dynamics.

Parameters
[in]addressWhere the configuration data is
[in]n_neuronsNumber of neurons
[in]n_synapse_typesNumber of synapse types
[in]ring_buffer_to_input_buffer_left_shiftsHow to interpret the values from the ring buffers
Returns
Whether the initialisation succeeded.

Definition at line 65 of file synapse_dynamics_external_weight_change.c.

◆ synapse_dynamics_process_post_synaptic_event()

void synapse_dynamics_process_post_synaptic_event ( uint32_t  time,
index_t  neuron_index 
)

Inform the synapses that the neuron fired.

Parameters
[in]timeThe current simulation time
[in]neuron_indexWhich neuron are we processing

Definition at line 93 of file synapse_dynamics_external_weight_change.c.

◆ synapse_dynamics_stdp_get_fixed()

static fixed_stdp_synapse synapse_dynamics_stdp_get_fixed ( uint32_t  control_word,
uint32_t  time,
uint32_t  colour_delay 
)
inlinestatic

Definition at line 98 of file synapse_dynamics_external_weight_change.c.

◆ synapse_dynamics_stdp_update_ring_buffers()

static void synapse_dynamics_stdp_update_ring_buffers ( weight_t *  ring_buffers,
fixed_stdp_synapse  s,
int32_t  weight 
)
inlinestatic

Definition at line 120 of file synapse_dynamics_external_weight_change.c.

◆ process_plastic_synapse()

static updatable_synapse_t process_plastic_synapse ( uint32_t  pre_spike,
uint32_t  control_word,
weight_t *  ring_buffers,
uint32_t  time,
uint32_t  colour_delay,
updatable_synapse_t  synapse,
uint32_t *  changed 
)
inlinestatic

Definition at line 134 of file synapse_dynamics_external_weight_change.c.

◆ change_sign()

static int16_t change_sign ( weight_t  weight)
inlinestatic

Definition at line 185 of file synapse_dynamics_external_weight_change.c.

◆ process_weight_update()

static void process_weight_update ( synapse_row_plastic_data_t plastic_region_address,
synapse_row_fixed_part_t fixed_region 
)
inlinestatic

Definition at line 194 of file synapse_dynamics_external_weight_change.c.

◆ synapse_dynamics_process_plastic_synapses()

bool synapse_dynamics_process_plastic_synapses ( synapse_row_plastic_data_t plastic_region_data,
synapse_row_fixed_part_t fixed_region,
weight_t *  ring_buffers,
uint32_t  time,
uint32_t  colour_delay,
bool *  write_back 
)

Process the dynamics of the synapses.

Parameters
[in,out]plastic_region_dataWhere the plastic data is
[in]fixed_regionWhere the fixed data is
[in,out]ring_buffersThe ring buffers
[in]timeThe current simulation time
[out]Whetherto write back anything
Returns
Whether the processing was successful or not

Definition at line 224 of file synapse_dynamics_external_weight_change.c.

◆ synapse_dynamics_get_intrinsic_bias()

input_t synapse_dynamics_get_intrinsic_bias ( uint32_t  time,
index_t  neuron_index 
)

Definition at line 263 of file synapse_dynamics_external_weight_change.c.

◆ synapse_dynamics_get_plastic_pre_synaptic_events()

uint32_t synapse_dynamics_get_plastic_pre_synaptic_events ( void  )

Get the counters for plastic pre synaptic events based on (if the model was compiled with SYNAPSE_BENCHMARK parameter) or returns 0.

Returns
counters for plastic pre synaptic events or 0

Definition at line 268 of file synapse_dynamics_external_weight_change.c.

◆ synapse_dynamics_get_plastic_saturation_count()

uint32_t synapse_dynamics_get_plastic_saturation_count ( void  )

Get the number of ring buffer saturation events due to adding plastic weights.

Returns
counter for saturation events or 0

Definition at line 272 of file synapse_dynamics_external_weight_change.c.

Variable Documentation

◆ post_event_history

post_event_history_t* post_event_history
static

The history data of post-events.

Definition at line 54 of file synapse_dynamics_external_weight_change.c.

◆ num_plastic_pre_synaptic_events

uint32_t num_plastic_pre_synaptic_events = 0
static

Count of pre-synaptic events relevant to plastic processing.

Definition at line 57 of file synapse_dynamics_external_weight_change.c.

◆ plastic_saturation_count

uint32_t plastic_saturation_count = 0
static

Count of times that the plastic math became saturated.

Definition at line 60 of file synapse_dynamics_external_weight_change.c.

◆ params

change_params* params
static

Parameters.

Definition at line 63 of file synapse_dynamics_external_weight_change.c.