The Chip: Neurocore
Creating and simulating cortical models on Neurogrid is straightforward. You describe your neural model by writing a Python script: Assigning each of Neurogrid's sixteen Neurocores to model a different cortical layer (or cell-type); tailoring its silicon neurons to emulate that cell-population's ion-channel repertoire; and routing its softwires to match their synaptic connectivity. You visualize the simulation results—and change parameters interactively—using a GUI: Selecting a single cell to plot its membrane voltage; choosing an entire layer to raster its spike activity; or examining any level of complexity in between. All with a few mouse clicks. Now you no longer have to dream of simulating a million cortical neurons in real-time!
A gating-variable pair can be multiplied or summed, modeling one or two ion-channel populations with second- or first-order kinetics, respectively.
With 6 graded and 2 binary programmable parameters, Neurogrid’s ion-channels can model a rich variety of spiking patterns. Ion-channels endow a neuron with its repertoire, which can include bursting and bistability. They influence how inputs are filtered by changing their conductance in response to the dendritic potential. Activating or inactivating in a sigmoidal manner, as dictated by a gating variable, Neurogrid's have a programmable voltage threshold, potency (maximum conductance), reversal potential (excitatory or inhibitory), and temporal response (fast or slow). Each Neurogrid neuron has four independently programmable gating variables—except that each is paired with another that shares the same reversal potential.
Synapses can set a gating-variable's maximum conductance and such gating-variables can be multiplied, modeling NMDA receptors and cholinergic modulation, respectively.
With 5 graded and 3 binary programmable parameters, Neurogrid's synapses can model a rich variety of neuronal interactions. Synapses are the neuron’s input, exciting, inhibiting, or shunting its activity by increasing their conductances transiently in response to spikes from other neurons. Turning on and off in an exponential manner, as dictated by a low-pass filter, Neurogrid's have a programmable rise-time (neurotransmitter pulse-width), fall-time (filter time-constant), potency (maximum conductance), and reversal potential (excitatory, inhibitory, or anything in between). A single low-pass filter models an entire population of biological synapses—summating their post-synaptic conductances—much as a single gating-variable models an entire population of ion-channels. Each Neurogrid neuron has four independently programmable low-pass filters that model up to four distinct synapse populations. They can be configured to drive the soma or the dendrite, or to set an ion-channel population's maximum conductance (voltage-gated). Altogether, a Neurogrid neuron has 61 graded and 18 binary programmable parameters—common to all 65,536 silicon neurons in that Neurocore.
John Arthur designed the neuron; Paul Merolla designed the router; Anand Chandrasekaran designed the serializer/deserializer and ADC; Chris Sauer designed the bias-generator and DAC; Kwabena Boahen designed the pads; Jean-Marie Bussat compiled the core; and Rodrigo Alvarez compiled the crust.