-
Notifications
You must be signed in to change notification settings - Fork 54
Description
In NEST, synapses have a (dendritic) synaptic delay property (C++ class member). In the development of synapse model support in NESTML, this property was faithfully mirrored as a parameter of the NESTML synapse model. However, from the perspective of the NESTML synapse model, this is a property external to the synapse entity, as delays are managed by the simulator—the synapse knows only about spikes coming into its spiking input ports, and can emit spikes on its spiking output port; the delay is not specified mathematically (as e.g. f(t - d) instead of f(t)) in the model. With spike event attributes (#1137) being abandoned as a concept, leaving only weighted Dirac delta pulses, only the weight remains as a parameter of the spike event.
To achieve this:
- Add attributes to spike events #1137 should be abandoned; third factors from the presynaptic neuronal partner should come into the synapse via a dedicated spiking or continuous-valued input port of the synapse model.
- Attributes should be removed from output ports (reverting Add explicit output parameters to spiking output ports #1124) — done in Remove event attributes #1288.
- The predefined function
emit_spike()should only take one optional weight attribute (with a default equal to 1) and not a delay — done in Remove event attributes #1288. - Delay member and getter/setter etc. should be added during code generation — done in Remove event attributes #1288.
- Option to make delays a CommonSynapseProperty — done in Remove event attributes #1288.
Open questions:
- Should the synapse be able to read out and change its own delay? Should this be the same delay as the NEST dendritic delay? In the future, conceivably we could have a function
emit_spike(w, t_offset)that emits a spike at timet + t_offset. However, this still wouldn't necessarily call for having access to the NEST-internal dendritic delay.