Neural and Synaptic Array Transceiver: A Brain-Inspired Computing
Framework for Embedded Learning
1, *

4

2

2

3

arXiv:1709.10205v2 [cs.NE] 6 Oct 2017

Georgios Detorakis
, Sadique Sheik , Charles Augustine , Somnath Paul , Bruno U. Pedroni , Nikil
5,1
1,5
3
1,5,*
Dutt , Jeffrey Krichmar Gert Cauwenberghs Emre Neftci
1
2
3
4
5

Department of Cognitive Sciences, UC Irvine
Circuit Research Lab, Intel Corporation
Department of Bioengineering and Institute for Neural Computation, UC San Diego
Biocircuits Institute, UC San Diego
Department of Computer Science, UC Irvine

* gdetorak@uci.edu, eneftci@uci.edu
Abstract
Embedded, continual learning for autonomous and adaptive behavior is a key application of neuromorphic hardware designed to mimic the dynamics and architecture of biological neural networks. However,
neuromorphic implementations of embedded learning at large scales that are both flexible and efficient
have been hindered by a lack of a suitable algorithmic framework. As a result, most neuromorphic hardware are trained off-line on large clusters of dedicated processors or GPUs and transferred post hoc to
the device. We address this by introducing the neural and synaptic array transceiver (NSAT), a neuromorphic computational framework facilitating flexible and efficient embedded learning. NSAT supports
event-driven supervised, unsupervised and reinforcement learning algorithms including deep learning.
We demonstrate the NSAT in a wide range of tasks, including the simulation of Mihalas–Niebur neuron,
dynamic neural fields, event-driven random back-propagation for event-based deep learning, event-based
contrastive divergence for unsupervised learning, and voltage-based learning rules for sequence learning.
We anticipate that this contribution will establish the foundation for a new generation of devices enabling
adaptive mobile systems, wearable devices, and robots with data-driven autonomy.

Introduction
Using biological brains as an inspiration for designing novel computing paradigms can lead to massively
distributed computing technologies that operate on extremely tight power budgets [92], while being robust
to ambiguities in real-world sensory information and resilient to component failures [39]. To devise such
technology, neuromorphic electronic systems strive to closely mimic the building blocks of biological neural
networks and dynamics [55] in custom digital [57, 37] or mixed signal [83, 11, 76] CMOS technologies.
In neuromorphic systems, similarly to biological neural networks, only spike-events are communicated
between neurons, and neural and synaptic state components are local [25]. This organization can overcome
some of the fundamental inefficiencies of the Von Neumann architecture [8] when scaled to massively distributed systems. However, to deploy such an architecture on real-world workloads, neuromorphic systems
necessitate a suitable computational and learning framework that can efficiently operate within the constraints dictated by the architecture and dynamics of the neural substrate, i.e. that states and parameters
local to the neuron, and global communication is mediated by all-or-none events which are sparse in space
and time. Although recent progress has significantly advanced the systematic synthesis of dynamical systems onto neural substrates and their neuromorphic VLSI counterparts, their applications continue to rely
on off-line and off-device learning [29, 48], calibration techniques [34, 56, 65], or dedicated digital processors
[1, 73] that cannot be directly and efficiently embedded in neuromorphic hardware. For many industrial
applications involving controlled environments, where existing (labeled) data is readily available or where
streaming data can be quickly transmitted to a mainframe computer, such off-line learning or calibration
techniques are acceptable. Following this approach, many academic and industrial research groups have successfully demonstrated dedicated hardware for inference tasks [16, 40, 58]. For mobile applications beyond

these constraints, learning must be performed in an on-going fashion, using data streaming to the device.
Recent work on neuromorphic systems can potentially achieve this feat with a thousandfold less power than
GPUs [69, 70], while matching or surpassing the accuracy of dedicated machine learning accelerators [16, 40],
and operating on-line.
This article presents one such system, called Neural and Synaptic Array Transceiver (NSAT), and demonstrates proof-of-concept learning applications. The NSAT is a general-purpose spiking neural network simulator designed on the assumptions that extreme efficiency in scalable neuromorphic learning frameworks for
data-driven autonomy and algorithmic efficiency hinges on the establishment of neural algorithms in which
the computational power of the Synaptic Operation (SynOp) are on the same order as that of a Multiply Accumulate (MAC) unit; and a neuromorphic design that emphasizes locally dense and globally sparse
communication using hierarchical event-based communication [47, 71].
To achieve extreme efficiency, the NSAT framework takes advantage of tractable linear neural model
dynamics, multiplier–less design, fixed–width representation and event-driven communication, while being
able to simulate a wide range of neural and plasticity dynamics. An NSAT core is composed of a large
number of state components that can be flexibly coupled to form multi-compartment generalized integrateand-fire neurons, allowing the implementation of several existing neural models [60, 38] (Fig. 1). While
biological interpretation is not necessary, the state components forming the neuron can be interpreted as
somatic potential, dendritic potential, synaptic currents, neuromodulator concentration or calcium currents,
depending on its interactions with other state components or pre-synaptic neurons. The communication
between cores and event-driven sensors is routed via inter-core spike events.
While there already exist neuromorphic VLSI circuits for synaptic learning [77, 83, 5], our framework
is novel in that it is equipped with a flexible and scalable event–based plasticity rule that is tightly guided
by algorithmic considerations and matched to the neuron model. Scalability is achieved using only forward
lookup access of the synaptic connectivity table [72], permitting scalable, memory-efficient implementation
compared to other implementations requiring reverse table lookups or memory-intensive architectures such
as crossbar arrays. Flexibility in the learning dynamics is achieved using a reconfigurable event–based threefactor rule [95, 19] consistent with other established plasticity dynamics such as STDP [12, 54], membranevoltage based rules [19] and calcium based dynamics [87, 41]. Its three factor dynamics enable unsupervised,
supervised and reinforcement learning [27] using local information. We demonstrate that NSAT supports
a form of gradient back–propagation in deep networks [80, 28, 102], unsupervised learning in spike-based
Restricted Boltzmann Machines (RBMs) [68], and unsupervised learning of sequences using a competitive
learning [42]. Furthermore, we show that learning in digital NSAT requires fewer SynOps compared to MACs
in equivalent digital hardware, suggesting that a custom hardware implementation of NSAT can be more
efficient than mainstream computing technologies by a factor equal to the J/MAC to J/Synop ratio.
This article is organized as follows: In the Material & Methods section we describe the neuron model and
its mathematical equations. We present the NSAT architecture and software simulator (publicly available
under GPLv3 license). In the Results section we show that the neuron model can simulate the Mihalas–
Niebur neuron [60] and thus demonstrate a rich repertoire of spike behaviors. In addition, we simulate three
different neural fields models [3], and event-driven variants of commonly used machine learning algorithms.

Materials and Methods
In this section we introduce the mathematical description of the NSAT framework and the details regarding
its architecture and its software implementation.
2

From Leaky Integrate-and-Fire Neurons to the NSAT Neuron and Synapse
Model
We start our description with the leaky integrate–and–fire neuron (LIF) model, which forms the basis of the
NSAT neuron:
d
τm V (t) = −V (t) + RI(t).
(1a)
dt
If V (t) ≥ θ then V (t) = Vr and s = 1,
(1b)
where V (t) is the neuron’s membrane potential, τm is the membrane time constant, R is the membrane
resistance and I(t) is the driving current. When the membrane potential is greater or equal to a threshold
value (θ), the neuron fires a spike and the membrane potential value at that time step is set to a reset value
Vr (resting potential).
The dynamical properties of LIF neurons can be extended with synaptic dynamics or other internal
currents such as calcium channels, potassium channels and other biophysical variables. For instance, the
concentration of some neurotransmitter or ion, U (t), can be captured by the linear dynamics:
τU

d
U = −U + ∑ δ(t − tk )
dt

(2a)

k

(2b)
where U (t) is the concentration within the neuron cell reflecting for example calcium concentration, although
the biological interpretation is not indispensable for the NSAT framework. The term ∑k δ(t − tk ) indicates
1
the pre-synaptic incoming spikes to the current post-synaptic neuron (δ is the Dirac function ). If we rewrite
the summation term as S(t) = ∑k δ(t − tk ) then the dynamics become the linear system:
1

−
V̇ (t)
[
] = [ τm
0
U̇ (t)

0
V (t)
]+[
]⋅[
U (t)
− τ1
U

RI(t)
τm
S(t) ] .
τU

(3)

A generalization of such linear dynamics to N dimensions can be written in the following vector notation:
d
x(t) = Ax(t) + Z(t),
(4)
dt
where the temporal evolution of state x(t) = (x0 (t), x1 (t), x2 (t), ⋯, xN (t)) is characterized by the solution
of Eq. (4). A is the state transition matrix and Z(t) the time-varying external inputs or commands to the
system. Solutions to linear dynamical systems of Eq. (4) are given by:
t

x(t) = exp(At)x(t0 ) + ∫ exp(A(t − τ ))Z(τ )dτ.

(5)

t0

Equation (5) can be computed numerically by using the Putzer algorithm [75] for computing the matrix exponential. Numerical solutions of equation (4) can be obtained using several numerical integration methods,
such as the Forward Euler which is computationally simple and fast.

NSAT Neuron and Synapse Model
The NSAT neuron consists in linear dynamics described by Eq. 4, extended with firing thresholds, resets
mechanisms and inputs Z(t) written in open form:
dx(t)
Ξ(t) ⊗ W(t)) ⋅ s(t) + η (t) + b) .
= Ax(t) + (Ξ
dt
ÍÒÒ Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò ÒÑÒ Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ï

(6a)

Z(t)

If x(t) ≥ θ then x(t) = Xr ,

(6b)

If x0 (t) ≥ θ0 then s0 (t) = δ(t).
1

(6c)

δ(t) = ∞, if t = 0 otherwise δ(t) = 0. In the discrete version we have δ(t) = 1, if t = 0 otherwise δ(t) = 0.

3

The state components x = (x0 , ..., xi , ...) describe the dynamics of a neural compartment or variable such as
membrane potential, internal currents, synaptic currents, adaptive thresholds and other biophysical variables,
although a biological interpretation is not necessary. A is the state-transition square matrix that describes
the dynamics of each state component and their couplings. Ξ is a random variable drawn from a Bernoulli
distribution and introduces multiplicative stochasticity to the NSAT, which is an important feature for
learning [101, 89, 10] inspired by synaptic failures [100, 69]. W is the synaptic strength matrix and defines
the connectivity and the strength of each connectivity between neurons. s is a vector that takes values in
{0, 1} and registers whether the neuron has spiked. The ⊗ symbol defines an element-wise multiplication (or
Hadamard product). η is the additive normal noise with zero mean and programmable variance. And finally,
b is a constant value that is added to each state component acting as a constant input (i.e. current injection
from a neuroscience point of view or bias from a machine learning point of view). When a component xi
crosses its threshold value (θi ) then it is subject to reset to some predefined value Xri . Additionally if the
zero state of a neuron (x0 (t)) crosses its threshold value then that neuron fires a spike as shown in Eq. (6),
with (s0 (t) = δ(t)) and a new setting of Xr0 . After the neuron has spiked, the membrane potential is
clamped during a programmable refractory period, during which it is not permitted to fire.

Figure 1: The Neural and Synaptic Array Transceiver (NSAT) (a) Sample run externally modulated
STDP, showing raster plot of 25 neurons and detailed temporal dynamics of the four components of the
first neuron’s (neuron number 0) state. The first component represents the membrane potential (Vm ), the
second component represents the synaptic state (Isyn ), while the third is the plasticity modulation (xm ).
The latter state is driven externally by a spike train that is active between time steps 400 and 600, and white
noise of constant amplitude. (b) NSAT Neurons consist of compartments that can be coupled to trading
off the number of neurons vs. neuron complexity (number of compartments), (c-d) NSAT information flow
and envisioned layout of the NSAT cores using Hierarchical Address–Event Routing (HiAER) [47, 71] for
scalable and expandable neural event communication with reconfigurable long-range synaptic connectivity.
The NSAT features a modulated Spike-Timing-Dependent-Plasticity (STDP) learning rule. The classical
STDP rule is a form of Hebbian [43] learning that affects the synaptic strengths of connected pre- and postsynaptic neurons based on their spikes firing history in the following way [12, 88]: if a post–synaptic neuron
generates action potential within a time interval after the pre–synaptic neuron has fired multiple spikes then
4

the synaptic strength between these two neurons becomes stronger (long–term potentiation–LTP). On the
other hand if the post-synaptic neuron fires multiple spikes before the pre–synaptic neuron generates action
potentials within that time–interval then the synaptic strength becomes weak (long–term depression–LTD).
The classical STDP rule requires the spiking firing history of all pre–synaptic and post–synaptic neurons
that are connected in order to be implemented. This renders STDP difficult to implement in hardware due
to computational and memory requirements. To overcome such limitations, NSAT uses a forward table–
based, pre–synaptic event-triggered, nearest–neighbor STDP rule [72]. This method implements both causal
and acausal weight updates using only forward lookup access of the synaptic connectivity table, permitting
memory-efficient implementation. A single timer variable for each neuron is sufficient to implement this rule.
Exact STDP is recovered in the case of refractory periods greater than the STDP time window, and otherwise
it closely approximates exact STDP cumulative weight updates [72]. The mathematical formulation of the
NSAT learning rule is given by:
j

ij (t) = xm (t)(K(t − ti ) + K(tj − t)),

(7a)

d
w (t) = ij (t)δj (t),
dt ij

(7b)

where ij (t) is the eligibility of the synapse between the i–th pre–synaptic neuron and the j–th post-synaptic
neuron update, K(⋅) is the STDP learning window, ti is the last time that the i–th pre–synaptic neuron
fired a spike, and tj is the last time that the post-synaptic neuron fired a spike. The kernel (or learning
window) K(t − ti ) refers to the causal (positive) STDP update and the term K(tj − t) refers to the acausal
j
(negative) STDP update. xm (t) is the m–th state component of the post–synaptic neuron that dynamically
modulates the amplitude of the STDP kernel.
Difference Equations of NSAT (Quantized) Framework
The NSAT software simulator consists in discrete-time versions of the above equations, based on fixed point
arithmetics without any multiplications. The continuous–time dynamics of NSAT described by Eq. (6) and
Eq. (7) are rewritten here in a discrete (quantized) form:
Ξ[t] ⊗ W[t]) ⋅ s[t] + η [t] + b.
x[t + 1] = x[t] + A  x[t] + (Ξ
If x[t + 1] ≥ θ then x[t + 1] ← Xr .
If x0 [t + 1] ≥ θ0 then s0 [t + 1] ← 1,

(8a)
(8b)
(8c)

where the entries of matrices A and b are integer constants. Some other parameters such as the variance
of the additive noise η are defined a priori by the user. More details regarding the parameters are provided
later (see Implementation Details paragraph).
The operator , which is described by Algorithm 1, plays the role of a multiplication implemented with
bit shift operations. In particular, it ensures that all state components leak towards the resting state in the
absence of external input (current).
Algorithm 1 Zero-rounding bit shift operation ()

function a  x
y =a⋄x
if y ≠ 0 and a = 0 then
return sign(−y)
else
return a
end if
end function
The ⋄ symbol in Algorithm 1 defines an operator for a custom bit shift. It performs a multiplication by
power of two using only bitwise operations as Algorithm 2 indicates. The reason for using ⋄ rather than left
5

Algorithm 2 Bit shift multiplication operation (⋄)

function a ⋄ x
if a ≥ 0 then
return x ≪ a
else if a < 0 then
return sign(x)(∣x∣ ≫ −a)
6:
end if
7: end function
1:
2:
3:
4:
5:

and right bit shifting is because integers stored using a two’s complement representation have the property
′
a
′
that right shifting by a of values such that x > −2 , ∀a < a is −1, whereas 0 is expected in the case of a
−a
multiplication by 2 . The ⋄ operator corrects this problem by modifying the bit shift operation such that
′
a
′
−2 ⋄ a = 0, ∀a < a. Such multiplications by powers of 2 have the advantage that the parameters are stored
on a logarithmic scale, such that fewer bits are required to store parameters. A logarithmic scale for the
parameters is suitable since solutions to the equations consist of sums of exponentials of these parameters
−3
(5). For example, −(−3  x0 ) is the NSAT equivalent of −2 x0 [t].
The learning rule given by Eq. (7) is also discretized:
m

ij [t] = xj [t] ⋄ (K[t − ti ] + K[tj − t]),

(9a)

wij [t + 1] = Clip(wij [t] + ij [t]sj [t], wmin , wmax ).
ÍÒÒ Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò ÑÒÒ Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ò Ï

(9b)

∆wij

Where Clip(⋅, wmin , wmax ) clips its first argument to within the range [wmin , wmax ] dictated by the fixed
point representation of the synaptic weights at every time step.
Optionally, the weight updates can be randomized using a discretized version of randomized rounding
[63], which interprets the r least significant bits of ∆w as a probability, as follows:
r

∆wij = (∆w ≫ r) + {

1

if random(0,1) < p

0

otherwise.

,

(10)

where p is the number formed by the r least significant bits of ∆wij .
Figure 1(a) shows an example of NSAT operation with externally modulated STDP. In this example, each
neuron consisted in 4 components. The first and second component correspond to classical leaky integrate
and fire dynamics with current-based synapses. The third state component driven externally to modulate
the STDP update. As a result most weights updates are concentrated around high modulation states.

Implementation of the NSAT Framework
The NSAT Architecture
Figures 1(c), (d) and 2 illustrate the NSAT architecture consisting of multiple interconnected cores (or
threads each simulating one NSAT core). Only addresses of a neuron’s spike are transmitted in inter– and
intra–thread communication. A global clock keeps track of the simulation time and synchronizes all NSAT
threads. At every simulation time step (or tick) each thread runs independently, executing NSAT dynamics
in two stages. In the first stage each thread integrates the neural dynamics of its neurons based on Eq. (8)
without accumulating the synaptic inputs on the neuron state. Then threads detect new spike-events and
transmit them accordingly to their destinations. All the detected inter- and intra-core spike events at time
t are made available to the next time step (t + 1).
In the second stage, the detected spike events (including the external ones) are accumulated onto the
Ξ[t] ⊗ W[t]) ⋅ s[t]. Synaptic weights are multiplied with a
neural states components xi according to (Ξ
6

predefined constant (implemented as a bit shift operation) to trade off precision and range limitations
imposed by fixed point integer arithmetic. When the learning is enabled, Eq. (9) is computed. First,
threads compute the causal and then the acausal part of the STDP learning curve. After learning, the
STDP counters of neurons that have spiked are set to their new values (either the last time that a neuron
spiked, or a neuron clock starts ticking until expiration). The final steps in the second stage perform update
m
of modulator dynamics (xi ) and reset of the neuron state components that spiked. The modulator state
component (xm ) adjusts the amplitude of the STDP function as in three-factor synaptic plasticity rules [96].

Figure 2: The NSAT Architecture Multiple NSAT threads receive external events and generate event
responses in two stages. Each thread consists of two major instruction sets (cyan boxes), one for evaluating
neuron dynamics and the other for implementing an event-based STDP learning rule. The instructions are
shown in the two large gray boxes. Arrows indicate the flow of the information within an NSAT thread
during simulation.

Software Implementation Details
In order to demonstrate the capabilities of the proposed NSAT framework, we implemented a software simulator in the C [79] programming language. The software has been designed to accommodate foreseeable
specifications imposed by the hardware, and thus all operations use 16-bit integer (fixed-point) and binary
arithmetics (no multiplications) as described in the Difference Equations of NSAT Framework section. Algorithm 3 illustrates and summarizes the flow and the basic logic of the NSAT software implementation.

7

Algorithm 3 Algorithmic (software) NSAT implementation (see text for more details).

Require: Synaptic Weights, Parameters, Learning Parameters
Ensure: Spike events, States, Synaptic Weights
for t ← 1 . . . tfinal do
for all p in {Threads} do
for all i in {Neurons} do
spike list ← external events
i
Compute x [t] using equations (8)
i
if X ref ≠ 0 then
i
i
x [t] ← Xref
end if
if Spike is Enabled then
i
i
if x [t] ≥ θ then
spike list → id ← i
spike list → ts ← t
i
s [t] = 1
end if
else if Adaptive θ is Enabled then
i
i
if x0 [t] ≥ x1 [t] then
spike list → id ← i
spike list → ts ← t
i
s [t] = 1
end if
end if
i
i
Ξ[t] ⊗ W[t]) ⋅ si [t]
x [t] ← x [t](Ξ
i
W[t] ← W[t] ⊗ G
if Learning is Enabled then
Compute equations (9) and (10)
end if
i
if s [t] == 1 and Reset is Enabled then
for all k in {State components} do
i
i
xk [t] ← Xk ;
end for
end if
end for
end for
end for

Data structures Each thread is implemented as a large data structure that contains all the necessary
data structures for implementing NSAT. The most significant data structure is the one that implements
the neuron. Each neuron unit structure carries all the parameters necessary for integrating the neuron’s
dynamics and performing learning (Fig. 3). We distinguish the neurons into two main categories, external
neurons and internal (NSAT) neurons. External neurons have plastic (adjustable) post–synaptic weights
and STDP counters, but no dynamics. Internal neuron dynamics follow Eq. (6). Every neuron consists of
a synaptic tree implemented as a linked list containing all the post–synaptic weights and the id number
of the post–synaptic neurons. Only internal neurons have access to the NSAT params structure and to
the Learning params structure. In addition, a state data structure is added to the internal neurons for
keeping track of the dynamics (state of the neuron).
Every thread data structure has as members the neuron’s data structure (internal and external), the spike
event lists, some temporary variables that are used for storing results regarding NSAT dynamics, variables
8

Figure 3: Schematic representation of NSAT data structures and information flow. The neuron structure
is the main component of the NSAT software simulator. The neuron’s dynamics, learning and state parameters data structures are shown. Red and black arrows represent pointers and information flow, respectively.
See the text for more information regarding the parameters and information flow.

that gather statistics, monitor flags, filenames strings for on–line storing of spike events or other variables
(such as neuron states and synaptic weights), and finally shared to neuron parameters such as number of
neurons (internal and external) within a thread, and other parameters (see Parameters paragraph below).

Random Number Generator The random number generator (RNG) is implemented in two different
2
ways. First, we used the PCG RNG library to implement a uniform random number generator with long
period. Based on the PCG library we implemented a Box–Muller [13] transformation in order to acquire
normal distributions for the additive noise of the NSAT framework.
The second implementation is used for simulating hardware implementations of the NSAT framework.
In order to reliably generate uniformly distributed random numbers in a hardware implementation, we used
a linear feedback shift register (LFSR) in combination with a cellular automata shift register (CASR) [94].
Such types of RNGs are suitable for hardware devices and provide a quite robust and reliable random
number generator. This implementation is used for bit accurate simulations of future NSAT hardware
implementations.
2

http://www.pcg-random.org/

9

Parameters NSAT framework parameters can be split into three main classes. The first one contains
global parameters related to the entire simulation and the configuration of the NSAT framework. The
second class includes parameters for neurons dynamics and for the learning process. Figure 3 shows the
neuron’s and learning parameters (NSAT params and Learning params structures, respectively). The third
class contains parameters local to each thread.
Parameters of the first class are the number of simulation time steps (or ticks), the total number of
threads, the seeds and the initial sequences for the random number generators, a flag (Boolean variable) that
indicates which of the two random number generators is used, a learning flag (Boolean variable) that enables
learning, and the synaptic strengths boundary control flag (Boolean variable) that enables a synaptic weight
range check to more closely match hardware implementations.
The second class of parameters, the neuron parameters (refer to NSAT params struct), includes the state
transition matrix A, the constant current or bias b, and sA matrix which contains the signs of matrix A. σ
is the variance for the additive normal distributed noise and p is the blank-out probability (corresponding
to Ξ in Eq. (8)). In addition, it contains the spike threshold (θθ ), the reset value (Xr ), the upper (Xup ) and
the lower boundaries (Xlow ) for each neural state component. The latter two constants define the range of
permitted values for each state component. The spike increment value increases or decreases the after-spike
state component value instead of resetting it. A Boolean parameter enables or disables the reset of a neuron.
An optional parameter permits variable firing threshold, whereby component x1 is used as firing threshold
for the neuron. An integer parameter defines which state component is assigned as plasticity modulator.
Finally, another parameter sets the synaptic weights gains.
The third group consists of learning parameters. Each neural state component has its own synaptic
plasticity parameters (see Fig. 3), enabled by a single flag. The rest of the learning parameters define the
STDP kernel function (K(⋅) in Eq. (9)). The STDP kernel function is either a piecewise linear function
or a piecewise exponential one that can approximate the classical STDP exponential curve or other kernel
functions. The approximation uses either three linear segments for which we define the length, the height
(level) and the sign or three exponential-like segments for which we define the length, the height, the sign
and the slope, thus we have eight parameters that define the kernel function (four for the causal part and
four for the acausal one).
Fig. 4(c) illustrates a realization of NSAT approximated STDP kernel function. tca (tac) controls the
length (time dimension), hica (hiac) controls the amplitude (height), sica (siac) defines the sign for the
causal (acausal) part, and slca (slac) characterizes the slope of the exponential approximation. On a given
thread, different types of neurons and synapses can be defined by assigning them to separate parameter
groups.
Finally, the third parameter group concerns the core configuration. Each parameter group specifies the
number of internal and external units within a thread, states configurations per thread and in addition some
extra parameters for the use of temporary variables necessary in simulations.
Python Interface
In order to facilitate the use of the software simulator (and the hardware later on) we developed a high-level
interface in Python. The Python Interface (pyNSAT from now on) is based on Numpy, Matplotlib, Scipy,
pyNCS and Scikit-learn Python packages. The pyNCS [91] is used for generating spike trains, read and write
data from/to files and it provides proper tools for data analysis and visualization of simulations results.
Figure 5 illustrates an example of pyNSAT script simulating a neuron with four state components (xi , i =
0 . . . 3). The script mainly consists of five parts. First we instantiate the configuration class. This class
contains all the necessary methods to configure the simulation architecture and define the global parameters
for the simulation, such as the total number of threads (or cores) to be used, number of neurons per thread,
number of state components per neuron per thread, number of input neurons per thread and the simulation
time (in ticks), Fig. 5(a). NSAT model parameters such as the matrix A of the NSAT dynamics, the biases
b and many other parameters regarding the dynamics of the neuron and the model are defined as shown in
Fig. 5(b). The next step is to define the synaptic connectivity (the architecture of the network), Fig. 5(c).
Fig. 5(d) illustrates how the pyNSAT writer class is invoked for writing all the binary files containing the
10

Figure 4: NSAT STDP learning rule. (a) A pre–synaptic neuron (black node) projects to three postsynaptic neurons (blue, magenta and cyan nodes). Three spikes are emitted by the post-synaptic neurons
(corresponding colored arrows) and then a spike is fired by the pre–synaptic neuron. Then an acausal update
takes place as the red shaded box indicates. Most recent post-synaptic spikes cause a causal update (black
shaded boxes). (b) Temporal evolution of the post-synaptic weights. The acausal and causal updates are
aligned with panel’s (a) spikes. (c) The STDP kernel function (linear and exponential approximations)
used in this simulation (only the linear part). Black and red colors indicate the causal (positive) and
the acausal (negative) parts of the STDP kernel function, respectively. Darker–colored lines illustrate the
linear approximated STDP curves, and lighter–colored ones the exponential approximation (both types are
supported by the NSAT framework).

parameters that the C library will use to execute the simulation. Finally, we call the C NSAT library and
execute the simulation (see Fig. 5(e)).
The current example is a single neuron with adaptive threshold (more details regarding this neural model
are given in Mihalas–Niebur Neuron paragraph in Results section). After simulating the model, we can
visualize the results (see the right bottom panel in Fig. 5. The first row shows the membrane potential (state
component x0 [t], blue line) of the neuron, the second row indicates the adaptive threshold (x1 [t], black
line), and the third and fourth rows are two internal currents (x2 [t] and x3 [t], magenta and cyan colors),
respectively.

Simulation Details
The software simulator uses a bit-accurate simulator implemented in the C Programming Language. All
the source code used in this work are distributed under the GPL v3.0 License and are available on-line
(https://github.com/nmi-lab-ucsd/HiAER-NSAT). All simulation parameters are provided in the source
code accompanying this work and in the Supplementary Information. The Python interface for the NSAT
framework has been written for Python 2.7.

Results
In this section we demonstrate NSAT capabilities by performing five different tasks. First, we show that
NSAT supports a wide variety neural responses, such as tonic, bursting and phasing spiking. The second task
is a simulation of Amari’s neural fields [3] in three different applications: stationary “bump” solutions, target
selection and target tracking. Then, we illustrate three learning tasks using supervised and unsupervised
learning.
11

Figure 5: PyNSAT Example. Source code snippets for creating a simple simulation of a single neuron with
four state components (xi , i = 0, . . . , 3). The Python script (a) instantiates the main configuration class, (b)
sets neural dynamics, (c) defines the architecture of the network (synaptic connections), (d) writes all the
parameters files and finally (e) calls the C library for running the simulation. The results of the simulation
can be easily visualized using Python’s packages.

NSAT Neuron Dynamics Support a Wide Variety of Neural Responses

The Mihalas–Niebur neuron (MNN) model [60] is a linear leaky integrate-and-fire neuron that is able to
capture a wide spectrum of neural responses, such as tonic spiking, bursts of spikes, type I and type II spike
responses. Here, we show that the NSAT neuron model can implement the MNN model and thus simulate
a similar spectrum of neural responses.
The MNN model consists of N + 2 equations, where the first two equations describe the membrane
potential and an adaptive threshold, respectively. The remaining N equations define internal currents of the
12

neuron. The subthreshold dynamics of MNN neuron are given by,
N

1
dV (t)
=
(I − g(V (t) − EL ) + ∑ Ij (t)),
Cm e
dt
j=1

(11a)

dΘ(t)
= a(V (t) − EL ) − b(Θ(t) − Θ∞ ),
dt
dIj (t)
= −kj Ij (t),
j = 1, . . . , N,
dt

(11b)
(11c)

where V (t) is the membrane potential of the neuron, Θ(t) is the instantaneous threshold, Ij (t) is the j-th
internal current of the neuron. Cm is the membrane capacitance, Ie is the external current applied on the
neuron, g is a conductance constant, EL is a reversal potential. a and b are some constants, Θ∞ is the reversal
threshold and kj is the conductance constant of the j–th internal current. The MNN neuron generates spikes
when V (t) ≥ Θ(t) and updates neural state as follows:
Ij (t) ← Rj × Ij (t) + Pj ,

(12a)

V (t) ← Vr ,

(12b)

Θ(t) ← max{Θr , Θ(t)},

(12c)

where Rj and Pj are freely chosen constants, Vr and Θr are the reset values for the membrane potential and
the adaptive threshold, respectively.
We implement the MNN model using the NSAT framework and following the configuration provided
in the original paper of MNN [60]. Therefore, we assume N = 2 (the number of the internal currents),
which has been demonstrated to be sufficient for a wide variety of dynamics. We simulated the MNN in
six different cases, tonic spiking, phasic spiking, mixed mode, class I and II, and tonic bursting. These six
neural responses are important because (i) they are the most frequently used neural responses in the field
of computational neuroscience and (ii) in the MNN original paper [59] all the 20 different neural behaviors
reduce to three different classes in terms of implementation. Our results produce very similar responses
compared to the original MNN ones [60]. Fig. 6 illustrates the results of all these six simulations. The
black lines show the membrane potential of the neuron (V (t)), the red dashed lines indicate the adaptive
threshold (Θ(t)), and the vertical blue line segments show the spike trains for each simulation. Some of
the simpler neural responses and behaviors provided by Mihalas and Niebur can be achieved by NSAT in a
simpler way. For instance, a linear integrator can be implemented in the NSAT by just solving the equation
n
x0 [t + 1] = x0 [t] + (x0 [t] + ∑j=1 wij sj [t]), where the sum reflects the synaptic input to the neuron.

Amari’s Neural Fields
Neural fields are integro-differential equations usually modeling spatiotemporal dynamics of a cortical sheet,
firstly introduced by Shun’ichi Amari in 1977 in his seminal paper [3]. Neural fields have a rich repertoire of
dynamics (waves, breathers, stationary solutions [14, 21], winner-take-all) and are thus key components of
neural computational models. The original Amari’s neural field equation is given by:
τ

∂u(r, t)
′
′
′
= −u(r, t) + ∫ w(∣r − r ∣)f (u(r , t))dr + Iext + h,
∂t
Ω

(13)

where u(r, t) is the average neural activity at position r and at time t of a neural population, τ is a time
′
constant, w(∣r − r ∣) is a connectivity function (usually it is a difference of Gaussian functions or a difference
′
of exponential functions) that defines the connectivity strength between neurons at positions r and r . Iext
is an external input that is applied on the neural field (subcortical inputs for instance) and h is the resting
potential of the neural population. The function f (r) is the activation or transfer function of the system
and in Amari’s case is a Heaviside function:
f (r) = {

1,
0,

if x > 0
otherwise.

(14)

13

Figure 6: NSAT Mihalas-Niebur Simulation. Results from an NSAT simulation of MNN model. (a) Tonic
spiking, (b) mixed mode, (c) class I neuron, (d) class II neuron, (e) phasic spiking, and (f) tonic burst.
Black and red lines indicate the membrane potential (state x0 (t)) and the adaptive threshold (state x1 (t)),
respectively. Blue vertical line segments represent spike events.
In order to numerically solve Eq. (13), we temporally discretize it using the Forward Euler method and thus
we have,
k

dt
ext
ui [t + 1] = ui [t] + τ ( − ui [t] + Ii + hi + dx ∑ wij f (uj [t])),

(15)

j=1

where i is the spatial discrete node (unit or neuron), dt is the Euler’s method time step and dx is the spatial
discretization step. The kernel function in this case is a Difference of Gaussians (DoG, see Fig. 7(a)),
2

w(r) = Ke exp ( −

2

r
r
) − Ki exp ( − 2 ),
2
2σe
2σi

(16)

where Ke , Ki and σe , σi are the excitatory and inhibitory amplitudes and variances, respectively. As input
to the neural field we use a Gaussian function with variance of 0.3 (black dashed line in Fig. 7(a)). At the
end of the simulation the neural field has converged to its stable solution which is a “bump”, as expected
with a DoG kernel function (Fig. 7(a), red line). Figure 7(b) depicts the temporal evolution of numerical
integration of Eq. (13) using the following parameters: Ke = 1.5 Ki = 0.75, σe = 0.1 and σi = 1.0. The
integral is defined in Ω = [0, 1] and we simulate for 50 seconds. After about 7 seconds (200 simulation steps)
the numerical solution converges to a fixed point (see Amari’s seminal work [3] for more details and a more
mathematical description regarding the existence of such “bump” solutions).
Here, we show the implementation of neural fields in the NSAT framework. First, we observe that the
dynamics of each i unit in Eq. (15) is a leaky integrate-and-fire neuron if we consider f (r) as a pre–synaptic
spike–event indicator function. Taking into account that the transfer function f (r) is a Heaviside, we can
then model every unit i as a leaky integrate–and–fire neuron. This implies that the first state component of
neuron i reflects the i–th neural field unit, and the rest of the neuron’s state components remain idle. This
methodology has been previously used to implement spiking neural fields [17, 97, 23].
r
+ 0.5⌋ (see Fig. 8(a)). Neural
We quantize kernel function w(r) using a uniform quantizer Q(r) = ∆ ⋅ ⌊ ∆
resetting is disabled to match the neural fields behavior (described by Eq. (13) and Eq. (15)): Neurons fire
when they reach the firing threshold, but their states are not reset after spiking.
14

Figure 7: Amari’s Neural Field of Infinite Precision. A numerical simulation of Eq. (15). In (a) Blue and
∗
∗
red solid lines indicate the lateral connectivity kernel (w(r)) and a solution u(r, t ) for a fixed time step t ,
respectively. The black dashed line displays the input Iext to the neural field Eq. (15). In (b) is illustrated
the temporal numerical evolution of Eq. (15) for every spatial unit i. It is apparent that after about 7 seconds
the system has reached its equilibrium point.

Figure 8: Neural Field Implementation. Three different neural field models were simulated in NSAT. Three
different lateral connectivity kernels (w(r)) are illustrated in (a). Blue, green and red lines correspond to
stationary solution, action–selection and tracking neural field models, respectively. The first neural field
model generates a stationary (or “bump”) solution (b), a tracking neural field model follows a moving target
on the vertical axis (y) as (d) illustrates. Finally the action–selection model selects one out of two input
stimuli (c), red lines indicate the firing rate of the two stimuli. In panels (c) and (d), the purple colormap
indicates the neural activity (white–no activity, purple–high activity).
We test the NSAT neural fields implementation on three different tasks. The first model expresses
a sustained activity or stationary “bump” solution [20, 14]. We simulate 100 internal neurons, all-to-all
connected and 100 external neurons (no dynamics) connected with internal neurons in a one-to-one relation.
The external neurons transmit spikes generated by a Poisson distribution with maximum firing rate 35 Hz for
neurons indexed from i = 40 to i = 60 and 10 Hz for the rest of the neurons. The total duration of the input
signal injection is 400 simulation ticks and the total simulation time is 2500 ticks. Thus we create an input
similar to the Gaussian function used in the continuous case (see Fig. 7). Figure 8(a) shows the quantized
15

kernel wij (blue line) and Fig. 8(b) indicates the spatial solution of the neural field implementation at the
equilibrium point. The solution obtained with the NSAT neural field implementation in Fig. 8(b) is similar
to the one in Fig. 7(a) (red line, Amari’s neural field “bump” solution).
The second task involves target tracking. Asymmetric neural fields have been used for solving target
tracking[15]. We use the same number of neurons (internal and external) and the same simulation time as
above, and modify the kernel to an asymmetric one as Fig 8(a) indicates (red line). The stimulus consists in
Poisson-distributed spike trains that are displaced along the y–axis every 500 ticks. Figure 8(c) illustrates
the NSAT neural field to track the moving target. In this case, a small fraction of neurons receive Poisson–
distributed spike trains at a firing rate of 50 Hz, while the rest of the neurons do not receive any kind of
input.
Finally, we implemented an action–selection and attention model in neural fields [99]. In this case we use
the same architecture as in the previous task. The difference is that now we have changed the kernel function
and the input. The modified kernel function has weaker excitatory component as Fig. 8(a) shows (green
line). The input consists in spike trains drawn from a Poisson distribution with two localized high firing
rates regions (50 Hz, neurons indexed from i = 20 to i = 40 and from i = 70 to i = 90) for 500 simulation
ticks (all the other internal units receive no input). Figure 8(d) shows activity when we apply the input
stimulus for 500 simulation ticks. The neural field selects almost immediately one of the two stimuli and
remains there during the entire simulation (even after the stimuli removal).
We have shown how NSAT can simulate firing rate models [31] and particularly neural fields [3, 14].
NSAT can thus contribute a generic framework for neuromorphic implementations of neural fields [81] and
potentially enhance them with learning features, as described in the following results.

Supervised Event-based Deep Learning
Deep neural networks, and especially their convolutional and recurrent counterparts constitute the state-ofthe-art of a wide variety of applications, and therefore a natural candidate for implementation in NSAT.
The workhorse of deep learning, the gradient descent Back Propagation (BP) rule, commonly relies on highprecision computations and the availability of symmetric weights for the backward pass. As a result, its direct
implementation on a neuromorphic substrate is challenging and thus not directly compatible with NSAT.
Recent work demonstrated an event-driven Random Back Propagation (eRBP) rule that uses a random
error-modulated synaptic plasticity for learning deep representations. eRBP builds on the recent advances
in approximate forms of the gradient BP rule [49, 50, 51, 9] for event-based deep learning that is compatible
with neuromorphic substrates, and achieves nearly identical classification accuracies compared to artificial
neural network simulations on GPUs [70].
We use a two-layer network in NSAT for eRBP equipped with stochastic synapses, and applied to learning
classification in the MNIST dataset. The network of two feed-forward layers (Fig. 9) with Nd “data” neurons,
Nh hidden neurons and Np prediction (output) neurons. The class prediction neuron and label inputs which
project to the error neurons with opposing sign weights. The feedback from the error population is fed back
directly to the hidden layers’ neurons through random connections. The network is composed of three types
of neurons: hidden, prediction and error neurons.
The dynamics of a hidden neuron follow integrate-and-fire neuron dynamics:
τsyn

d h
h
V = −V + ∑ ξ(t)wk sk (t)
dt
k

d h
h
E E+
E−
τm m = −m + ∑ gk (sk (t) − sk (t))
dt

(17)

k

h

if V (t) > VT then

h
Vi

← 0 during refractory period τref r .

where sk (t) are the spike trains produced by the previous layer neurons, and ξ is a stochastic Bernouilli
process with probability (1−p) (indices i, j are omitted for clarity). Each neuron is equipped with a plasticity
h
modulation compartment m following similar subthreshold dynamics as the membrane potential and where
16

s (t) is the spike train of the error-coding neurons and gj is a fixed random vector drawn independently
for each hidden neuron. The modulation compartment is not directly coupled to the membrane potential
h
E
V , but indirectly through the learning dynamics. For every hidden neuron i, ∑j wij = 0, ensuring that the
spontaneous firing rate of the error-coding neurons does not bias the learning. The synaptic weight dynamics
follow an error-modulated and membrane-gated rule:
E

E

d h
h
h
w ∝ m Θ(V )sj (t).
dt j

(18)

where Θ is a boxcar function with boundaries bmin and bmax and the proportionality factor is the learning
rate. Weight values were clipped to the range [−128, 127] (8 bits). To mitigate the adverse effect of low–
precision weights in gradient descent learning, we used randomized rounding where the first r = 6 bits of
∆w were interpreted as probability. Prediction neurons and associated synaptic weight updates follow the
same dynamics as the hidden neurons except for the modulation, where one-to-one connections with the
error neurons are formed (rather than random connections).
Error is encoded using two neurons, one encoding positive error E+, the other encoding negative error
E−. The positive error neuron dynamics are:
d E+
L
L+ P
= w (si (t) − si (t))
V
dt i
E+
E
E+
E+
E
if V
> VT then V
←V
− VT ,

(19)

where si (t) and si (t) are spike trains from the prediction neurons and labels. The membrane potential
is lower bounded to 0 to prevent negative activity to accumulate across trials. Each error neuron has one
L
negative counterpart neuron. Negative error neurons follow the exact same dynamics with w of opposite
sign. The firing rate of the error-coding neurons is proportional to a linear rectification of the inputs. For
−1
simplicity, the label spike train is regular with firing rate equal to τref r . When the prediction neurons classify
P
L
correctly, (si (t) − si (t)) ≅ 0, such that the error neurons remain silent.
Input spike trains were generated as Poisson spike trains with rate proportional to the intesenity of the pixel.
Label spikes were regular, i.e. spikes were spaced regularly with inter–spike interval equal to the refractory
period. All states were stored in 16 bit fixed point precision (ranging from −32768 to 32767), except for
synaptic weights which were stored with 8 bit precision (ranging from −128 to 127). To prevent the network
from learning (spurious) transitions between digits, the synaptic weights did not update in the first 400 ticks
of each digit presentation (1500 ticks).
We trained fully connected feed-forward networks MNIST hand-written digits, separated in three groups,
training, validation, and testing (50000, 10000, 10000 samples respectively). During a training epoch, each of
the training digits were presented in sequence during 150ms (Fig. 9). Although experiments here focused on
a single layer network, random back–propagation can be extended to networks with several layers, including
convolutional and pooling layers [9].
Consistent with previous findings, simulations of eRBP on NSAT in a quantized 784-100-10 network
show that eRBP still performs reasonably well under these conditions. To highlight the potential benefits of
the NSAT, we compare the number of synaptic operations (SynOp) necessary to reach a given classification
accuracy (Fig. 9(c)) to the number of multiply operations in standard artificial neural networks. Although
larger networks trained with eRBP were reported to achieve error rates as low as 2.02% [67], this NSAT
network with 100 hidden units converges to around 4% error. As two meaningful comparisons, we used one
artificial neural network with the same number of hidden units (100) and one with 30 hidden units. The
latter network was chosen to achieve similar peak accuracies as the simulated NSAT network. The artificial
neural network was trained using mini–batches and exact gradient back–propagation using TensorFlow (GPU
backend). As previously reported, up moderate classification accuracies (here 4%), the NSAT requires an
equal or fewer number of SynOps compared to MACs to reach a given accuracy for both networks. We note
here that only multiply operations in the matrix multiplications were taken into account in the artificial
network. Other operations such as additions, non–linearities were ignored, which would further favor NSAT
P

L

17

Figure 9: Training an MNIST network with event-driven Random Back–propagation compared to GPU
simulations (a-b) MNIST Classification error on the test set using a fully connected 784-100-10 network on
NSAT (8 bit fixed–point weights, 16 bits state components) and on GPU (TensorFlow, floating–point 32
bits). (c) Energy efficiency of learning in the NSAT (lower left is best). The number of operations necessary
to reach a given accuracy is lower or equal in the spiking neural network (NSAT–SynOps) compared to the
artificial neural network (GPU–MACs) for classification errors at or above 4% (d) Histogram of synaptic
weights of the NSAT network after training. One epoch equals a full presentation of the training set.
in this comparison. The smaller or equal number of operations, compounded with the fact that a SynOp
requires many fold less energy [58] makes a very strong argument for NSAT in terms of energy efficiency
for low to moderate accuracies. In summary, a standard computer (e.g. GPU) is the architecture of choice
if classification accuracy on a stationary dataset is the target, regardless of energy efficiency. However, if
real–time learning is necessary, or if the streaming data is non-stationary, our results suggest that NSAT
can outperform standard architectures in terms of energy efficiency at least by a factor equal to the achieved
J/MAC to J/SynOp ratio.

Unsupervised Representation Learning
Synaptic Sampling Machines (S2M) are a class of neural network models that use synaptic stochasticity as a
means to Monte Carlo sampling in Boltzmann machines [69]. Learning is achieved through event–driven Contrastive Divergence (eCD), a modulated STDP rule and event–based equivalent of the original Contrastive
Divergence rule [44]. Unsupervised learning in RBMs and S2Ms are useful for learning representations of
unlabeled data, and perform approximate probabilistic inference [44, 66, 69].
The NSAT synaptic plasticity dynamics are compatible with eCD under the condition that the refractory
period is larger than the STDP learning window in order to maintain weight symmetry. Here, we demonstrate on-line unsupervised learning implementing S2Ms in NSAT using the network architecture depicted
in Fig. 10(a). First we use two types of input neurons, excitatory and inhibitory (red and blue nodes in
Fig. 10(a), respectively). These are the external units that provide the inputs to the event-based Restricted
Boltzmann Machine (eRBM) visible units and their synaptic strengths are constant during learning. The
visible units (see Fig. 10(a)) are all–to–all connected with the hidden ones. Two modulatory units, one
excitatory and one inhibitory, are connected with the visible and hidden units (black and gray nodes in
Fig. 10(a)). The two modulatory units are active in an alternating way, providing an implementation for
the positive (only the excitatory unit is on) and the negative (only the inhibitory unit is active) phases of
the Contrastive Divergence rule.
In the S2M, weight updates are carried out even if a spike is dropped at the synapse. This speeds up
learning without adversely affecting the entire learning process because spikes dropped at the synapses are
valid samples in the sense of the sampling process. During the data phase, the visible units were driven with
−5
constant currents equal to the logit of the pixel intensity (bounded to the range [10 , 0.98] in order to avoid
infinitely large currents), plus a white noise process of low amplitude σ to simulate sensor noise.
We run the eRBM with eCD using single precision arithmetic (eRBMhp–integers of 16 and eRBM–8
18

Figure 10: Event–based Restricted Boltzmann Machine (eRBM). (a) Event–based RBM neural network
architecture. One excitatory and one inhibitory unit project on the visible units providing the input to the
eRBM. Two modulatory units project to all the visible and hidden units. (b) Training error over 300 epochs
for the eRBMhp (single precision, green triangles), eRBM (low precision, discs) and the classic RBM (blue
crosses). The orange solid line indicates the minimum acceptable error for all three different algorithms.
(c) Number of operations versus test error for the eRBMhp (single precision, green triangles, number of
synaptic operations), eRBM (low precision, discs, number of synaptic operations) and the classic RBM
(blue crosses, MACs). The orange dashed line indicates the minimum acceptable error for all three different
implementations. (d) Receptive fields (synaptic weights from visible to hidden units) of the RBM (double
precision, 64 bit), (e) eRBM (single precision, 32 bit), and (f) eRBM (low precision, 8 bit).

bits), as well as a classical RBM with batch size 32 samples as a reference, on the bars and stripes data
set [53]. Previous work has shown shown that, when pre–synaptic and post–synaptic neurons firing follow
Poisson statistics, eCD is equivalent to CD [66]. We trained eRBM and eRBMhp using 32 samples per epoch
and for 50 epochs. the RBM was trained using 1 batch of 32 samples and 3000 epochs (until it reaches a
similar error as the eRBM and eRBMhp did). At every epoch of the eRBM and the eRBMhp learning we run
a test on all 32 different samples and we measure the classification error (how many missed classifications).
For the RBM we run a test every 50 epochs. Figure 10(b) shows the test set error against the training
epochs. The eRBM (black discs) and eRBMhp (green triangles) approach the performance of the classical
RBM (blue crosses) faster. Figure 10(c) shows the test set error against the number of operations required
for each of the implementations to reach the minimum acceptable error (orange solid line). Similarly to
the supervised learning case, eRBM (black discs) and eRBMhp (green triangles) perform less or the same
number of operations (synaptic operations) with the classical RBM (MACs). The three panels Fig. 10(d), (e)
and (f) illustrate the synaptic weights (receptive fields) of hidden units for the RBM, eRBM and eRBMhp,
respectively. For all three implementations we used 100 hidden units and 18 visible ones. It is apparent
that the receptive fields are qualitatively similar among the three different implementations (for illustration
purposes we show only 64 out of 100 receptive fields).
The similarity of this S2M implementation with previous ones and the RBM suggest that NSAT is capable
of unsupervised learning for representation learning and approximate probabilistic inference at SynOp – MAC
parity.
19

Unsupervised Learning in Spike Trains
So far, the results have mostly focused on static data encoded in the firing rates of the neurons. The NSAT
learning rule is capable of learning to recognize patterns of spikes. Here we demonstrate a recently proposed
post-synaptic membrane potential dependent plasticity rule [86] for spike train learning. Unlike STDP, where
synaptic weights updates are computed based on spike timing of both pre– and post–synaptic neurons, this
rule triggers a weight update only on pre–synaptic spiking activity. The neuron and synapse dynamics are
governed by the following equations.
N

τm
τCa

dV
= −V + ∑ wj sj (t),
dt
j=1

(20a)

dCai
γ
= −Ca + w s(t),
dt

(20b)

where V is the membrane potential and Ca is the calcium concentration, wj is synaptic weight, γ the constant
increment of the calcium concentration, and sj (t), s(t) are the pre–synaptic and post–synaptic spike trains.
The synaptic weight update dynamics are given by the equations below:
Θm = δ(V (t) > Vlth )η+ − δ(V (t) < Vlth )η−
¯ − Ca),
mod = Θ − ηh (Ca

(21b)

∆wj = mod sj (t),

(21c)

(21a)

Vlth is the membrane threshold that determines LTP or LTD, η+ = 8 and η− = −2 the corresponding
¯ is a constant denoting the steady-state calcium concentration and ηh
magnitudes of LTP and LTD, Ca
magnitude of homeostasis.
These equations can be efficiently translated to the NSAT using four (4) components per neuron state.
Hence component x0 is the membrane potential Vmem , x1 the calcium concentration Cai , x2 the LTP/LTD
state based on thresholded membrane component x0 , and x3 represents the weight modulation (value by
which a weight will be updated). The first two state components follow exponential decay dynamics. State
components x2 and x3 are used to compute the effective weight updates based on the current value of
membrane potential and calcium concentration. This is done by exploiting the fact that, at any given point
in time, the weight update magnitude (if any) is given purely by the post synaptic states and is the same
for every incoming spike within one time step.
We demonstrate these dynamics in learning to identify a hidden spike pattern embedded in noisy spike
train. We use 100 input neurons projecting to 5 neurons. A randomly generated fixed spike pattern is
repeatedly presented, interspersed with random spike patterns of the same firing rate as Fig. 11(a) top raster
plot indicates. The initial weights were randomly initialized from a uniform distribution. Over time the
synaptic weights converge such that the post–synaptic neurons (indexed 1–5, black line segments in the
bottom raster plot of Fig. 11(a)) selectively spike only on presentation of the spike pattern as Fig. 11(a)
bottom raster plot illustrates. The temporal evolution of four components dynamics of the second neuron’s
state are given in Fig. 11(c)–(f).
This particular learning rule is suitable for hardware implementation as it has been already shown [86]
and it accounts for unsupervised temporal learning. Here, we have shown how the NSAT framework can
implement such an algorithm and individual neurons learn in an unsupervised way to detect spatiotemporal
spike patterns.

Discussion
We introduced a neuromorphic computing platform and framework, called Neural and Synaptic Array
Transceiver (NSAT), that is able to provide flexible and dynamic learning (on-line) well suited for efficient digital implementation. The NSAT is based on a linear integrate-and-fire neuron model with multiple
20

Figure 11: Unsupervised Learning of Spike Patterns. (a) On top is a raster plot of 100 input spike trains
(pre-synaptic neurons) projecting to 5 post-synaptic neurons. The main goal here is the post-synaptic neurons
to learn a hidden spike pattern indicating by the blue vertical bars. The bottom raster plot shows 5 postsynaptic neurons firing when they have learned the hidden spatiotemporal spike pattern. (b) Indicates the
+
membrane potential (Vm [t]) of the second post-synaptic neuron, (c) its calcium concentration ([Ca ][t]),
(d) LTP/LTD state based on thresholded membrane potential, and (e) its weight modulation over time.

neural states components rendering it flexible in many aspects. As with existing neuromorphic systems,
only (digital) spike events are communicated across cores and between cores using an event-based routing
system. For reasons related to efficiency in projected digital hardware implementations, the proposed framework operates using fixed–point representation. In addition, all the multiplications are implemented as bit
shift operations, i.e multiplications by powers of two. These operations are many-fold more power-efficient
compared to floating-point multiply accumulates implemented in digital CMOS [45].
In this work, we demonstrated the capabilities of NSAT by showing first that neuron models with rich
behavior such as the Mihalas-Niebur neuron [60] can be implemented, with comparable spiking dynamics
[60]. Next, we demonstrated the simulation of neural field models [3, 14, 21]. We demonstrated three core
neural field behaviors, (i) a stationary “bump” solution (winner-take-all, working memory), (ii) an actionselection process where the neural field chooses between two input signals, and (iii) a target tracking task,
where the neural field tracks a moving target. These neural field behaviors form the backbone of many
computational models using neural field, such as movement [30], pattern generation [84], soft state machines
[65] and navigation [61].
NSAT is capable of on-line, event-based learning in supervised and unsupervised settings. The implementation of these learning algorithms is a significant achievement, as most machine learning algorithms rely on
network-wide information and batch learning. In contrast to machine learning algorithms implemented in
standard computers, the NSAT learning is based on information that is locally available at the neuron, i.e. 1)
neurons only read weights on their own synapses, 2) they communicate through all-or-none events (spikes),
and 3) their elementary operations are limited to highly efficient multi–compartment integrate–and–fire.
Such implementations can be more scalable compared to their Von Neumann counterparts since the access
21

to system-wide information funnels through the von Neumann bottleneck, which dictates the fundamental
limits of the computing substrate.
Learning is achieved using three-factor, spike-driven learning rules, i.e. where the third factor modulates the plasticity, in addition to a programmable STDP-like learning rule [72]. In the NSAT, the third,
modulating factor is one of the state components of the neuron. The use of a neural state component as a
third factor is justified by the fact that gradient descent learning rules in spiking neurons often mirror the
dynamics of the neurons and synapses [74, 103], while being addressable by other neurons in the network for
error-driven or reward-driven learning. Three factor rules are thus highly flexible and can support multiple
different learning rules on a single neuron, thereby enabling the same neuron model to be programmed for
supervised, unsupervised and reinforcement learning.
Building on previous work, we demonstrated three specific algorithms: 1) event-based deep learning
using and event-based Random Back-propagation algorithm for supervised settings, a Contrastive-Divergence
algorithm used to train a Restricted Boltzmann Machine implemented on NSAT for unsupervised settings
and a Voltage-based learning rule for spike-based sequence learning.
Embedded learning algorithms are necessary components for real-time (on-chip) learning, which can confer adaptability in uncontrolled environments and more fine-grained context awareness in behaving cognitive
agents. This makes NSAT suitable for environments where data are not available a priori but are instead
streamed in real–time to the device, i.e. using event-based sensors [52].
The NSAT computes with limited numerical precision of neural network states parameters. Often, artificial neural networks require higher precision parameters to average out noise and ambiguities in real-world
data (e.g. stochastic gradient descent) [22, 93], and introduce challenges at all levels of implementation [7, 46].
The NSAT framework mitigates the effect of low precision using a discretized version of randomized rounding
[63], where a programmable number of bits are interpreted as update probability. The randomized rounding
has been demonstrated in the event-based random back propagation algorithm [70], a model that is sensitive to weight precision. We find that the networks perform quite well even when the synaptic weights are
bounded to 256 levels (8 bits precision).
Under the selected specification, large-scale hardware implementation of NSAT is well within reach of current memory technology and can guide (and benefit from) the development of emerging memory technologies
[78, 32, 62, 64].
While we cannot provide direct energy comparisons at this stage, our results consistently highlight a
SynOp to MAC parity in learning tasks, i.e. the number of operations required to reach a given proficiency.
The significance of this parity is that the SynOp requires manyfold less energy in reported large-scale neuromorphic implementations [58] compared to equivalent algorithms implemented on standard computers and
GPUs. Thus, learning in NSAT is potentially more power efficient compared to standard architectures by a
factor at least equal to the ratio J/MAC to J/SynOp, while achieving comparable accuracies.

Relation to State-of-the-Art and Other Research
Several research groups investigated brain-inspired computing as an alternative to non-von Neumann computing and as a tool for understanding the mechanisms by which the brain computes.
IBM’s TrueNorth delivered impressive machine learning implementations in terms of power [33]. TrueNorth’s
domain of application is limited to off-line learning, partly to be able to meet targeted design specifications,
and partly due to the lack of suitable learning algorithms. Possibly due to similar reasons, TrueNorth is also
limited in the scope of its temporal dynamics, which constrains it in large part to feed–forward networks
(but see [26]).
On-chip spike-driven, bistable learning rules were successfully demonstrated in mixed signal neuromorphic
hardware [18, 77]. Also, significant effort has gone into learning in digital systems [98]: Earlier prototypes
of IBM’s TrueNorth [85] also demonstrated the feasibility of low-power embedded learning using STDP,
and evolutionary algorithms were recently applied to FPGA-based spiking neural networks [24]. Stanford’s
Neurogrid team was among the first to demonstrate STDP learning in mixed-signal neuromorphic hardware
[6]. Other related neuromorphic projects on learning with neuromorphic hardware are the SpiNNaker [36]
and BrainScales [82], as part of the Human Brain Project. SpiNNaker is a parallel multi-core computer
22

architecture composed of half million ARM968 processors (each core is capable of simulating 1, 000 neurons)
providing a massive implementation of spiking neural networks. The BrainScales project and their subsequent
developments are based on an analog neuromorphic chip, with its main functional blocks consisting of timeaccelerated leaky integrate–and–fire neurons [1]. There, the proposed learning rule is a hybrid implementation
using an on-chip SIMD processor programmable with a range of modulated STDP rules [35]. Both projects
are targeted to accelerating simulations of biological neural networks, using technologies that favor speed
over compactness and/or power. In contrast, the NSAT design favors compactness and power over speed, and
targets application-oriented, flexible, ultra low-power neural and synaptic dynamics for real-time learning
tasks.
From the design perspective, the NSAT framework is closest to the TrueNorth ecosystem, but adds on-line
learning capabilities and inference dynamics that are compatible with some existing event-based learning
dynamics. For instance, NSAT allows for programmable weights and stochastic synapses, a combination
that has been shown to be extremely successful in both unsupervised and supervised learning settings.
We believe that the algorithmic-driven design of the NSAT framework, combined with the provided opensource implementation will engage the research community to further investigate brain-inspired, event-based
machine learning algorithms.

NSAT Software Developments
The software stack is a critical component to interface between the majority of potential end-users and the
NSAT framework. Our software development efforts are targeted to providing a general purpose framework
for Computational Neuroscience and Machine Learning applications that combines the power of machine
3
learning frameworks (such as TensorFlow [2], Neon ) and neuromorphic hardware network description (e.g.
pyNCS [90], TrueNorth Corelet [4]). To this end, we are expanding the software for automatic network
generation in deep neural network-like scenarios (e.g. automatic differentiation). Such a software stack
will enable end users to simulate neural networks (artificial, spiking or compartmental and even firing rate
models) without knowledge of NSAT’s technical details.
In this article, we briefly introduced PyNSAT, an interface for our NSAT software implementation that
can serve as an Application Programming Interface (API) for the NSAT framework. PyNSAT offers a rapid
way to program and use the NSAT framework through the Python environment, thereby leveraging the
wide capabilities of Python’s application ecosystem. Current developments of pyNSAT are targeting proofof-concept approaches for network synthesis in machine learning applications, in-line with existing machine
learning libraries such as Keras (Tensorflow) or Neon.

References
[1] Syed Ahmed Aamir, Paul Müller, Andreas Hartel, Johannes Schemmel, and Karlheinz Meier. A highly
tunable 65-nm cmos lif neuron for a large scale neuromorphic system. In European Solid-State Circuits
Conference, ESSCIRC Conference 2016: 42nd, pages 71–74. IEEE, 2016.
[2] Martı́n Abadi, Paul Barham, Jianmin Chen, Zhifeng Chen, Andy Davis, Jeffrey Dean, Matthieu Devin,
Sanjay Ghemawat, Geoffrey Irving, Michael Isard, et al. Tensorflow: A system for large-scale machine
learning. In Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI). Savannah, Georgia, USA, 2016.
[3] Shun-ichi Amari. Dynamics of pattern formation in lateral-inhibition type neural fields. Biological
cybernetics, 27(2):77–87, 1977.
[4] Arnon Amir, Pallab Datta, William P Risk, Andrew S Cassidy, Jeffrey A Kusnitz, Steve K Esser,
Alexander Andreopoulos, Theodore M Wong, Myron Flickner, Rodrigo Alvarez-Icaza, et al. Cognitive
3

https://neon.nervanasys.com/index.html/

23

computing programming paradigm: a corelet language for composing networks of neurosynaptic cores.
In Neural Networks (IJCNN), The 2013 International Joint Conference on, pages 1–10. IEEE, 2013.
[5] L. A. Anderson, G. B. Christianson, and J. F. Linden. Stimulus-specific adaptation occurs in the
auditory thalamus. Journal of Neuroscience, 29:7359–7363, 2009.
[6] J. Arthur and K. Boahen. Learning in silicon: Timing is everything. In Y. Weiss, B. Schölkopf, and
J. Platt, editors, Advances in Neural Information Processing Systems 18. MIT Press, Cambridge, MA,
USA, 2006.
[7] R.M. Azghadi, N. Iannella, S.F. Al-Sarawi, G. Indiveri, and D. Abbott. Spike-based synaptic plasticity
in silicon: design, implementation, application, and challenges. Proceedings of the IEEE, 102(5):717–
737, 2014.
[8] John Backus. Can programming be liberated from the von neumann style?: a functional style and its
algebra of programs. Communications of the ACM, 21(8):613–641, 1978.
[9] P. Baldi, P. Sadowski, and Zhiqin Lu. Learning in the machine: Random backpropagation and the
learning channel. arXiv preprint arXiv:1612.02734, 2016.
[10] P. Baldi and P. J Sadowski. Understanding dropout. In Advances in Neural Information Processing
Systems, pages 2814–2822, 2013.
[11] Ben Varkey Benjamin, Peiran Gao, Emmett McQuinn, Swadesh Choudhary, Anand R Chandrasekaran,
Jean-Marie Bussat, Rodrigo Alvarez-Icaza, John V Arthur, Paul A Merolla, and Kwabena Boahen.
Neurogrid: A mixed-analog-digital multichip system for large-scale neural simulations. Proceedings of
the IEEE, 102(5):699–716, 2014.
[12] Guo-qiang Bi and Mu-ming Poo. Synaptic modifications in cultured hippocampal neurons: dependence on spike timing, synaptic strength, and postsynaptic cell type. The Journal of neuroscience,
18(24):10464–10472, 1998.
[13] George EP Box, Mervin E Muller, et al. A note on the generation of random normal deviates. The
annals of mathematical statistics, 29(2):610–611, 1958.
[14] Paul C Bressloff. Spatiotemporal dynamics of continuum neural fields. Journal of Physics A: Mathematical and Theoretical, 45(3):033001, 2011.
[15] Mauricio Cerda and Bernard Girau. Asymmetry in neural fields: a spatiotemporal encoding mechanism. Biological cybernetics, 107(2):161–178, 2013.
[16] Zetao Chen, Obadiah Lam, Adam Jacobson, and Michael Milford. Convolutional neural network-based
place recognition. arXiv preprint arXiv:1411.1509, 2014.
[17] Sylvain Chevallier and Philippe Tarroux. Visual focus with spiking neurons. In European Symposium
on Artificial Neural Networks, pages 385–389. d-side, 2008.
[18] E. Chicca, M. Nawrot, and M. Schmuker. Neuromorphic sensors, olfaction. Encyclopedia of Computational Neuroscience, 2014.
[19] Claudia Clopath, Lars Büsing, Eleni Vasilaki, and Wulfram Gerstner. Connectivity reflects coding: a
model of voltage-based stdp with homeostasis. Nature neuroscience, 13(3):344–352, 2010.
[20] Stephen Coombes. Waves, bumps, and patterns in neural field theories. Biological cybernetics, 93(2):91–
108, 2005.
[21] Stephen Coombes, Peter beim Graben, Roland Potthast, and James Wright. Neural Fields. Springer,
2014.
24

[22] Matthieu Courbariaux, Yoshua Bengio, and Jean-Pierre David. Low precision arithmetic for deep
learning. arXiv preprint arXiv:1412.7024, 2014.
[23] Benoı̂t Chappet de Vangel, Cesar Torres-Huitzil, and Bernard Girau. Stochastic and asynchronous
spiking dynamic neural fields. In Neural Networks (IJCNN), 2015 International Joint Conference on,
pages 1–8. IEEE, 2015.
[24] Mark E Dean, Catherine D Schuman, and J Douglas Birdwell. Dynamic adaptive neural network
array. In International Conference on Unconventional Computation and Natural Computation, pages
129–141. Springer, 2014.
[25] S.R. Deiss, R.J. Douglas, and A.M. Whatley. A pulse-coded communications infrastructure for neuromorphic systems. In W. Maass and C.M. Bishop, editors, Pulsed Neural Networks, chapter 6, pages
157–78. MIT Press, 1998.
[26] Peter U Diehl, Guido Zarrella, Andrew Cassidy, Bruno Pedroni, and Emre Neftci. Conversion of
artificial recurrent neural networks to spiking neural networks for low-power neuromorphic hardware.
In International Conference on Rebooting Computation (ICRC), 2016, Oct 2016. (accepted at ICRC
2016).
[27] Kenji Doya. What are the computations of the cerebellum, the basal ganglia and the cerebral cortex?
Neural networks, 12(7):961–974, 1999.
[28] S Dreyfus. The computational solution of optimal control problems with time lag. IEEE Transactions
on Automatic Control, 18(4):383–385, 1973.
[29] C. Eliasmith, T.C. Stewart, X. Choo, T. Bekolay, T. DeWolf, Y. Tang, and D. Rasmussen. A large-scale
model of the functioning brain. Science, 338(6111):1202–1205, 2012.
[30] W. Erlhagen and G. Schöner. Dynamic field theory of movement preparation. Psychological Review,
109:545–572, 2002.
[31] G Bard Ermentrout and David H Terman. Firing rate models. In Mathematical Foundations of
Neuroscience, pages 331–367. Springer, 2010.
[32] Sukru Burc Eryilmaz, Siddharth Joshi, Emre Neftci, Weier Wan, Gert Cauwenberghs, and H-S Philip
Wong. Neuromorphic architectures with electronic synapses. 2016. (Accepted).
[33] S.K. Esser, R. Appuswamy, P. Merolla, J.V. Arthur, and D.S. Modha. Backpropagation for energyefficient neuromorphic computing. In Advances in Neural Information Processing Systems, pages 1117–
1125, 2015.
[34] Steven K Esser, Paul A Merolla, John V Arthur, Andrew S Cassidy, Rathinakumar Appuswamy,
Alexander Andreopoulos, David J Berg, Jeffrey L McKinstry, Timothy Melano, Davis R Barch, et al.
Convolutional networks for fast, energy-efficient neuromorphic computing. PNAS, 113:11441–11446,
2016.
[35] Simon Friedmann, Johannes Schemmel, Andreas Grübl, Andreas Hartel, Matthias Hock, and Karlheinz
Meier. Demonstrating hybrid learning in a flexible neuromorphic hardware system. IEEE transactions
on biomedical circuits and systems, 11(1):128–142, 2017.
[36] Steve B Furber, Francesco Galluppi, Sally Temple, Luis Plana, et al. The spinnaker project. Proceedings
of the IEEE, 102(5):652–665, 2014.
[37] Steve B Furber, Francesco Galluppi, Steve Temple, and Luis A Plana. The spinnaker project. Proceedings of the IEEE, 102(5):652–665, 2014.
25

[38] Wulfram Gerstner and Werner M Kistler. Spiking neuron models: Single neurons, populations, plasticity. Cambridge university press, 2002.
[39] Robert B Glassman. An hypothesis about redundancy and reliability in the brains of higher species:
Analogies with genes, internal organs, and engineering systems. Neuroscience & Biobehavioral Reviews,
11(3):275–285, 1987.
[40] Vinayak Gokhale, Jonghoon Jin, Aysegul Dundar, Ben Martini, and Eugenio Culurciello. A 240 g-ops/s
mobile coprocessor for deep neural networks. In Computer Vision and Pattern Recognition Workshops
(CVPRW), 2014 IEEE Conference on, pages 696–701. IEEE, 2014.
[41] Michael Graupner and Nicolas Brunel. Calcium-based plasticity model explains sensitivity of synaptic
changes to spike pattern, rate, and dendritic location. Proceedings of the National Academy of Sciences,
109(10):3991–3996, 2012.
[42] Simon S Haykin. Neural networks: a comprehensive foundation. Tsinghua University Press, 2001.
[43] Donald Olding Hebb. The organization of behavior: A neuropsychological theory. Psychology Press,
2005.
[44] Geoffrey E Hinton. Training products of experts by minimizing contrastive divergence. Neural computation, 14(8):1771–1800, 2002.
[45] M. Horowitz. 1.1 computing’s energy problem (and what we can do about it). In 2014 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC), pages 10–14. IEEE,
2014.
[46] Giacomo Indiveri and Shih-Chii Liu. Memory and information processing in neuromorphic systems.
Proceedings of the IEEE, 103(8):1379–1397, 2015.
[47] S. Joshi, S. Deiss, M. Arnold, J. Park, T. Yu, and G. Cauwenberghs. Scalable event routing in
hierarchical neural array architecture with global synaptic connectivity. In Cellular Nanoscale Networks
and Their Applications (CNNA), 2010 12th International Workshop on, pages 1–6. IEEE, 2010.
[48] Xavier Lagorce and Ryad Benosman. Stick: Spike time interval computational kernel, a framework for
general purpose computation using neurons, precise timing, delays, and synchrony. Neural computation,
2015.
[49] Dong-Hyun Lee, Saizheng Zhang, Antoine Biard, and Yoshua Bengio. Target propagation. arXiv
preprint arXiv:1412.7525, 2014.
[50] Qianli Liao, Joel Z Leibo, and Tomaso Poggio. How important is weight symmetry in backpropagation?
arXiv preprint arXiv:1510.05067, 2015.
[51] Timothy P Lillicrap, Daniel Cownden, Douglas B Tweed, and Colin J Akerman. Random synaptic
feedback weights support error backpropagation for deep learning. Nature Communications, 7, 2016.
[52] S.-C. Liu and T. Delbruck.
20(3):288–295, 2010.

Neuromorphic sensory systems.

Current Opinion in Neurobiology,

[53] David JC MacKay. Information theory, inference, and learning algorithms, volume 7. Citeseer, 2003.
[54] H Markram, W Gerstner, and PJ Sjöström. Spike-timing-dependent plasticity: a comprehensive
overview. Front Synaptic Neurosci, 4:8, 2012.
[55] Carver Mead and Mohammed Ismail. Analog VLSI implementation of neural systems, volume 80.
Springer Science & Business Media, 2012.
26

[56] Samir Menon, Sam Fok, Alex Neckar, Oussama Khatib, and Kwabena Boahen. Controlling articulated
robots in task-space with spiking silicon neurons. In 5th IEEE RAS/EMBS International Conference
on Biomedical Robotics and Biomechatronics, pages 181–186. IEEE, 2014.
[57] Paul A Merolla, John V Arthur, Rodrigo Alvarez-Icaza, Andrew S Cassidy, Jun Sawada, Filipp
Akopyan, Bryan L Jackson, Nabil Imam, Chen Guo, Yutaka Nakamura, et al. A million spiking-neuron
integrated circuit with a scalable communication network and interface. Science, 345(6197):668–673,
2014.
[58] Paul A Merolla, John V Arthur, Rodrigo Alvarez-Icaza, Andrew S Cassidy, Jun Sawada, Filipp
Akopyan, Bryan L Jackson, Nabil Imam, Chen Guo, Yutaka Nakamura, et al. A million spiking-neuron
integrated circuit with a scalable communication network and interface. Science, 345(6197):668–673,
2014.
[59] S. Mihalas and E. Niebur. A generalized linear integrate-and-fire neural model produces diverse spiking
behavior. Neural Computation, 21:704–718, 2009.
[60] Stefan Mihalas and Ernst Niebur. A generalized linear integrate-and-fire neural model produces diverse
spiking behaviors. Neural computation, 21(3):704–718, 2009.
[61] Moritz B Milde, Hermann Blum, Alexander Dietmüller, Dora Sumislawska, Jörg Conradt, Giacomo
Indiveri, and Yulia Sandamirskaya. Obstacle avoidance and target acquisition for robot navigation
using a mixed signal analog/digital neuromorphic processing system. Frontiers in neurorobotics, 11,
2017.
[62] Hesham Mostafa, Ali Khiat, Alexander Serb, Christian G Mayr, Giacomo Indiveri, and Themis Prodromakis. Implementation of a spike-based perceptron learning rule using tio2- x memristors. Frontiers
in neuroscience, 9, 2015.
[63] Lorenz K Muller and Giacomo Indiveri. Rounding methods for neural networks with low resolution
synaptic weights. arXiv preprint arXiv:1504.05767, 2015.
[64] R. Naous, M. Al-Shedivat, and K. N. Salama. Stochasticity modeling in memristors. IEEE Transactions
on Nanotechnology, 15(1):15–28, Jan 2016.
[65] E. Neftci, S. Das, B. Pedroni, K. Kreutz-Delgado, and G Cauwenberghs. Restricted boltzmann machines and continuous-time contrastive divergence in spiking neuromorphic systems, May 2013.
[66] E. Neftci, S. Das, B. Pedroni, K. Kreutz-Delgado, and G. Cauwenberghs. Event-driven contrastive
divergence for spiking neuromorphic systems. Frontiers in Neuroscience, 7(272), Jan. 2014.
[67] Emre Neftci, Charles Augustine, Somnath Paul, and Georgios Detorakis. Event-driven random backpropagation: Enabling neuromorphic deep learning machines. Frontiers in Neuroscience, May 2017.
Accepted.
[68] Emre O Neftci, Bruno U Pedroni, Siddharth Joshi, Maruan Al-Shedivat, and Gert Cauwenberghs.
Unsupervised learning in synaptic sampling machines. arXiv preprint arXiv:1511.04484, 2015.
[69] Emre O Neftci, Bruno Umbria Pedroni, Siddharth Joshi, Maruan Al-Shedivat, and Gert Cauwenberghs. Stochastic synapses enable efficient brain-inspired learning machines. Frontiers in Neuroscience, 10(241), 2016.
[70] Emre O Neftci, Bruno Umbria Pedroni, Siddharth Joshi, Maruan Al-Shedivat, and Gert Cauwenberghs. Stochastic synapses enable efficient brain-inspired learning machines. Frontiers in Neuroscience, 10(241), 2016.
27

[71] J. Park, T. Yu, S. Joshi, C. Maier, and G. Cauwenberghs. Hierarchical address event routing for
reconfigurable large-scale neuromorphic systems. IEEE Transactions on Neural Networks and Learning
Systems, 28(10):2408–2422, 2017.
[72] Bruno U Pedroni, Sadique Sheik, Siddharth Joshi, Georgios Detorakis, Somnath Paul, Charles Augustine, Emre Neftci, and Gert Cauwenberghs. Forward table-based presynaptic event-triggered spiketiming-dependent plasticity. arXiv preprint arXiv:1607.03070, 2016.
[73] Thomas Pfeil, A. Grübl, Sebastian Jeltsch, Eric Müller, Paul Müller, Mihai A Petrovici, Michael
Schmuker, D. Brüderle, Johannes Schemmel, and Karlheinz Meier. Six networks on a universal neuromorphic computing substrate. Frontiers in neuroscience, 7, 2013.
[74] Jean-Pascal Pfister, Taro Toyoizumi, David Barber, and Wulfram Gerstner. Optimal spike-timingdependent plasticity for precise action potential firing in supervised learning. Neural computation,
18(6):1318–1348, 2006.
[75] Eugene J Putzer. Avoiding the jordan canonical form in the discussion of linear systems with constant
coefficients. The American Mathematical Monthly, 73(1):2–7, 1966.
[76] Ning Qiao, Hesham Mostafa, Federico Corradi, Marc Osswald, Fabio Stefanini, Dora Sumislawska, and
Giacomo Indiveri. A reconfigurable on-line learning spiking neuromorphic processor comprising 256
neurons and 128k synapses. Frontiers in neuroscience, 9:141, 2015.
[77] Ning Qiao, Hesham Mostafa, Federico Corradi, Marc Osswald, Fabio Stefanini, Dora Sumislawska, and
Giacomo Indiveri. A reconfigurable on-line learning spiking neuromorphic processor comprising 256
neurons and 128k synapses. Frontiers in neuroscience, 9, 2015.
[78] Damien Querlioz, Olivier Bichler, Adrien Francis Vincent, and Christian Gamrat. Bioinspired programming of memory devices for implementing an inference engine. Proceedings of the IEEE, 103(8):1398–
1416, 2015.
[79] Dennis M Ritchie, Brian W Kernighan, and Michael E Lesk. The C programming language. Prentice
Hall Englewood Cliffs, 1988.
[80] David E Rumelhart, Geoffrey E Hinton, and Ronald J Williams. Learning representations by backpropagating errors. Cognitive modeling, 5(3):1, 1988.
[81] Yulia Sandamirskaya. Dynamic neural fields as a step toward cognitive neuromorphic architectures.
Frontiers in Neuroscience, 7, 2013.
[82] J. Schemmel, D. Brüderle, A. Grübl, M. Hock, K. Meier, and S. Millner. A wafer-scale neuromorphic
hardware system for large-scale neural modeling. In International Symposium on Circuits and Systems,
ISCAS 2010, pages 1947–1950. IEEE, 2010.
[83] Johannes Schemmel, Daniel Briiderle, Andreas Griibl, Matthias Hock, Karlheinz Meier, and Sebastian
Millner. A wafer-scale neuromorphic hardware system for large-scale neural modeling. In Proceedings
of 2010 IEEE International Symposium on Circuits and Systems, pages 1947–1950. IEEE, 2010.
[84] Gregor Schoner and JA Kelso. Dynamic pattern generation in behavioral and neural systems. Science,
239(4847):1513–1520, 1988.
[85] Jae-sun Seo, Bernard Brezzo, Yong Liu, Benjamin D Parker, Steven K Esser, Robert K Montoye, Bipin
Rajendran, José A Tierno, Leland Chang, Dharmendra S Modha, et al. A 45nm cmos neuromorphic
chip with a scalable architecture for learning in networks of spiking neurons. In 2011 IEEE Custom
Integrated Circuits Conference (CICC), pages 1–4. IEEE, 2011.
28

[86] S. Sheik, S. Paul, C. Augustine, C. Kothapalli, and G. Cauwenberghs. Membrane-dependent neuromorphic learning rule for unsupervised spike pattern detection. In BioMedical Circuits and Systems,
(BioCAS), 2016. IEEE, Oct 2016.
[87] Harel Z Shouval, Mark F Bear, and Leon N Cooper. A unified model of nmda receptor-dependent
bidirectional synaptic plasticity. Proceedings of the National Academy of Sciences, 99(16):10831–10836,
2002.
[88] P Jesper Sjöström, Ede A Rancz, Arnd Roth, and Michael Häusser. Dendritic excitability and synaptic
plasticity. Physiological reviews, 88(2):769–840, 2008.
[89] Nitish Srivastava, Geoffrey E Hinton, Alex Krizhevsky, Ilya Sutskever, and Ruslan Salakhutdinov.
Dropout: a simple way to prevent neural networks from overfitting. Journal of Machine Learning
Research, 15(1):1929–1958, 2014.
[90] F. Stefanini, E. Neftci, S. Sheik, and G. Indiveri. Pyncs: a kernel for high-level configuration and
definition of neuromorphic electronic systems. Frontiers in Neuroinformatics, 8, Jul 2014. (equal
contrib. FS, EN, SS).
[91] Fabio Stefanini, Emre O Neftci, Sadique Sheik, and Giacomo Indiveri. Pyncs: a microkernel for highlevel definition and configuration of neuromorphic electronic systems. Frontiers in neuroinformatics,
8:73, 2014.
[92] Peter Sterling and Simon Laughlin. Principles of neural design. MIT Press, 2015.
[93] Evangelos Stromatias, Daniel Neil, Michael Pfeiffer, Francesco Galluppi, Steve B Furber, and Shih-Chii
Liu. Robustness of spiking deep belief networks to noise and reduced bit precision of neuro-inspired
hardware platforms. Frontiers in neuroscience, 9, 2015.
[94] Thomas E Tkacik. A hardware random number generator. In International Workshop on Cryptographic
hardware and embedded systems, pages 450–453. Springer, 2002.
[95] Robert Urbanczik and Walter Senn. Learning by the dendritic prediction of somatic spiking. Neuron,
81(3):521–528, 2014.
[96] Robert Urbanczik and Walter Senn. Learning by the dendritic prediction of somatic spiking. Neuron,
81(3):521–528, 2014.
[97] Roberto A Vazquez, Bernard Girau, and Jean-Charles Quinton. Visual attention using spiking neural
maps. In Neural Networks (IJCNN), The 2011 International Joint Conference on, pages 2164–2171.
IEEE, 2011.
[98] Swagath Venkataramani, Ashish Ranjan, Kaushik Roy, and Anand Raghunathan. Axnn: energyefficient neuromorphic systems using approximate computing. In Proceedings of the 2014 international
symposium on Low power electronics and design, pages 27–32. ACM, 2014.
[99] Julien Vitay and Nicolas Rougier. Using neural dynamics to switch attention. In Neural Networks,
2005. IJCNN’05. Proceedings. 2005 IEEE International Joint Conference on, volume 5, pages 2891–
2896. IEEE, 2005.
[100] R Jacob Vogelstein, Francesco Tenore, Ralf Philipp, Miriam S Adlerstein, David H Goldberg, and
Gert Cauwenberghs. Spike timing-dependent plasticity in the address domain. In Advances in Neural
Information Processing Systems, pages 1147–1154, 2002.
[101] Li Wan, Matthew Zeiler, Sixin Zhang, Yann L Cun, and Rob Fergus. Regularization of neural networks
using dropconnect. In Proceedings of the 30th International Conference on Machine Learning (ICML13), pages 1058–1066, 2013.
29

[102] Paul Werbos. Beyond regression: New tools for prediction and analysis in the behavioral sciences.
1974.
[103] Friedemann Zenke and Surya Ganguli. Superspike: Supervised learning in multi-layer spiking neural
networks. arXiv preprint arXiv:1705.11146, 2017.

Acknowledgements
This material is based upon work supported by the National Science Foundation under Grant No. 1652159
“CAREER: Scalable Neuromorphic Learning Machines,” and by Intel Corporation through the “Architectures for Neuromorphic Computing” Strategic Research Alliance.

Author contributions statement
GD wrote the NSAT software; GD, SS and EN conceived the experiment; GD, SS and EN conducted the
experiment; GD, SS and EN analyzed the results; all authors wrote and reviewed the manuscript.

30

