def setup_marocco(wafer=37): """Setup hardwarm mapping on a wafer. Defaults to 37""" marocco = PyMarocco() marocco.neuron_placement.default_neuron_size(4) marocco.neuron_placement.minimize_number_of_sending_repeaters(False) marocco.merger_routing.strategy(marocco.merger_routing.one_to_one) marocco.bkg_gen_isi = 125 marocco.pll_freq = 125e6 marocco.backend = PyMarocco.Hardware marocco.calib_backend = PyMarocco.XML marocco.defects.path = marocco.calib_path = "/wang/data/calibration/brainscales/default-2017-09-26-1" marocco.defects.backend = Defects.XML marocco.default_wafer = C.Wafer(int(os.environ.get("WAFER", wafer))) marocco.param_trafo.use_big_capacitors = True marocco.input_placement.consider_firing_rate(True) marocco.input_placement.bandwidth_utilization(0.8) return marocco
'v_rest': -20., 'v_thresh': -10, 'e_rev_I': -100., 'e_rev_E': 60., 'tau_m': 20., 'tau_refrac': 0.1, 'tau_syn_E': 5., 'tau_syn_I': 5., } marocco = PyMarocco() marocco.neuron_placement.default_neuron_size(4) marocco.neuron_placement.minimize_number_of_sending_repeaters(False) marocco.merger_routing.strategy(marocco.merger_routing.one_to_one) marocco.bkg_gen_isi = 125 marocco.pll_freq = 125e6 marocco.backend = PyMarocco.Hardware marocco.calib_backend = PyMarocco.XML marocco.defects.path = marocco.calib_path = "/wang/data/calibration/ITL_2016" marocco.defects.backend = Defects.XML marocco.default_wafer = C.Wafer(33) marocco.param_trafo.use_big_capacitors = True marocco.input_placement.consider_firing_rate(True) marocco.input_placement.bandwidth_utilization(0.8) runtime = Runtime(marocco.default_wafer) pynn.setup(marocco=marocco, marocco_runtime=runtime) # ——— set up network ——————————————————————————————————————————————————————————
h276.drivers().disable(SynapseDriverOnHICANN(C.Enum(20))) h276.drivers().disable(SynapseDriverOnHICANN(C.Enum(102))) h276.drivers().disable(SynapseDriverOnHICANN(C.Enum(104))) marocco.defects.inject(HICANNGlobal(Enum(276)), h276) h277 = pyredman.Hicann() #h277.drivers().disable(SynapseDriverOnHICANN(C.Enum(2))) marocco.defects.inject(HICANNGlobal(Enum(277)), h277) #if simulator_name == "nmpm1": # marocco.membrane = "membrane.dat" # marocco.analog_enum = 0 # marocco.hicann_enum = HICANNGlobal(Enum(276)).id().value() marocco.pll_freq = 100e6 marocco.bkg_gen_isi = 10000 marocco.only_bkg_visible = False pynn.setup(marocco=marocco) else: import pyNN.nest as pynn # helper function for populations # could (should) be used for spinnaker as well def get_pops(n_in_pop, hicann, n_used_neuronblocks = 7): # neurons needed to fill up buffer if simulator_name in ("nmpm1", "ess"): n_in_tmp = 32/(neuron_size/2) - n_in_pop else: