devices.dynapse.DynapSimCore

class devices.dynapse.DynapSimCore(Iw_0: Union[float, numpy.ndarray, torch.Tensor] = 1e-09, Iw_1: Union[float, numpy.ndarray, torch.Tensor] = 2e-09, Iw_2: Union[float, numpy.ndarray, torch.Tensor] = 4e-09, Iw_3: Union[float, numpy.ndarray, torch.Tensor] = 8e-09, C_ahp: Union[float, numpy.ndarray, torch.Tensor] = 4e-11, C_ampa: Union[float, numpy.ndarray, torch.Tensor] = 2.45e-11, C_gaba: Union[float, numpy.ndarray, torch.Tensor] = 2.5e-11, C_nmda: Union[float, numpy.ndarray, torch.Tensor] = 2.5e-11, C_pulse_ahp: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, C_pulse: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, C_ref: Union[float, numpy.ndarray, torch.Tensor] = 1.5e-12, C_shunt: Union[float, numpy.ndarray, torch.Tensor] = 2.45e-11, C_mem: Union[float, numpy.ndarray, torch.Tensor] = 3e-12, Io: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, kappa_n: Union[float, numpy.ndarray, torch.Tensor] = 0.75, kappa_p: Union[float, numpy.ndarray, torch.Tensor] = 0.66, Ut: Union[float, numpy.ndarray, torch.Tensor] = 0.025, Vth: Union[float, numpy.ndarray, torch.Tensor] = 0.7, Idc: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, If_nmda: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, Igain_ahp: Union[float, numpy.ndarray, torch.Tensor] = 2.8368794326241126e-11, Igain_ampa: Union[float, numpy.ndarray, torch.Tensor] = 8.687943262411346e-09, Igain_gaba: Union[float, numpy.ndarray, torch.Tensor] = 8.865248226950353e-09, Igain_nmda: Union[float, numpy.ndarray, torch.Tensor] = 8.865248226950353e-09, Igain_shunt: Union[float, numpy.ndarray, torch.Tensor] = 8.687943262411346e-09, Igain_mem: Union[float, numpy.ndarray, torch.Tensor] = 2.1276595744680848e-11, Ipulse_ahp: Union[float, numpy.ndarray, torch.Tensor] = 3.5e-07, Ipulse: Union[float, numpy.ndarray, torch.Tensor] = 3.4999999999999996e-08, Iref: Union[float, numpy.ndarray, torch.Tensor] = 1.0499999999999999e-09, Ispkthr: Union[float, numpy.ndarray, torch.Tensor] = 1e-07, Itau_ahp: Union[float, numpy.ndarray, torch.Tensor] = 2.8368794326241126e-11, Itau_ampa: Union[float, numpy.ndarray, torch.Tensor] = 8.687943262411346e-11, Itau_gaba: Union[float, numpy.ndarray, torch.Tensor] = 8.865248226950353e-11, Itau_nmda: Union[float, numpy.ndarray, torch.Tensor] = 8.865248226950353e-11, Itau_shunt: Union[float, numpy.ndarray, torch.Tensor] = 8.687943262411346e-11, Itau_mem: Union[float, numpy.ndarray, torch.Tensor] = 5.319148936170212e-12, Iw_ahp: Union[float, numpy.ndarray, torch.Tensor] = 5e-13)[source]

Bases: devices.dynapse.parameters.translation.low_level.currents.DynapSimCurrents, devices.dynapse.parameters.translation.low_level.layout.DynapSimLayout, devices.dynapse.parameters.translation.low_level.weights.DynapSimWeightBits

DynapSimCore stores the simulation currents and manages the conversion from configuration objects. It also provides easy update mechanisms using coarse&fine values, high-level parameter representations and etc.

Device -> Simulation current (pseudo-code)
simcore = DynapSimCore.from_Dynapse2Core(config.chips[0].cores[0])
Itau_ampa = simcore.Itau_ampa

Attributes overview

C_ahp

AHP synapse capacitance in Farads

C_ampa

AMPA synapse capacitance in Farads

C_gaba

GABA synapse capacitance in Farads

C_mem

neuron membrane capacitance in Farads

C_nmda

NMDA synapse capacitance in Farads

C_pulse

pulse-width creation sub-circuit capacitance in Farads

C_pulse_ahp

spike frequency adaptation circuit pulse-width creation sub-circuit capacitance in Farads

C_ref

refractory period sub-circuit capacitance in Farads

C_shunt

SHUNT synapse capacitance in Farads

Idc

Constant DC current injected to membrane in Amperes

If_nmda

NMDA gate soft cut-off current setting the NMDA gating voltage in Amperes

Igain_ahp

gain bias current of the spike frequency adaptation block in Amperes

Igain_ampa

gain bias current of excitatory AMPA synapse in Amperes

Igain_gaba

gain bias current of inhibitory GABA synapse in Amperes

Igain_mem

gain bias current for neuron membrane in Amperes

Igain_nmda

gain bias current of excitatory NMDA synapse in Amperes

Igain_shunt

gain bias current of the inhibitory SHUNT synapse in Amperes

Io

Dark current in Amperes that flows through the transistors even at the idle state

Ipulse

bias current setting the pulse width for neuron membrane t_pulse in Amperes

Ipulse_ahp

bias current setting the pulse width for spike frequency adaptation block t_pulse_ahp in Amperes

Iref

bias current setting the refractory period t_ref in Amperes

Ispkthr

spiking threshold current, neuron spikes if \(I_{mem} > I_{spkthr}\) in Amperes

Itau_ahp

Spike frequency adaptation leakage current setting the time constant tau_ahp in Amperes

Itau_ampa

AMPA synapse leakage current setting the time constant tau_ampa in Amperes

Itau_gaba

GABA synapse leakage current setting the time constant tau_gaba in Amperes

Itau_mem

Neuron membrane leakage current setting the time constant tau_mem in Amperes

Itau_nmda

NMDA synapse leakage current setting the time constant tau_nmda in Amperes

Itau_shunt

SHUNT synapse leakage current setting the time constant tau_shunt in Amperes

Iw

Weight bits stacked together

Iw_0

weight bit 0 current of the neurons of the core in Amperes

Iw_1

weight bit 1 current of the neurons of the core in Amperes

Iw_2

weight bit 2 current of the neurons of the core in Amperes

Iw_3

weight bit 3 current of the neurons of the core in Amperes

Iw_ahp

spike frequency adaptation weight current of the neurons of the core in Amperes

Ut

Thermal voltage in Volts

Vth

The cut-off Vgs potential of the transistors in Volts (not type specific)

currents

currents returns a subset of object which belongs to DynapSimCurrents

gain

Igain_ahp, Igain_ampa, Igain_gaba, Igain_nmda, Igain_shunt, Igain_mem

kappa_n

Subthreshold slope factor (n-type transistor)

kappa_p

Subthreshold slope factor (p-type transistor)

layout

layout returns a subset of object which belongs to DynapSimLayout

time

time creates the high level time constants set by currents Ipulse_ahp, Ipulse, Iref, Itau_ahp, Itau_ampa, Itau_gaba, Itau_nmda, Itau_shunt, Itau_mem

weight_bits

weight_bits returns a subset of object which belongs to DynapSimWeightBits

Methods overview

__init__([Iw_0,Β Iw_1,Β Iw_2,Β Iw_3,Β C_ahp,Β ...])

compare(core1,Β core2)

compare compares two DynapSimCore objects detects the different values set

export_Dynapse2Parameters()

export_Dynapse2Parameters converts all current values to their coarse-fine value representations for device configuration

from_Dynapse2Core(core)

from_Dynapse2Core is a class factory method which uses samna configuration objects to extract the simulation currents

from_specification([Idc,Β If_nmda,Β ...])

from_specification is a class factory method helping DynapSimCore object construction using higher level representaitons of the currents like gain ratio or time constant whenever applicable.

get_full(size)

get_full creates a dictionary with respect to the object, with arrays of current values

update(attr,Β value)

update_current updates an attribute and returns a new object, does not change the original object.

update_gain_ratio(attr,Β value)

update_gain_ratio updates currents setting gain ratio (Igain/Itau) attributes

update_time_constant(attr,Β value)

update_time_constant updates currents setting time constant attributes

C_ahp: Union[float, numpy.ndarray, torch.Tensor] = 4e-11

AHP synapse capacitance in Farads

C_ampa: Union[float, numpy.ndarray, torch.Tensor] = 2.45e-11

AMPA synapse capacitance in Farads

C_gaba: Union[float, numpy.ndarray, torch.Tensor] = 2.5e-11

GABA synapse capacitance in Farads

C_mem: Union[float, numpy.ndarray, torch.Tensor] = 3e-12

neuron membrane capacitance in Farads

C_nmda: Union[float, numpy.ndarray, torch.Tensor] = 2.5e-11

NMDA synapse capacitance in Farads

C_pulse: Union[float, numpy.ndarray, torch.Tensor] = 5e-13

pulse-width creation sub-circuit capacitance in Farads

C_pulse_ahp: Union[float, numpy.ndarray, torch.Tensor] = 5e-13

spike frequency adaptation circuit pulse-width creation sub-circuit capacitance in Farads

C_ref: Union[float, numpy.ndarray, torch.Tensor] = 1.5e-12

refractory period sub-circuit capacitance in Farads

C_shunt: Union[float, numpy.ndarray, torch.Tensor] = 2.45e-11

SHUNT synapse capacitance in Farads

Idc: Union[float, numpy.ndarray, torch.Tensor] = 5e-13

Constant DC current injected to membrane in Amperes

If_nmda: Union[float, numpy.ndarray, torch.Tensor] = 5e-13

NMDA gate soft cut-off current setting the NMDA gating voltage in Amperes

Igain_ahp: Union[float, numpy.ndarray, torch.Tensor] = 2.8368794326241126e-11

gain bias current of the spike frequency adaptation block in Amperes

Igain_ampa: Union[float, numpy.ndarray, torch.Tensor] = 8.687943262411346e-09

gain bias current of excitatory AMPA synapse in Amperes

Igain_gaba: Union[float, numpy.ndarray, torch.Tensor] = 8.865248226950353e-09

gain bias current of inhibitory GABA synapse in Amperes

Igain_mem: Union[float, numpy.ndarray, torch.Tensor] = 2.1276595744680848e-11

gain bias current for neuron membrane in Amperes

Igain_nmda: Union[float, numpy.ndarray, torch.Tensor] = 8.865248226950353e-09

gain bias current of excitatory NMDA synapse in Amperes

Igain_shunt: Union[float, numpy.ndarray, torch.Tensor] = 8.687943262411346e-09

gain bias current of the inhibitory SHUNT synapse in Amperes

Io: Union[float, numpy.ndarray, torch.Tensor] = 5e-13

Dark current in Amperes that flows through the transistors even at the idle state

Ipulse: Union[float, numpy.ndarray, torch.Tensor] = 3.4999999999999996e-08

bias current setting the pulse width for neuron membrane t_pulse in Amperes

Ipulse_ahp: Union[float, numpy.ndarray, torch.Tensor] = 3.5e-07

bias current setting the pulse width for spike frequency adaptation block t_pulse_ahp in Amperes

Iref: Union[float, numpy.ndarray, torch.Tensor] = 1.0499999999999999e-09

bias current setting the refractory period t_ref in Amperes

Ispkthr: Union[float, numpy.ndarray, torch.Tensor] = 1e-07

spiking threshold current, neuron spikes if \(I_{mem} > I_{spkthr}\) in Amperes

Itau_ahp: Union[float, numpy.ndarray, torch.Tensor] = 2.8368794326241126e-11

Spike frequency adaptation leakage current setting the time constant tau_ahp in Amperes

Itau_ampa: Union[float, numpy.ndarray, torch.Tensor] = 8.687943262411346e-11

AMPA synapse leakage current setting the time constant tau_ampa in Amperes

Itau_gaba: Union[float, numpy.ndarray, torch.Tensor] = 8.865248226950353e-11

GABA synapse leakage current setting the time constant tau_gaba in Amperes

Itau_mem: Union[float, numpy.ndarray, torch.Tensor] = 5.319148936170212e-12

Neuron membrane leakage current setting the time constant tau_mem in Amperes

Itau_nmda: Union[float, numpy.ndarray, torch.Tensor] = 8.865248226950353e-11

NMDA synapse leakage current setting the time constant tau_nmda in Amperes

Itau_shunt: Union[float, numpy.ndarray, torch.Tensor] = 8.687943262411346e-11

SHUNT synapse leakage current setting the time constant tau_shunt in Amperes

property Iw: numpy.ndarray

Weight bits stacked together

Iw_0: Union[float, numpy.ndarray, torch.Tensor] = 1e-09

weight bit 0 current of the neurons of the core in Amperes

Iw_1: Union[float, numpy.ndarray, torch.Tensor] = 2e-09

weight bit 1 current of the neurons of the core in Amperes

Iw_2: Union[float, numpy.ndarray, torch.Tensor] = 4e-09

weight bit 2 current of the neurons of the core in Amperes

Iw_3: Union[float, numpy.ndarray, torch.Tensor] = 8e-09

weight bit 3 current of the neurons of the core in Amperes

Iw_ahp: Union[float, numpy.ndarray, torch.Tensor] = 5e-13

spike frequency adaptation weight current of the neurons of the core in Amperes

Ut: Union[float, numpy.ndarray, torch.Tensor] = 0.025

Thermal voltage in Volts

Vth: Union[float, numpy.ndarray, torch.Tensor] = 0.7

The cut-off Vgs potential of the transistors in Volts (not type specific)

__init__(Iw_0: Union[float, numpy.ndarray, torch.Tensor] = 1e-09, Iw_1: Union[float, numpy.ndarray, torch.Tensor] = 2e-09, Iw_2: Union[float, numpy.ndarray, torch.Tensor] = 4e-09, Iw_3: Union[float, numpy.ndarray, torch.Tensor] = 8e-09, C_ahp: Union[float, numpy.ndarray, torch.Tensor] = 4e-11, C_ampa: Union[float, numpy.ndarray, torch.Tensor] = 2.45e-11, C_gaba: Union[float, numpy.ndarray, torch.Tensor] = 2.5e-11, C_nmda: Union[float, numpy.ndarray, torch.Tensor] = 2.5e-11, C_pulse_ahp: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, C_pulse: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, C_ref: Union[float, numpy.ndarray, torch.Tensor] = 1.5e-12, C_shunt: Union[float, numpy.ndarray, torch.Tensor] = 2.45e-11, C_mem: Union[float, numpy.ndarray, torch.Tensor] = 3e-12, Io: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, kappa_n: Union[float, numpy.ndarray, torch.Tensor] = 0.75, kappa_p: Union[float, numpy.ndarray, torch.Tensor] = 0.66, Ut: Union[float, numpy.ndarray, torch.Tensor] = 0.025, Vth: Union[float, numpy.ndarray, torch.Tensor] = 0.7, Idc: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, If_nmda: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, Igain_ahp: Union[float, numpy.ndarray, torch.Tensor] = 2.8368794326241126e-11, Igain_ampa: Union[float, numpy.ndarray, torch.Tensor] = 8.687943262411346e-09, Igain_gaba: Union[float, numpy.ndarray, torch.Tensor] = 8.865248226950353e-09, Igain_nmda: Union[float, numpy.ndarray, torch.Tensor] = 8.865248226950353e-09, Igain_shunt: Union[float, numpy.ndarray, torch.Tensor] = 8.687943262411346e-09, Igain_mem: Union[float, numpy.ndarray, torch.Tensor] = 2.1276595744680848e-11, Ipulse_ahp: Union[float, numpy.ndarray, torch.Tensor] = 3.5e-07, Ipulse: Union[float, numpy.ndarray, torch.Tensor] = 3.4999999999999996e-08, Iref: Union[float, numpy.ndarray, torch.Tensor] = 1.0499999999999999e-09, Ispkthr: Union[float, numpy.ndarray, torch.Tensor] = 1e-07, Itau_ahp: Union[float, numpy.ndarray, torch.Tensor] = 2.8368794326241126e-11, Itau_ampa: Union[float, numpy.ndarray, torch.Tensor] = 8.687943262411346e-11, Itau_gaba: Union[float, numpy.ndarray, torch.Tensor] = 8.865248226950353e-11, Itau_nmda: Union[float, numpy.ndarray, torch.Tensor] = 8.865248226950353e-11, Itau_shunt: Union[float, numpy.ndarray, torch.Tensor] = 8.687943262411346e-11, Itau_mem: Union[float, numpy.ndarray, torch.Tensor] = 5.319148936170212e-12, Iw_ahp: Union[float, numpy.ndarray, torch.Tensor] = 5e-13) None
__update_high_level(obj: devices.dynapse.parameters.translation.high_level.high.DynapSimCoreHigh, attr_getter: Callable[[str], Any], attr: str, value: Any) devices.dynapse.parameters.translation.core.DynapSimCore

__update_high_level updates high level representations of the current values like time constants and gain ratios. The current values are updated accordingly without changing the original object.

Parameters
  • obj (DynapSimCoreHigh) – the high level object that stores the projections of the current values

  • attr_getter (Callable[[str], Any]) – a function to get the high level attribute from the high level object

  • attr (str) – any attribute that belongs to any DynapSimCoreHigh object

  • value (Any) – the new value to set

Returns

updated DynapSimCore object

Return type

DynapSimCore

static compare(core1: devices.dynapse.parameters.translation.core.DynapSimCore, core2: devices.dynapse.parameters.translation.core.DynapSimCore) Dict[str, Tuple[Any]][source]

compare compares two DynapSimCore objects detects the different values set

Parameters
  • core1 (DynapSimCore) – the first core object

  • core2 (DynapSimCore) – the second core object to compare against the first one

Returns

a dictionary of changed values

Return type

Dict[str, Tuple[Any]]

property currents: devices.dynapse.parameters.translation.low_level.currents.DynapSimCurrents

currents returns a subset of object which belongs to DynapSimCurrents

export_Dynapse2Parameters() Dict[str, Tuple[numpy.uint8, numpy.uint8]][source]

export_Dynapse2Parameters converts all current values to their coarse-fine value representations for device configuration

Returns

a dictionary of mapping between parameter names and respective coarse-fine values

Return type

Dict[str, Tuple[np.uint8, np.uint8]]

classmethod from_Dynapse2Core(core: rockpool.devices.dynapse.samna_alias.modules.Dynapse2Core) devices.dynapse.parameters.translation.core.DynapSimCore[source]

from_Dynapse2Core is a class factory method which uses samna configuration objects to extract the simulation currents

Returns

a dynapse core simulation object whose parameters are imported from a samna configuration object

Return type

DynapSimCore

classmethod from_specification(Idc: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, If_nmda: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, r_gain_ahp: Union[float, numpy.ndarray, torch.Tensor] = 1, r_gain_ampa: Union[float, numpy.ndarray, torch.Tensor] = 100, r_gain_gaba: Union[float, numpy.ndarray, torch.Tensor] = 100, r_gain_nmda: Union[float, numpy.ndarray, torch.Tensor] = 100, r_gain_shunt: Union[float, numpy.ndarray, torch.Tensor] = 100, r_gain_mem: Union[float, numpy.ndarray, torch.Tensor] = 4, t_pulse_ahp: Union[float, numpy.ndarray, torch.Tensor] = 1e-06, t_pulse: Union[float, numpy.ndarray, torch.Tensor] = 1e-05, t_ref: Union[float, numpy.ndarray, torch.Tensor] = 0.001, Ispkthr: Union[float, numpy.ndarray, torch.Tensor] = 1e-07, tau_ahp: Union[float, numpy.ndarray, torch.Tensor] = 0.05, tau_ampa: Union[float, numpy.ndarray, torch.Tensor] = 0.01, tau_gaba: Union[float, numpy.ndarray, torch.Tensor] = 0.01, tau_nmda: Union[float, numpy.ndarray, torch.Tensor] = 0.01, tau_shunt: Union[float, numpy.ndarray, torch.Tensor] = 0.01, tau_mem: Union[float, numpy.ndarray, torch.Tensor] = 0.02, Iw_0: Union[float, numpy.ndarray, torch.Tensor] = 1e-09, Iw_1: Union[float, numpy.ndarray, torch.Tensor] = 2e-09, Iw_2: Union[float, numpy.ndarray, torch.Tensor] = 4e-09, Iw_3: Union[float, numpy.ndarray, torch.Tensor] = 8e-09, Iw_ahp: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, C_ahp: Union[float, numpy.ndarray, torch.Tensor] = 4e-11, C_ampa: Union[float, numpy.ndarray, torch.Tensor] = 2.45e-11, C_gaba: Union[float, numpy.ndarray, torch.Tensor] = 2.5e-11, C_nmda: Union[float, numpy.ndarray, torch.Tensor] = 2.5e-11, C_pulse_ahp: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, C_pulse: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, C_ref: Union[float, numpy.ndarray, torch.Tensor] = 1.5e-12, C_shunt: Union[float, numpy.ndarray, torch.Tensor] = 2.45e-11, C_mem: Union[float, numpy.ndarray, torch.Tensor] = 3e-12, Io: Union[float, numpy.ndarray, torch.Tensor] = 5e-13, kappa_n: Union[float, numpy.ndarray, torch.Tensor] = 0.75, kappa_p: Union[float, numpy.ndarray, torch.Tensor] = 0.66, Ut: Union[float, numpy.ndarray, torch.Tensor] = 0.025, Vth: Union[float, numpy.ndarray, torch.Tensor] = 0.7) devices.dynapse.parameters.translation.core.DynapSimCore[source]

from_specification is a class factory method helping DynapSimCore object construction using higher level representaitons of the currents like gain ratio or time constant whenever applicable.

Parameters
  • Idc (FloatVector, optional) – Constant DC current injected to membrane in Amperes, defaults to default_currents[β€œIdc”]

  • If_nmda (FloatVector, optional) – NMDA gate soft cut-off current setting the NMDA gating voltage in Amperes, defaults to default_currents[β€œIf_nmda”]

  • r_gain_ahp (FloatVector, optional) – spike frequency adaptation block gain ratio, defaults to default_gain_ratios[β€œr_gain_ahp”]

  • r_gain_ampa (FloatVector, optional) – xcitatory AMPA synpse gain ratio, defaults to default_gain_ratios[β€œr_gain_ampa”]

  • r_gain_gaba (FloatVector, optional) – inhibitory GABA synpse gain ratio, defaults to default_gain_ratios[β€œr_gain_gaba”]

  • r_gain_nmda (FloatVector, optional) – excitatory NMDA synpse gain ratio, defaults to default_gain_ratios[β€œr_gain_nmda”]

  • r_gain_shunt (FloatVector, optional) – inhibitory SHUNT synpse gain ratio, defaults to default_gain_ratios[β€œr_gain_shunt”]

  • r_gain_mem (FloatVector, optional) – neuron membrane gain ratio, defaults to default_gain_ratios[β€œr_gain_mem”]

  • t_pulse_ahp (FloatVector, optional) – the spike pulse width for spike frequency adaptation circuit in seconds, defaults to default_time_constants[β€œt_pulse_ahp”]

  • t_pulse (FloatVector, optional) – the spike pulse width for neuron membrane in seconds, defaults to default_time_constants[β€œt_pulse”]

  • t_ref (FloatVector, optional) – refractory period of the neurons in seconds, defaults to default_time_constants[β€œt_ref”]

  • Ispkthr (FloatVector, optional) – spiking threshold current, neuron spikes if \(I_{mem} > I_{spkthr}\) in Amperes, defaults to default_currents[β€œIspkthr”]

  • tau_ahp (FloatVector, optional) – Spike frequency leakage time constant in seconds, defaults to default_time_constants[β€œtau_ahp”]

  • tau_ampa (FloatVector, optional) – AMPA synapse leakage time constant in seconds, defaults to default_time_constants[β€œtau_ampa”]

  • tau_gaba (FloatVector, optional) – GABA synapse leakage time constant in seconds, defaults to default_time_constants[β€œtau_gaba”]

  • tau_nmda (FloatVector, optional) – NMDA synapse leakage time constant in seconds, defaults to default_time_constants[β€œtau_nmda”]

  • tau_shunt (FloatVector, optional) – SHUNT synapse leakage time constant in seconds, defaults to default_time_constants[β€œtau_shunt”]

  • tau_mem (FloatVector, optional) – Neuron membrane leakage time constant in seconds, defaults to default_time_constants[β€œtau_mem”]

  • Iw_0 (FloatVector, optional) – weight bit 0 current of the neurons of the core in Amperes, defaults to default_weights[β€œIw_0”]

  • Iw_1 (FloatVector, optional) – weight bit 1 current of the neurons of the core in Amperes, defaults to default_weights[β€œIw_1”]

  • Iw_2 (FloatVector, optional) – weight bit 2 current of the neurons of the core in Amperes, defaults to default_weights[β€œIw_2”]

  • Iw_3 (FloatVector, optional) – weight bit 3 current of the neurons of the core in Amperes, defaults to default_weights[β€œIw_3”]

  • Iw_ahp (FloatVector, optional) – spike frequency adaptation weight current of the neurons of the core in Amperes, defaults to default_currents[β€œIw_ahp”]

  • C_ahp (FloatVector, optional) – AHP synapse capacitance in Farads, defaults to default_layout[β€œC_ahp”]

  • C_ampa (FloatVector, optional) – AMPA synapse capacitance in Farads, defaults to default_layout[β€œC_ampa”]

  • C_gaba (FloatVector, optional) – GABA synapse capacitance in Farads, defaults to default_layout[β€œC_gaba”]

  • C_nmda (FloatVector, optional) – NMDA synapse capacitance in Farads, defaults to default_layout[β€œC_nmda”]

  • C_pulse_ahp (FloatVector, optional) – spike frequency adaptation circuit pulse-width creation sub-circuit capacitance in Farads, defaults to default_layout[β€œC_pulse_ahp”]

  • C_pulse (FloatVector, optional) – pulse-width creation sub-circuit capacitance in Farads, defaults to default_layout[β€œC_pulse”]

  • C_ref (FloatVector, optional) – refractory period sub-circuit capacitance in Farads, defaults to default_layout[β€œC_ref”]

  • C_shunt (FloatVector, optional) – SHUNT synapse capacitance in Farads, defaults to default_layout[β€œC_shunt”]

  • C_mem (FloatVector, optional) – neuron membrane capacitance in Farads, defaults to default_layout[β€œC_mem”]

  • Io (FloatVector, optional) – Dark current in Amperes that flows through the transistors even at the idle state, defaults to default_layout[β€œIo”]

  • kappa_n (FloatVector, optional) – Subthreshold slope factor (n-type transistor), defaults to default_layout[β€œkappa_n”]

  • kappa_p (FloatVector, optional) – Subthreshold slope factor (p-type transistor), defaults to default_layout[β€œkappa_p”]

  • Ut (FloatVector, optional) – Thermal voltage in Volts, defaults to default_layout[β€œUt”]

  • Vth (FloatVector, optional) – The cut-off Vgs potential of the transistors in Volts (not type specific), defaults to default_layout[β€œVth”]

Returns

DynapSimCore object instance

Return type

DynapSimCore

property gain: devices.dynapse.parameters.translation.high_level._gain.DynapSimGain

Igain_ahp, Igain_ampa, Igain_gaba, Igain_nmda, Igain_shunt, Igain_mem

Type

gain creates the high level gain ratios set by currents

get_full(size: int) Dict[str, numpy.ndarray]

get_full creates a dictionary with respect to the object, with arrays of current values

Parameters

size (int) – the lengths of the current arrays

Returns

the object dictionary with current arrays given the size

Return type

Dict[str, np.ndarray]

kappa_n: Union[float, numpy.ndarray, torch.Tensor] = 0.75

Subthreshold slope factor (n-type transistor)

kappa_p: Union[float, numpy.ndarray, torch.Tensor] = 0.66

Subthreshold slope factor (p-type transistor)

property layout: devices.dynapse.parameters.translation.low_level.layout.DynapSimLayout

layout returns a subset of object which belongs to DynapSimLayout

property time: devices.dynapse.parameters.translation.high_level._time.DynapSimTime

time creates the high level time constants set by currents Ipulse_ahp, Ipulse, Iref, Itau_ahp, Itau_ampa, Itau_gaba, Itau_nmda, Itau_shunt, Itau_mem

update(attr: str, value: Any) devices.dynapse.parameters.translation.core.DynapSimCore[source]

update_current updates an attribute and returns a new object, does not change the original object.

Parameters
  • attr (str) – any attribute that belongs to DynapSimCore object

  • value (Any) – the new value to set

Returns

updated DynapSimCore object

Return type

DynapSimCore

update_gain_ratio(attr: str, value: Any) devices.dynapse.parameters.translation.core.DynapSimCore[source]

update_gain_ratio updates currents setting gain ratio (Igain/Itau) attributes

Parameters
  • attr (str) – any attribute that belongs to any DynapSimGain object

  • value (Any) – the new value to set

Returns

updated DynapSimCore object

Return type

DynapSimCore

update_time_constant(attr: str, value: Any) devices.dynapse.parameters.translation.core.DynapSimCore[source]

update_time_constant updates currents setting time constant attributes

Parameters
  • attr (str) – any attribute that belongs to any DynapSimTime object

  • value (Any) – the new value to set

Returns

updated DynapSimCore object

Return type

DynapSimCore

property weight_bits: devices.dynapse.parameters.translation.low_level.weights.DynapSimWeightBits

weight_bits returns a subset of object which belongs to DynapSimWeightBits