Technologies are provided for implementing temporal and spatio-temporal spiking neural networks (SNNs) using neuromorphic hardware devices. Temporal synapse circuits, with associated weight values, can be used to control spike times of connected neuron circuits. The controlled spike times of multiple neuron circuits can be used to temporally encode information in a neural network in neuromorphic hardware. Neuron circuits in a state space detection layer can be organized into multiple subsets. Neuron circuits in different subsets can be connected to output neuron circuits in an output layer by separate temporal synapse circuits. Spiking signals sent from the neuron circuits in the state space detection layer via separate temporal synapse circuits can cause associated output neuron circuits to generate output spiking signals at different times. The various spike times of the output neuron circuits can be aggregated to produce an output signal for the network.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A system comprising a spiking neural network in neuromorphic hardware, the spiking neural network comprising: a state space detection layer comprising multiple neuron circuits configured to transmit spiking signals to connected synapse circuits; the synapse circuits comprising stored weight values and configured to: apply the stored weights to the spiking signals, transmit the weighted spiking signals to connected output neuron circuits, and dynamically adjust the stored weights when a connected state space detection layer neuron circuit transmits a spiking signal or when a connected output neuron circuit transmits an output spiking signal; an output layer comprising the output neuron circuits, wherein the output neuron circuits comprise membrane potentials and are configured to: accumulate the received weighted spiking signals from the synapse circuits at the membrane potentials, and transmit output spiking signals when the values of the membrane potentials are greater than specified thresholds; and an output spiking signal accumulator configured to: receive the output spiking signals, determine times at which the output spiking signals are received, and generate a network output signal based on the times at which the output spiking signals are transmitted by the output neuron circuits. 2. The system of claim 1, further comprising: an input state detection layer comprising multiple input circuits configured to receive one or more input signals and transmit the one or more input signals to one or more of the multiple neuron circuits in the state space detection layer. 3. The system of claim 2, wherein: the multiple neuron circuits in the state space detection layer are grouped into two or more subsets; and the multiple input circuits in the input state detection layer are configured to transmit the input signals to neuron circuits in separate subsets. 4. The system of claim 3, wherein: neuron circuits in at least one of the subsets are configured to transmit inhibitory signals to other neuron circuits within the subset, such that a neuron circuit in the subset that receives a greatest number of input signals from the input circuits inhibits the other neuron circuits in the subset and transmits a spiking signal to a connected one or more of the synapse circuits. 5. The system of claim 4, wherein: the neuron circuit that receives the greatest number of input signals is configured to transmit a spiking signal to at least two different synapse circuits, wherein the different synapse circuits are connected to different output neuron circuits in the output layer. 6. The system of claim 3, wherein: neuron circuits in at least one of the subsets are configured to transmit inhibitory signals to other neuron circuits within the subset, such that two or more neuron circuits in the subset that receive a greatest number of input signals from the input circuits inhibit the other neuron circuits in the subset and transmit spiking signals to different synapse circuits, wherein the different synapse circuits are both connected to a same output neuron circuit in the output layer. 7. The system of claim 1, wherein the synapse circuits are further configured to: receive a desired target signal; and dynamically adjust the stored weights based, at least in part, on a difference between the generated network output signal and the desired target signal. 8. The system of claim 1, wherein the output neuron circuits are further configured to decay the values of the membrane potentials over time. 9. A method for temporal encoding of information using a spiking neural network in neuromorphic hardware, the method comprising: transmitting multiple spiking signals from multiple neuron circuits to multiple output neuron circuits over multiple temporal synapse circuits; adjusting the multiple spiking signals using multiple weights associated with the temporal synapse circuits; receiving the adjusted multiple spiking signals at the multiple output neuron circuits and adjusting capacities of the multiple output neuron circuits based on the received adjusted multiple spiking signals; transmitting multiple output spiking signals from the multiple output neuron circuits when the adjusted capacities of the multiple output neuron circuits are greater than or equal to specified thresholds associated with the multiple output neuron circuits; generating a weighted average time of multiple times at which the multiple output neuron circuits transmitted the multiple output spiking signals; and transmitting the weighted average time as an output signal of the neural network. 10. The method of claim 9, further comprising: dynamically adjusting a weight associated with one of the temporal synapse circuits when one of the multiple neuron circuits that is connected to the temporal synapse circuit transmits a spiking signal. 11. The method of claim 10, wherein dynamically adjusting the weight associated with the temporal synapse circuit comprises: adding a value of a weight change potential associated with an output neuron circuit connected to the temporal synapse circuit to the weight, wherein the weight change potential is decreased when the associated output neuron circuit transmits an output spiking signal. 12. The method of claim 9, further comprising: dynamically adjusting a weight associated with one of the temporal synapse circuits when one of the multiple output neuron circuits that is connected to the temporal synapse circuit transmits an output spiking signal. 13. The method of claim 12, wherein dynamically adjusting the weight associated with the temporal synapse circuit comprises: adding a value of a weight change potential associated with a neuron circuit connected to the temporal synapse circuit to the weight, wherein the weight change potential is increased when the associated neuron circuit transmits a spiking signal to the temporal synapse circuit. 14. The method of claim 9, further comprising: receiving multiple input signals at the multiple neuron circuits from multiple input circuits; and transmitting the multiple spiking signals from the multiple neuron circuits responsive to receiving the multiple input signals. 15. The method of claim 14, wherein: the multiple neuron circuits are organized into multiple subsets; and transmitting the multiple spiking signals from the multiple neuron circuits to the multiple output neuron circuits comprises, for at least two of the multiple subsets: identifying one of the neuron circuits in the subset that received a greatest number of input signals as compared to other neuron circuits in the subset; and transmitting a spiking signal from the identified neuron circuit to one or more of the multiple output neuron circuits. 16. The method of claim 15, wherein: the at least two of the multiple subsets of neuron circuits are associated with different output neuron circuits; and transmitting the multiple spiking signals form the multiple neuron circuits to the multiple output neuron circuits further comprises, for the at least two of the multiple subsets: transmitting the spiking signal from the identified neuron circuit to an output neuron circuit associated with the subset. 17. The method of claim 15, wherein at least one of the identified neuron circuits transmits a spiking signal to at least two separate output neuron circuits via different temporal synapse circuits. 18. The method of claim 9, further comprising: dynamically adjusting a weight associated with at least one of the multiple temporal synapse circuits based, at least in part, on a spike time of a training spiking signal and a spike time of a spiking signal transmitted by an output neuron circuit connected to the at least one of the temporal synapse circuits. 19. The method of claim 9, wherein generating the weighted average time of the multiple different times at which the multiple output neuron circuits transmitted the multiple output spiking signals comprises: determining time lapse intervals based on one or more times at which the neuron circuits began transmitting the spiking signals and the multiple different times at which corresponding output spiking signals were transmitted by the multiple output neuron circuits. 20. A computer-readable storage medium storing computer-executable instructions that, when executed, configure a neuromorphic processing unit to create a spatio-temporal spiking neural network, the spatio-temporal spiking neural network comprising: multiple neuron circuits organized into two or more subsets, wherein the multiple neuron circuits are configured to: receive multiple input signals, for at least one of the subsets, select a neuron circuit within the subset that received a greatest number of input signals with respect to other neuron circuits within the subset, and transmit one or more spiking signals from the at least one selected neuron circuit to at least one synapse circuit connected to the at least one selected neuron circuit; multiple spike-time dependent plasticity (STDP) synapse circuits storing synaptic weights and configured to: receive the one or more spiking signals from the at least one selected neuron circuits, amplify the received one or more spiking signals using the stored synaptic weights, and transmit the amplified one or more spiking signals to one or more connected output neuron circuits; multiple output neuron circuits comprising charge capacities and configured to: receive the amplified one or more spiking signals, store charges of the amplified one or more spiking signals in the charge capacities of one or more of the output neuron circuits, and for at least one of the output neuron circuits: detect that a stored charge in a charge capacity of the output neuron circuit is greater than a spiking threshold of the output neuron circuit; and transmit an output spiking signal from the output neuron circuit; and an output spiking signal accumulator configured to: receive output spiking signals from the at least one of the output neuron circuits, and generate an output signal based one or more times at which the output spiking signals were received.