A TrueNorth program is a complete specification of the
anatomy and physiology of a network of neurosynaptic cores
that identifies all external inputs and outputs of the network.
Abstractions, algorithms, and applications that are efficient for
the von Neumann architecture are not necessarily efficient for
the non-von Neumann TrueNorth architecture. Therefore, we
are unable to directly leverage the rich heritage of design,
development, and deployment of the former and instead are
compelled to seek a new way of thinking that is custom tailored
to the latter. Specifically, to write good TrueNorth programs,
three concrete challenges must be overcome. First, one must
learn to program a parallel, distributed, event-driven architecture
that uses spikes, has discrete-valued synapses, allows each
neuron to receive inputs from at most 256 axons, requires that
all 256 neurons on a neurosynaptic core must receive input
from a receptive field of the same 256 axons, and allows each
neuron to transmit spikes to at most one axon line, providing