We are implementing a FPGA-based Spiking NN simulator.

1. We implement Leaky Integrate and Fire (LIF) neuron model with current-based synapses, with no learning (STDP). Your paper mentioned "Poisson neurons". Could you please explain what it means, and how it relates to LIF model?

2. Is it straightforward to turn off STDP in the simulator?

3. Since FPGA uses fixed-point arithmetic, we would like to evaluate the effect of fixed-point arithmetic on simulation accuracy.

If we use Auryn to run simulations before mapping the NN to FPGA implementation. Is there an easy way to change Auryn to use fixed-point arithmetic, instead of floating point?

Thanks for your help!

## Question about Auryn

### Re: Question about Auryn

Poisson neurons implement Poisson processes (i.e. they emit spike trains with exponentially distributed inter-spike-interval (ISI) distributions). They are commonly used as noise source and external background input in network simulations.zgu666 wrote:We are implementing a FPGA-based Spiking NN

simulator.

1. We implement Leaky Integrate and Fire (LIF) neuron model with

current-based synapses, with no learning (STDP). Your paper mentioned

"Poisson neurons". Could you please explain what it means, and how it

relates to LIF model?

Yes. STDP is implement as a particular connection object. If you use a non-plastic connection instead (e.g. SparseConnection) there won't be STDP in the model.zgu666 wrote: 2. Is it straightforward to turn off STDP in the simulator?

That is fairly straight forward if you are not worried about maximum performance in the simulation, but you want to test for correctness. Depending on the neuron model it will be sufficient to just change the implementation of the vector operations in auryn_definitions.cpp:zgu666 wrote:3. Since FPGA uses fixed-point arithmetic, we would like to

evaluate the effect of fixed-point arithmetic on simulation accuracy.

If we use Auryn to

run simulations before mapping the NN to FPGA implementation. Is there an

easy way to change Auryn to use fixed-point arithmetic, instead of

floating point?

Thanks for your help!

https://github.com/fzenke/auryn/blob/ma ... itions.cpp

For one such function (starting with auryn_vector_XYZ, e.g. auryn_vector_float_scale, which scales a state vector by a constant) you could replace the functionality, by the fixed comma arithmetic. The simulator will pass around floats though (changing this to a fixed comma type would be more demanding), but the floats would be limited to your fixed comma range and discretization whichever you choose to implement in these vector operations.

Note that some neuron models (such as TIFGroup) do not fully use vector operations, but implement certain parts on a neuron by neuron basis.

https://github.com/fzenke/auryn/blob/ma ... FGroup.cpp see evolve()

You would have to implement your fixed comma arithmetic here too.