Pulse-based computation in VLSI neural networks