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

STDP core implementation. More...

#include "post_events.h"
#include "synapse_dynamics_stdp_common.h"

Go to the source code of this file.

Data Structures

struct  synapse_row_plastic_data_t
 The format of the plastic data region of a synaptic row. More...
 

Functions

static final_state_t plasticity_update_synapse (const uint32_t time, const uint32_t last_pre_time, const pre_trace_t last_pre_trace, const pre_trace_t new_pre_trace, const uint32_t delay_dendritic, const uint32_t delay_axonal, update_state_t current_state, const post_event_history_t *post_event_history)
 Synapse update loop core.
 
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_print_plastic_synapses (synapse_row_plastic_data_t *plastic_region_data, synapse_row_fixed_part_t *fixed_region, uint32_t *ring_buffer_to_input_buffer_left_shifts)
 Print the synapse dynamics.
 
static index_t sparse_axonal_delay (uint32_t x)
 Get the axonal delay.
 
void synapse_dynamics_process_post_synaptic_event (uint32_t time, index_t neuron_index)
 Inform the synapses that the neuron fired.
 
static plastic_synapse_t process_plastic_synapse (uint32_t control_word, uint32_t last_pre_time, pre_trace_t last_pre_trace, pre_trace_t new_pre_trace, weight_t *ring_buffers, uint32_t time, uint32_t colour_delay, plastic_synapse_t synapse)
 
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.
 
bool synapse_dynamics_find_neuron (uint32_t id, synaptic_row_t row, weight_t *weight, uint16_t *delay, uint32_t *offset, uint32_t *synapse_type)
 Search the synaptic row for the the connection with the specified post-synaptic ID.
 
bool synapse_dynamics_remove_neuron (uint32_t offset, synaptic_row_t row)
 Remove the entry at the specified offset in the synaptic row.
 
bool synapse_dynamics_add_neuron (uint32_t id, synaptic_row_t row, weight_t weight, uint32_t delay, uint32_t type)
 Add an entry in the synaptic row.
 

Variables

uint32_t skipped_synapses
 

Detailed Description

STDP core implementation.

Definition in file synapse_dynamics_stdp_mad_impl.c.


Data Structure Documentation

◆ 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[]

Function Documentation

◆ plasticity_update_synapse()

static final_state_t plasticity_update_synapse ( const uint32_t  time,
const uint32_t  last_pre_time,
const pre_trace_t  last_pre_trace,
const pre_trace_t  new_pre_trace,
const uint32_t  delay_dendritic,
const uint32_t  delay_axonal,
update_state_t  current_state,
const post_event_history_t post_event_history 
)
inlinestatic

Synapse update loop core.

Parameters
[in]timeThe current time
[in]last_pre_timeThe time of the last previous pre-event
[in]last_pre_traceThe last previous pre-trace
[in]new_pre_traceThe new pre-trace
[in]delay_dendriticThe dendritic delay for the synapse
[in]delay_axonalThe axonal delay for the synapse
[in]current_stateThe current state
[in]post_event_historyThe history
Returns
The new basic state of the synapse

Definition at line 43 of file synapse_dynamics_stdp_mad_impl.c.

◆ 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 105 of file synapse_dynamics_stdp_mad_impl.c.

◆ synapse_dynamics_print_plastic_synapses()

void synapse_dynamics_print_plastic_synapses ( synapse_row_plastic_data_t plastic_region_data,
synapse_row_fixed_part_t fixed_region,
uint32_t *  ring_buffer_to_input_buffer_left_shifts 
)

Print the synapse dynamics.

Parameters
[in]plastic_region_dataWhere the plastic data is
[in]fixed_regionWhere the fixed data is
[in]ring_buffer_to_input_buffer_left_shiftsHow to interpret the values from the ring buffers

Definition at line 125 of file synapse_dynamics_stdp_mad_impl.c.

◆ sparse_axonal_delay()

static index_t sparse_axonal_delay ( uint32_t  x)
inlinestatic

Get the axonal delay.

Parameters
[in]xThe packed plastic synapse control word
Returns
the axonal delay

Definition at line 171 of file synapse_dynamics_stdp_mad_impl.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 182 of file synapse_dynamics_stdp_mad_impl.c.

◆ process_plastic_synapse()

static plastic_synapse_t process_plastic_synapse ( uint32_t  control_word,
uint32_t  last_pre_time,
pre_trace_t  last_pre_trace,
pre_trace_t  new_pre_trace,
weight_t *  ring_buffers,
uint32_t  time,
uint32_t  colour_delay,
plastic_synapse_t  synapse 
)
inlinestatic

Definition at line 196 of file synapse_dynamics_stdp_mad_impl.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 228 of file synapse_dynamics_stdp_mad_impl.c.

◆ synapse_dynamics_find_neuron()

bool synapse_dynamics_find_neuron ( uint32_t  id,
synaptic_row_t  row,
weight_t *  weight,
uint16_t *  delay,
uint32_t *  offset,
uint32_t *  synapse_type 
)

Search the synaptic row for the the connection with the specified post-synaptic ID.

Parameters
[in]idthe (core-local) ID of the neuron to search for in the synaptic row
[in]rowthe core-local address of the synaptic row
[out]weightaddress to contain the weight of the connection
[out]delayaddress to contain the delay of the connection
[out]offsetaddress to contain the offset of the connection
[out]synapse_typethe synapse type of the connection
Returns
was the search successful?

Definition at line 266 of file synapse_dynamics_stdp_mad_impl.c.

◆ synapse_dynamics_remove_neuron()

bool synapse_dynamics_remove_neuron ( uint32_t  offset,
synaptic_row_t  row 
)

Remove the entry at the specified offset in the synaptic row.

Parameters
[in]offsetthe offset in the row at which to remove the entry
[in]rowthe core-local address of the synaptic row
Returns
was the removal successful?

Definition at line 297 of file synapse_dynamics_stdp_mad_impl.c.

◆ synapse_dynamics_add_neuron()

bool synapse_dynamics_add_neuron ( uint32_t  id,
synaptic_row_t  row,
weight_t  weight,
uint32_t  delay,
uint32_t  type 
)

Add an entry in the synaptic row.

Parameters
[in]idthe (core-local) ID of the post-synaptic neuron to be added
[in]rowthe core-local address of the synaptic row
[in]weightthe initial weight associated with the connection
[in]delaythe delay associated with the connection
[in]typethe type of the connection (e.g. inhibitory)
Returns
was the addition successful?

Definition at line 318 of file synapse_dynamics_stdp_mad_impl.c.

Variable Documentation

◆ skipped_synapses

uint32_t skipped_synapses
extern

Count of the synapses that have been skipped because the delay wasn't big enough given how long the spike took to arrive

Definition at line 84 of file synapses.c.