sPyNNaker neural_modelling 7.3.1
Loading...
Searching...
No Matches
spike_processing_fast.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2020 The University of Manchester
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * https://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
19#ifndef _SPIKE_PROCESSING_FAST_H_
20#define _SPIKE_PROCESSING_FAST_H_
21
23#include <common/in_spikes.h>
24#include <spin1_api.h>
25#include "synapse_row.h"
26
28struct sdram_config {
30 uint32_t *address;
32 uint32_t size_in_bytes;
35};
36
39struct key_config {
41 uint32_t key;
43 uint32_t mask;
45 uint32_t spike_id_mask;
47 uint32_t colour_shift;
50};
51
83
98 uint32_t row_max_n_words, uint32_t spike_buffer_size,
99 bool discard_late_packets, uint32_t pkts_per_ts_rec_region,
100 uint32_t multicast_priority, struct sdram_config sdram_inputs_param,
101 struct key_config key_config_param, weight_t *ring_buffers_param);
102
108void spike_processing_fast_time_step_loop(uint32_t time, uint32_t n_rewires);
109
114
115#endif // _SPIKE_PROCESSING_FAST_H_
Functions for immediate handling of incoming spikes.
Data type definitions for SpiNNaker Neuron-modelling.
uint32_t spike_id_mask
The mask to get the spike ID.
uint32_t n_packets_dropped_from_lateness
The number of packets that were cleared at the end of timesteps.
uint32_t max_spikes_overflow
The most spikes left at the end of any time step.
uint32_t max_filled_input_buffer_size
The maximum size of the input buffer.
uint32_t mask
The mask.
uint32_t n_dmas_complete
The number of DMAs performed.
void spike_processing_fast_time_step_loop(uint32_t time, uint32_t n_rewires)
The main loop of spike processing to be run once per time step. Note that this function will not retu...
uint32_t n_rewires
The number of rewires performed.
uint32_t self_connected
Is the node self connected.
uint32_t n_skipped_time_steps
The number of times a time step was skipped entirely.
void spike_processing_fast_store_provenance(struct spike_processing_fast_provenance *prov)
Store any provenance data gathered from spike processing.
uint32_t key
The key.
uint32_t n_input_buffer_overflows
A count of the times that the synaptic input circular buffers overflowed.
uint32_t n_transfer_timer_overruns
The number of times the transfer took longer than expected.
uint32_t max_spikes_received
The maximum number of spikes received in a time step.
bool spike_processing_fast_initialise(uint32_t row_max_n_words, uint32_t spike_buffer_size, bool discard_late_packets, uint32_t pkts_per_ts_rec_region, uint32_t multicast_priority, struct sdram_config sdram_inputs_param, struct key_config key_config_param, weight_t *ring_buffers_param)
Set up spike processing.
uint32_t n_spikes_processed
The number of spikes received and processed.
uint32_t max_spikes_processed
The maximum number of spikes processed in a time step.
uint32_t max_transfer_timer_overrun
The maximum additional time taken to transfer.
uint32_t earliest_receive
The earliest received time of a spike.
uint32_t latest_receive
The latest received time of a spike.
uint32_t colour_shift
The colour shift to apply after masking.
Provenance for spike processing.
uint32_t size_in_bytes
The size of the input data to be transferred per core.
uint32_t time_for_transfer_overhead
The time of the transfer in us.
uint32_t * address
The address of the input data to be transferred.
static uint32_t spike_buffer_size
The size of each spike buffer in bytes.
A region of SDRAM used to transfer synapses.
implementation for handling the processing of synapse rows.