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

This file contains the main functions for probabilistic synaptogenesis. More...

#include <neuron/structural_plasticity/synaptogenesis_dynamics.h>
#include <neuron/population_table/population_table.h>
#include <random.h>
#include <spin1_api.h>
#include <debug.h>
#include <stdfix-full-iso.h>
#include <circular_buffer.h>
#include <recording.h>
#include <neuron/synapse_row.h>
#include <neuron/synapses.h>
#include <common/maths-util.h>
#include <simulation.h>
#include "partner_selection/partner.h"
#include "elimination/elimination.h"
#include "formation/formation.h"

Go to the source code of this file.

Data Structures

struct  structural_recording_values_t
 Struct for structural recording data. More...
 

Macros

#define ID_SHIFT   1
 How much to shift post-IDs by.
 
#define PRE_ID_SHIFT   9
 How much to shift pre-IDs by.
 

Enumerations

enum  { ELIM_FLAG = 0 , FORM_FLAG = 1 }
 values used in recording More...
 

Functions

void print_post_to_pre_entry (void)
 Print a certain data object.
 
bool synaptogenesis_dynamics_initialise (address_t sdram_sp_address, uint32_t *recording_regions_used)
 Initialisation of synaptic rewiring (synaptogenesis) parameters (random seed, spread of receptive field etc.)
 
bool synaptogenesis_dynamics_rewire (uint32_t time, spike_t *spike, pop_table_lookup_result_t *result)
 Trigger the process of synaptic rewiring.
 
static bool do_formation (uint32_t time, synaptic_row_t restrict row, current_state_t *restrict current_state)
 
static bool row_restructure (uint32_t time, synaptic_row_t restrict row, current_state_t *restrict current_state)
 Performs the actual restructuring of a row.
 
bool synaptogenesis_row_restructure (uint32_t time, synaptic_row_t row)
 Perform the actual restructuring of a row.
 
void synaptogenesis_spike_received (uint32_t time, spike_t spike)
 Indicates that a spike has been received.
 
uint32_t synaptogenesis_n_updates (void)
 Number of updates to do of synaptogenesis this time step.
 

Variables

rewiring_data_t rewiring_data
 the instantiation of the rewiring data
 
static post_to_pre_entrypost_to_pre_table
 inverse of synaptic matrix
 
pre_pop_info_table_t pre_info
 pre-population information table
 
static formation_params_t ** formation_params
 The formation parameters per pre-population.
 
static elimination_params_t ** elimination_params
 The elimination parameters per pre-population.
 
static circular_buffer current_state_queue
 Current states in use.
 
static circular_buffer free_states
 Free current states.
 
uint32_t rewiring_recording_index
 The recording region for the structural events.
 
structural_recording_values_t structural_recording_values
 Working buffer for the recording of structural changes.
 
static uint32_t last_rewiring_time = 0
 Timer callbacks since last rewiring.
 

Detailed Description

This file contains the main functions for probabilistic synaptogenesis.

Author
Petrut Bogdan

Definition in file topographic_map_impl.c.


Data Structure Documentation

◆ structural_recording_values_t

struct structural_recording_values_t

Struct for structural recording data.

Definition at line 91 of file topographic_map_impl.c.

Data Fields
uint32_t time
uint32_t value

Macro Definition Documentation

◆ ID_SHIFT

#define ID_SHIFT   1

How much to shift post-IDs by.

Definition at line 53 of file topographic_map_impl.c.

◆ PRE_ID_SHIFT

#define PRE_ID_SHIFT   9

How much to shift pre-IDs by.

Definition at line 55 of file topographic_map_impl.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

values used in recording

Enumerator
ELIM_FLAG 

Elimination flag.

FORM_FLAG 

Formation flag.

Definition at line 46 of file topographic_map_impl.c.

Function Documentation

◆ print_post_to_pre_entry()

void print_post_to_pre_entry ( void  )

Print a certain data object.

Definition at line 102 of file topographic_map_impl.c.

◆ synaptogenesis_dynamics_initialise()

bool synaptogenesis_dynamics_initialise ( address_t  sdram_sp_address,
uint32_t *  recording_regions_used 
)

Initialisation of synaptic rewiring (synaptogenesis) parameters (random seed, spread of receptive field etc.)

Parameters
[in]sdram_sp_addressAddress of the start of the SDRAM region which contains synaptic rewiring params.
[in,out]recording_regions_usedVariable used to track what recording regions have been used
Returns
Whether we were successful.

Definition at line 158 of file topographic_map_impl.c.

◆ synaptogenesis_dynamics_rewire()

bool synaptogenesis_dynamics_rewire ( uint32_t  time,
spike_t spike,
pop_table_lookup_result_t result 
)

Trigger the process of synaptic rewiring.

Usually called on a timer registered in c_main()

Parameters
[in]timethe current timestep
[out]spikevariable to hold the spike
[out]resultThe result of the population table lookup
Returns
True if a row is to be transferred, false otherwise

Definition at line 220 of file topographic_map_impl.c.

◆ do_formation()

static bool do_formation ( uint32_t  time,
synaptic_row_t restrict  row,
current_state_t *restrict  current_state 
)
static

Definition at line 290 of file topographic_map_impl.c.

◆ row_restructure()

static bool row_restructure ( uint32_t  time,
synaptic_row_t restrict  row,
current_state_t *restrict  current_state 
)
inlinestatic

Performs the actual restructuring of a row.

Supporting function for synaptogenesis_row_restructure()

Parameters
[in]timeThe time of the restructure
[in]rowThe row to restructure
[in]current_stateThe current state of the world
Returns
True if the row was changed and needs to be written back

Definition at line 317 of file topographic_map_impl.c.

◆ synaptogenesis_row_restructure()

bool synaptogenesis_row_restructure ( uint32_t  time,
synaptic_row_t  row 
)

Perform the actual restructuring of a row.

Parameters
[in]timeThe time of the restructure
[in]rowThe row to restructure
Returns
True if the row was changed and needs to be written back

Definition at line 376 of file topographic_map_impl.c.

◆ synaptogenesis_spike_received()

void synaptogenesis_spike_received ( uint32_t  time,
spike_t  spike 
)

Indicates that a spike has been received.

Parameters
[in]timeThe time that the spike was received at
[in]spikeThe received spike

Definition at line 383 of file topographic_map_impl.c.

◆ synaptogenesis_n_updates()

uint32_t synaptogenesis_n_updates ( void  )

Number of updates to do of synaptogenesis this time step.

Returns
The number of updates to do this time step

Definition at line 387 of file topographic_map_impl.c.

Variable Documentation

◆ rewiring_data

rewiring_data_t rewiring_data

the instantiation of the rewiring data

Definition at line 62 of file topographic_map_impl.c.

◆ post_to_pre_table

post_to_pre_entry* post_to_pre_table
static

inverse of synaptic matrix

Definition at line 65 of file topographic_map_impl.c.

◆ pre_info

pre-population information table

Definition at line 68 of file topographic_map_impl.c.

◆ formation_params

formation_params_t** formation_params
static

The formation parameters per pre-population.

Definition at line 71 of file topographic_map_impl.c.

◆ elimination_params

elimination_params_t** elimination_params
static

The elimination parameters per pre-population.

Definition at line 74 of file topographic_map_impl.c.

◆ current_state_queue

circular_buffer current_state_queue
static

Current states in use.

synaptogenesis_row_restructure() moves states from here to free_states

Definition at line 79 of file topographic_map_impl.c.

◆ free_states

circular_buffer free_states
static

Free current states.

synaptogenesis_dynamics_rewire() moves states from here to current_state_queue

Definition at line 85 of file topographic_map_impl.c.

◆ rewiring_recording_index

uint32_t rewiring_recording_index

The recording region for the structural events.

Definition at line 88 of file topographic_map_impl.c.

◆ structural_recording_values

structural_recording_values_t structural_recording_values

Working buffer for the recording of structural changes.

Definition at line 97 of file topographic_map_impl.c.

◆ last_rewiring_time

uint32_t last_rewiring_time = 0
static

Timer callbacks since last rewiring.

Definition at line 100 of file topographic_map_impl.c.