|
| static size_t | synapse_row_plastic_size (const synaptic_row_t row) |
| | Get the size of the plastic region. More...
|
| |
| static synapse_row_plastic_data_t * | synapse_row_plastic_region (synaptic_row_t row) |
| | Get the address of the plastic region. More...
|
| |
| static synapse_row_fixed_part_t * | synapse_row_fixed_region (synaptic_row_t row) |
| | Get the address of the non-plastic (or fixed) region. More...
|
| |
| static size_t | synapse_row_num_fixed_synapses (const synapse_row_fixed_part_t *fixed) |
| | Get the number of fixed synapses in the row. More...
|
| |
| static size_t | synapse_row_num_plastic_controls (const synapse_row_fixed_part_t *fixed) |
| | Get the number of plastic controls in the row. More...
|
| |
| static control_t * | synapse_row_plastic_controls (synapse_row_fixed_part_t *fixed) |
| | Get the array of plastic controls in the row. More...
|
| |
| static uint32_t * | synapse_row_fixed_weight_controls (synapse_row_fixed_part_t *fixed) |
| | The array of fixed weights in the row. More...
|
| |
| static index_t | synapse_row_sparse_index (uint32_t x, uint32_t synapse_index_mask) |
| | Get the index. More...
|
| |
| static index_t | synapse_row_sparse_type (uint32_t x, uint32_t synapse_index_bits, uint32_t synapse_type_mask) |
| | Get the type code. More...
|
| |
| static index_t | synapse_row_sparse_type_index (uint32_t x, uint32_t synapse_type_index_mask) |
| | Get the type and index. More...
|
| |
| static index_t | synapse_row_sparse_delay (uint32_t x, uint32_t synapse_type_index_bits, uint32_t synapse_delay_mask) |
| | Get the delay from an encoded synapse descriptor. More...
|
| |
| static weight_t | synapse_row_sparse_weight (uint32_t x) |
| | Get the weight from an encoded synapse descriptor. More...
|
| |
| static input_t | synapse_row_convert_weight_to_input (weight_t weight, uint32_t left_shift) |
| | Converts a weight stored in a synapse row to an input. More...
|
| |
| static index_t | synapse_row_get_ring_buffer_index (uint32_t simulation_timestep, uint32_t synapse_type_index, uint32_t neuron_index, uint32_t synapse_type_index_bits, uint32_t synapse_index_bits, uint32_t synapse_delay_mask) |
| | Get the index of the ring buffer for a given timestep, synapse type and neuron index. More...
|
| |
| static index_t | synapse_row_get_ring_buffer_index_time_0 (uint32_t synapse_type_index, uint32_t neuron_index, uint32_t synapse_index_bits) |
| | Get the index of the ring buffer for time 0, synapse type and neuron index. More...
|
| |
| static index_t | synapse_row_get_first_ring_buffer_index (uint32_t simulation_timestep, uint32_t synapse_type_index_bits, int32_t synapse_delay_mask) |
| | Get the index of the first ring buffer for a given timestep. More...
|
| |
| static index_t | synapse_row_get_ring_buffer_index_combined (uint32_t simulation_timestep, uint32_t combined_synapse_neuron_index, uint32_t synapse_type_index_bits, uint32_t synapse_delay_mask) |
| | Get the index of the ring buffer for a given timestep and combined synapse type and neuron index (as stored in a synapse row) More...
|
| |
implementation for handling the processing of synapse rows.
Synapse Row Representation
| Weight | Delay | Synapse Type | Neuron Index |
|-------------------|------------------|-----------------|------------------|
| | | SYNAPSE_TYPE_INDEX_BITS |
#define SYNAPSE_WEIGHT_BITS
how many bits the synapse weight will take
#define SYNAPSE_TYPE_BITS
Number of bits to encode the synapse type.
The API interface supports:
Data Structure
The data structure layout supported by this API is designed for mixed plastic and fixed synapse rows.
The data structure is treated as an array of 32-bit words. Special meanings are ascribed to the 0th and 1st elements of the array.
We are expecting the original source address in SDRAM to be in row[0]. The number of array elements in the plastic region is held in the upper part of row[1]. A tag to indicate the nature of the synaptic row structure is held in the lower part of row[1].
0: [ N = <plastic elements> | <tag> ]
1: [ First word of plastic
region ]
...
N: [ Last word of plastic
region ]
N+1: [ First word of fixed
region ]
...
M: [ Last word of fixed
region ]
region
spike source array region IDs in human readable form
Fixed and Fixed-Plastic Regions
Within the fixed-region extracted using the above API, fixed[0] contains the number of 32-bit fixed synaptic words, fixed[1] contains the number of 16-bit plastic synapse control words. (The weights for the plastic synapses are assumed to be stored in some learning-rule-specific format in the plastic region)
0: [ F = Num fixed synapses ]
2: [ First fixed synaptic word ]
...
F+1: [ Last fixed synaptic word ]
F+2: [ 1st plastic synapse control word|2nd plastic control word ]
...
F+1+ceil(P/2): [ Last word of fixed
region ]
Note that P is effectively rounded up to a multiple of two for storage purposes.
Definition in file synapse_row.h.