Next: New Incoming Events Up: Implementation Previous: Implementation Contents

## `Synchan` event handling

For every synaptic channel `hsolve` keeps an internal counter that tracks when the next event on that channel arrives. If the counter is zero, `hsolve` puts a zero in the `activation` field of the channel. Then it asks the channel to calculate the activation for all events that should be fired during the next time step by calling the `HPROCESS` action on the channel element. The channel then computes the activation value for all firing events by summing the weights of the synapses at which the events arrive, but without doing any numerical computations for the conductance (i.e. the computations that are part of a normal `PROCESS` cycle for a synaptic channel). The result is put in the `activation` field of the synaptic channel. `Hsolve` then fetches the value of the `activation` field and incorporates it in its own computations to compute the conductance of the channel. The internal counter that `hsolve` maintains for the channel, is set to the number of time steps before the next synaptic event arrives on that channel by inspecting the (sorted) list of pending events of the channel.

NOTE: The Genesis scheduler never schedules the synaptic channels taken over by an `hsolve` element. It is `hsolve` that calls the `HPROCESS` action on the appropriate channel when needed. These channels are therefore not represented in the simulation schedule.

Next: New Incoming Events Up: Implementation Previous: Implementation Contents