This project emulates a two-layer neural network using a series of integrate and fire neurons defined in Verilog. The neurons accumulate incoming spikes and when their cummulative signal surpasses a defined threshold, they generate a spike and reset their potential.
The network is composed of two neuron layers. The first input layer accepts two 16-bit inputs, corresponding to external stimuli or current, which the neurons of the first layer will processes. Based on the internal states of these neurons, they may or may not fire to generate spikes.
The spikes that are generated from the first layer are used as input to the second layer. In this model, a spike is defined asw a binary high signal, translated into a 16-bit value to mimic the input current standard. If there is no spike, there is no input current (zero).
The second layer defines the neural network's output. Each neuron in the second layer may generate a spike, which is represented again with a bit.
Testing involves applying different input stimuli (current) and observing spiking states.
By changing the values of 'input1' and 'input2', and observing the output layers, we can observe different spiking outputs from the neural network.
# | Input | Output | Bidirectional |
---|---|---|---|
0 | |||
1 | |||
2 | |||
3 | |||
4 | |||
5 | |||
6 | |||
7 |