35 #include "c_main_synapse_common.h"
36 #include "c_main_common.h"
39 #include <spin1_api_params.h>
55 PROVENANCE_DATA_REGION,
71 .provenance = PROVENANCE_DATA_REGION,
72 .profiler = PROFILER_REGION,
113 store_synapse_provenance(&prov->synapse_prov);
133 if (simulation_is_finished()) {
140 simulation_ready_to_read();
152 data_specification_metadata_t *ds_regions;
153 if (!initialise_common_regions(
161 uint32_t incoming_spike_buffer_size;
162 uint32_t row_max_n_words;
163 bool clear_input_buffer_of_late_packets;
165 uint32_t n_rec_regions_used = 0;
166 if (!initialise_synapse_regions(
168 &incoming_spike_buffer_size,
169 &clear_input_buffer_of_late_packets, &n_rec_regions_used)) {
177 KEY_REGION, ds_regions);
180 row_max_n_words, incoming_spike_buffer_size,
181 clear_input_buffer_of_late_packets, n_rec_regions_used,
MC,
193 log_debug(
"setting timer tick callback for %d microseconds",
timer_period);
callback_priorities
Identify the priorities for all tasks.
static weight_t * ring_buffers
The ring buffers to be used in the simulation.
static uint32_t simulation_ticks
The number of timer ticks to run for before being expected to exit.
callback_priorities
values for the priority for each callback
static void store_provenance_data(address_t provenance_region)
Callback to store provenance data (format: neuron_provenance).
void resume_callback(void)
the function to call when resuming a simulation
static uint32_t recording_flags
The recording flags indicating if anything is recording.
static uint32_t infinite_run
Determines if this model should run for infinite time.
void c_main(void)
The entry point for this model.
const struct synapse_regions SYNAPSE_REGIONS
From the regions, select those that are used for synapse-specific things.
const struct common_priorities COMMON_PRIORITIES
Identify the priority of common tasks.
static bool initialise(void)
Initialises the model by reading in the regions and checking recording data.
static uint32_t timer_period
timer tick period (in microseconds)
const struct common_regions COMMON_REGIONS
From the regions, select those that are common.
void timer_callback(uint unused0, uint unused1)
Timer event callback.
uint32_t time
The current timer tick value.
Provenance data region layout.
@ TIMER
Call timer at 0 to keep it quick.
@ DMA
DMA is not actually used.
@ SDP
SDP handling is queued.
bool population_table_load_bitfields(filter_region_t *filter_region)
Initialise the bitfield filtering system.
@ RECORDING_REGION
general recording data; 15
@ BIT_FIELD_FILTER_REGION
bitfield filter; 14
@ SYNAPSE_PARAMS_REGION
synapse parameters; 4
@ POPULATION_TABLE_REGION
master population table; 5
@ SYNAPSE_DYNAMICS_REGION
synapse dynamics; 7
@ STRUCTURAL_DYNAMICS_REGION
structural dynamics; 8
@ SYNAPTIC_MATRIX_REGION
synaptic matrix; 6
@ MC
Multicast message reception is FIQ.
Spike processing fast API.
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...
void spike_processing_fast_store_provenance(struct spike_processing_fast_provenance *prov)
Store any provenance data gathered from spike processing.
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.
Provenance for spike processing.
@ SDRAM_PARAMS_REGION
SDRAM transfer parameters region.
A region of SDRAM used to transfer synapses.
The callback priorities used by all simulation cores.
uint32_t sdp
The SDP callback priority.
The identifiers of the regions used by all simulation cores.
uint32_t system
Data for general simulation setup.
The provenance information for synaptic processing.
The region IDs used by synapse processing.
uint32_t bitfield_filter
The filters to avoid DMA transfers of empty rows.
uint32_t synapse_params
The parameters of the synapse processing.
void synapses_resume(timer_t time)
Resume processing of synapses after a pause.
This file contains the main interface for structural plasticity.
uint32_t synaptogenesis_n_updates(void)
Number of updates to do of synaptogenesis this time step.