No checking for round to zero or too big for int16 when scaling STDP parameters
Hi this is an issue that has bitten me a few times in the past so I suggest a fix be added to master.

https://github.com/SpiNNakerManchester/sPyNNaker/blob/ac1d2d2d3eeaab17c1b261ad4bae0d8b11a59bc8/spynnaker/pyNN/models/neuron/plasticity/stdp/weight_dependence/weight_dependence_additive.py#L49-L69

for certain large weight scales (w) and chosen STDP parameters we can produce data spec parameter values that are either rounded to 0 or overflow the range of an int16. Without any warning...

This is a problem as it can lead to very strange simulation results without any reasonable explanations to the PyNN user.

I have implemented a potential fix for an additive weight dependence in:

https://github.com/SpiNNakerManchester/sPyNNaker/blob/644afd8ee7d422541a2920ce3bb0d25777dabd47/spynnaker/pyNN/models/neuron/plasticity/stdp/weight_dependence/weight_dependence_additive.py#L49-L91



diff --git a/spynnaker/pyNN/models/spike_source/spike_source_array_vertex.py b/spynnaker/pyNN/models/spike_source/spike_source_array_vertex.py
index 3eb8ff2051..a857b18b76 100644
--- a/spynnaker/pyNN/models/spike_source/spike_source_array_vertex.py
+++ b/spynnaker/pyNN/models/spike_source/spike_source_array_vertex.py
@@ -98,6 +98,15 @@ class SpikeSourceArrayVertex(
 
         """
         time_step = self.get_spikes_sampling_interval()
+        current_time = globals_variables.get_simulator().get_current_time()
+        # warn the user if they are asking for a spike time out of range
+        for n in range(len(spike_times)):
+            if spike_times[n] < current_time:
+                logger.warning("A spike time of {} was specified for the "
+                               "SpikeSourceArray {} that is "
+                               "lower than the current time {} - this "
+                               "will be ignored.".format(
+                                   float(spike_times[n]), self, current_time))
         self.send_buffer_times = _send_buffer_times(spike_times, time_step)
         self._spike_times = spike_times
 
['spynnaker/pyNN/models/spike_source/spike_source_array_vertex.py']