2 The Network Comes to Life#
Introduction#
In Chapter 1, we initialized our network—programming the connectivity structure into HBM, clearing neuron states in URAM, and configuring network parameters. The FPGA now holds a frozen snapshot of our network architecture, but nothing is happening yet. The neurons are silent, their membrane potentials at zero.
In this chapter, we bring the network to life. We’ll trace what happens when you call network.step(['a0', 'a1', 'a2']) to send input spikes to the first three axons. We’ll follow these spikes as they:
Phase 0: Get written to BRAM as input patterns
Phase 1: Trigger reads from HBM to fetch synaptic connections
Phase 2: Flow into neurons, causing membrane potentials to rise and neurons to spike
Phase 3: Get collected and sent back to the host
We’ll use our example network from the Introduction:
5 axons (a0-a4) → 5 hidden neurons (h0-h4) → 5 output neurons (o0-o4)
All weights = 1000
Threshold = 2000
Input: Axons a0, a1, a2 fire every timestep
By the end of this chapter, you’ll understand exactly what happens in hardware during a single timestep, from input arrival to spike output, at the clock-cycle level.