Advertisement
Guest User

Untitled

a guest
Jun 24th, 2019
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. import collections
  2. import numpy as np
  3. import itertools
  4. import struct
  5.  
  6. import pydlsnew as dls
  7. import pydlsnew.coords as coords
  8.  
  9.  
  10. class PlasticityParameters(collections.OrderedDict):
  11. def pack(self):
  12. values = self.values()
  13. vals, fmt = zip(*values)
  14. s = struct.pack(">" + "".join(fmt), *vals)
  15. parameter_stream = np.array([ord(b) for b in s], dtype=np.uint8)
  16. parameter_stream = np.hstack([
  17. parameter_stream,
  18. np.zeros(4 - len(parameter_stream) % 4, dtype=np.uint8)
  19. ])
  20. return parameter_stream.view(">u4")
  21.  
  22.  
  23. def write_to_mailbox(self, mailbox, address):
  24. for i, word in enumerate(self.pack()):
  25. mailbox.set_word(coords.Address_on_mailbox(address + i), word)
  26.  
  27.  
  28. def start_ppu(program_builder):
  29. # Prepare control registers
  30. toggle_off = dls.Ppu_control_reg()
  31. toggle_off.inhibit_reset(False)
  32. toggle_on = dls.Ppu_control_reg()
  33. toggle_on.inhibit_reset(True)
  34.  
  35. # Start the ppu by switching the inhibit reset bit off and on again
  36. program_builder.set_ppu_control_reg(toggle_off)
  37. program_builder.set_ppu_control_reg(toggle_on)
  38.  
  39.  
  40. def stop_ppu(program_builder):
  41. # Prepare control register
  42. toggle_off = dls.Ppu_control_reg()
  43. toggle_off.inhibit_reset(False)
  44. toggle_off.force_clock_off(True)
  45.  
  46. # Stop the ppu by clearing the inhibit reset bit, plus forcing the clock to
  47. # be off
  48. program_builder.set_ppu_control_reg(toggle_off)
  49.  
  50.  
  51. def make_spiketrain_array(spiketrain):
  52. ret = np.zeros((2, len(spiketrain)), dtype=int)
  53. for index, spike in enumerate(spiketrain):
  54. ret[0, index] = spike.time
  55. ret[1, index] = spike.address
  56. return ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement