Backend

isort:skip_file

class fugu.backends.backend.Backend

Bases: ABC

abstract compile(scaffold, compile_args={})

creates neuron populations and synapses

abstract run(n_steps=10, return_potential=False)

Runs circuit for n_steps then returns data

abstract cleanup()

Deletes/frees neurons and synapses

abstract reset()

Resets time-step to 0 and resets neuron/synapse properties

abstract set_properties(properties={})

Set properties for specific neurons and synapses :param properties: dictionary of parameter for bricks

Example

for brick in properties:

neuron_props, synapse_props = self.circuit[brick].get_changes(properties[brick]) for neuron in neuron_props:

set neuron properties

for synapse in synapse_props:

set synapse properties

@NOTE: Currently, this function behaves differently for Input Bricks
  • Instead of returning the changes, they change internally and reset the iterator

  • This is because of how initial spike times are calculated using said bricks

  • I have not yet found a way of incorporating my proposed method (above) into these bricks yet

abstract set_input_spikes()
class fugu.backends.backend.PortDataIterator(node: dict)

Bases: object

Given the attribute dictionary associated with a circuit graph node, this iterator returns all the neurons that reside in any of its output port ‘data’ channels, one at a time.

findNeurons()