Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import collections
- import numpy as np
- import itertools
- import struct
- import pydlsnew as dls
- import pydlsnew.coords as coords
- class PlasticityParameters(collections.OrderedDict):
- def pack(self):
- values = self.values()
- vals, fmt = zip(*values)
- s = struct.pack(">" + "".join(fmt), *vals)
- parameter_stream = np.array([ord(b) for b in s], dtype=np.uint8)
- parameter_stream = np.hstack([
- parameter_stream,
- np.zeros(4 - len(parameter_stream) % 4, dtype=np.uint8)
- ])
- return parameter_stream.view(">u4")
- def write_to_mailbox(self, mailbox, address):
- for i, word in enumerate(self.pack()):
- mailbox.set_word(coords.Address_on_mailbox(address + i), word)
- def start_ppu(program_builder):
- # Prepare control registers
- toggle_off = dls.Ppu_control_reg()
- toggle_off.inhibit_reset(False)
- toggle_on = dls.Ppu_control_reg()
- toggle_on.inhibit_reset(True)
- # Start the ppu by switching the inhibit reset bit off and on again
- program_builder.set_ppu_control_reg(toggle_off)
- program_builder.set_ppu_control_reg(toggle_on)
- def stop_ppu(program_builder):
- # Prepare control register
- toggle_off = dls.Ppu_control_reg()
- toggle_off.inhibit_reset(False)
- toggle_off.force_clock_off(True)
- # Stop the ppu by clearing the inhibit reset bit, plus forcing the clock to
- # be off
- program_builder.set_ppu_control_reg(toggle_off)
- def make_spiketrain_array(spiketrain):
- ret = np.zeros((2, len(spiketrain)), dtype=int)
- for index, spike in enumerate(spiketrain):
- ret[0, index] = spike.time
- ret[1, index] = spike.address
- return ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement