Please, help us to better know about our user community by answering the following short survey: https://forms.gle/wpyrxWi18ox9Z5ae9

Detailed Description

The base class is the scHThread, i.e. HW thread functionalityit has its associated inter-gridpoint communication facilities and communicates autonomously with its immediate neighbors and cluster members

The neurers are kentaurs: half-part cores, with non-specialized core-functionality and half-part neuron-specific functionality.

This class provides the base for Neurer, the artificial neuron

Parameters
[nm]the name of the abstract neurer
[in]Processorthe NeurerProcessor we belong to
[in]GPthe owner scGridPoint the scHThread belongs to
[in]IDThe unique (within the scGridPoint) ID of the thread
[in]ifstand-alone working required
*  |scHThread
*  |--/AbstractNeurer
*  |..../Neurer
* 
+ Inheritance diagram for AbstractNeurer:

Public Member Functions

void ActionPotential_method (void)
 < handles action potential
 
scSynapticConnectFindSynapseFrom (AbstractNeurer *A)
 Return synaptic connect corresponding from A, or NULL.
 
void IncreaseActionPotentialWithCharge (int C)
 IncreaseActionPotentialWithCharge. More...
 
int IntegratedCurrentInPeriod (int FromTime, int ToTime, int FromValue, int ToValue)
 IntegratedCurrentInPeriod A simple trapezoidal area (for short period, where the function is nearly linear) More...
 
void LeakingPeriod_Set (short unsigned int P)
 < Set the length of the period after which the potential is decreased by one
 
void MembranePotentialContribution_Add (int32_t NewContrib)
 Add a contribution to membrane's potential; changes states and initiates timed operations. For details see section How time-aware neuronal simulation works. More...
 
bool MembraneSynapticContribution_Add (int32_t NewContrib)
 Add a contribution from a synapse; called from a synapse handler; neglects input when 'Charging'. More...
 
int NeurerCondensatorCapacity_Get (void)
 NeurerCondensatorCapacity_Get. More...
 
bool NeurerStateBit_Get (NeurerOperatingBit_t B)
 Get value of a bit in the state word AbstractNeurer::mOperatingState. More...
 
void NeurerStateBit_Set (NeurerOperatingBit_t B, bool V)
 Set a bit in the state word AbstractNeurer::mOperatingState. More...
 
void Reset_method (void)
 Reset neurons to their initial state.
 
void Spiking_method (void)
 Take the next point from the current table.
 
- Public Member Functions inherited from scHThread
bool AllocatedBit_Get (bool B)
 < Get 'Allocated' status of HThread
 
void AllocatedBit_Set (bool B)
 < Set 'Allocated' status of HThread
 
scHThreadAllocateFor (scHThread *Parent)
 < Allocate this scHThread for another one More...
 
ClusterAddress_t ClusterAddress_Get (void)
 < Return the cluster address of the gridpoint, stored in the matrix
 
SC_WORD_TYPE * DataPositionInBuffer (SC_ADDRESS_TYPE A)
 Return pointer to word containing next data.
 
virtual void FinishPrefetching (void)
 Make sure we have a fetched instruction. If ready, just make nothing. If fetch started, but not finished, just wait until arrives. If not started, initiate fetching.
 
SC_WORD_TYPE * InstPositionInBuffer (SC_ADDRESS_TYPE A=CORE_DEFAULT_ADDRESS)
 Return pointer to word containing next instruction.
 
bool IsTimedOut (void) const
 < The HThread can be time, true if the actin timed out
 
void ObservedBit_Set (bool B)
 < Put graph data to a vector storage
 
void PC_Affected_Set (bool B)
 
bool PreAllocatedBit_Get (void)
 < Get 'PreAllocated' status of HThreadl
 
void PreAllocatedBit_Set (bool V=true)
 < Set 'PreAllocated' status of HThread
 
scHThreadPreAllocateFor (scHThread *Parent)
 < PreAllocate this scHThread for another one More...
 
void Reset (void)
 < Reset the thread for operation
 
 scHThread (sc_core::sc_module_name nm, scGridPoint *GP, SC_HTHREAD_ID_TYPE ID)
 An scGridPoint owns run several HW threads (scHThread), can run them, with auto-scheduling them. More...
 
string StringOfClusterAddress_Get (void)
 
string StringOfName_Get (void)
 Return alias name of default name. More...
 
void Timeout_Set (sc_time &T)
 < Set timout facility for a thread
 

Public Attributes

struct {
   sc_core::sc_event   Charge
 Accumulates charge on the membrane, synaptic-unaware.
 
   sc_core::sc_event   Discharge
 Sends the spike to the axon.
 
   sc_core::sc_event   Leaking
 The neuron permanently loses its charge, periodically decreasing the charge.
 
   sc_core::sc_event   Recalculate
 In the case of prospective change of behavior, the new potential is calculated.
 
   sc_core::sc_event   Reset
 Puts the neurer in its initial state.
 
   sc_core::sc_event   Spiking
 The neuron takes the next current value and processes it.
 
   sc_core::sc_event   Trigger
 Puts the neurer in synaptic-aware more.
 
EVENT_NEURER
 These events are handled at abstract processor level.
 
- Public Attributes inherited from scHThread
struct {
   sc_core::sc_event   EXEC
 < New execution requested
 
   sc_core::sc_event   EXECUTED
 < New execution finished
 
   sc_core::sc_event   FETCH
 < New fetch requested
 
   sc_core::sc_event   NEXT
 < Next intruction is requested
 
EVENT_HTHREAD
 These events are handled at thread level.
 

Protected Attributes

scAxonalConnects_t m_Axons
 List of neurons where our axons lead to.
 
scSynapticConnects_t m_Synapses
 List of neurons where our synapses receive input.
 
sc_core::sc_time mActionPotentialBegin
 < Remember the beginning of the actual action potential
 
uint16_t mAmplitudeFactor
 Scale factors for the spike table.
 
int32_t mMembranePotential
 < The actual, measurable potential
 
int32_t mMembranePotentialOffset
 < The actual, measurable potential offset, applied externally
 
int mNoOfSynapticPoints
 Calculated runtime, actually as m_Synapses.size()
 
std::bitset< nsb_MaxmOperatingState
 The word of operating bits.
 
int mSpikeAmplitude
 Our shadow amplitude about spiking.
 
int mSpikeIndex
 The running index of the broken line.
 
int mSpikeTime
 Our shadow time about spiking.
 
sc_core::sc_event * mSynchronFrequency
 Contains which event resets the phase timing.
 
sc_core::sc_time mSynchronOffset
 Contains the time of the last synchronization event.
 
- Protected Attributes inherited from scHThread
CoreExecute_t exec
 All information relating to the execution.
 
CoreFetch_t fetch
 All info relating instruction fetch.
 
SC_ADDRESS_TYPE mInstrMemoryAddressEnd
 The first/last contents in the cache.
 
SC_WORD_TYPE mInstrMemoryBuffer [MAX_IGPCBUFFER_SIZE]
 Store received data&instr memory content here.
 
bool mTimedOut
 Is set when EVENT_GRID.TIMEOUT.notify() times out.
 

Additional Inherited Members

- Protected Member Functions inherited from scHThread
void EXEC_method (void)
 EXEC_method Runs when a thread receives an EVENT_HTHREAD.EXEC. More...
 
void FETCH_method (void)
 Runs when a next instruction is due to process It handles prefetching, suspending operation, handles execution of meta instructions and conventional instructions. More...
 
void NEXT_method (void)
 Runs when a next instruction should be taken from memory. More...
 

Member Function Documentation

◆ IncreaseActionPotentialWithCharge()

void AbstractNeurer::IncreaseActionPotentialWithCharge ( int  C)
inline

IncreaseActionPotentialWithCharge.

Parameters
Cthe charge as calculated by IntegratedCurrentInPeriod 10^{-12}C

◆ IntegratedCurrentInPeriod()

int AbstractNeurer::IntegratedCurrentInPeriod ( int  FromTime,
int  ToTime,
int  FromValue,
int  ToValue 
)
inline

IntegratedCurrentInPeriod A simple trapezoidal area (for short period, where the function is nearly linear)

Parameters
FromTimeThe beginning of the time period, in usec
ToTimeThe end of the time period, in usec
FromValueThe value of current at the beginning of the period, in nA
ToValueThe value of current at the end of the period, in nA
Returns
the total charge, in nA*usec == 10^{-15}C (i.e. A*sec), usable with IncreaseActionPotentialWithCharge

◆ MembranePotentialContribution_Add()

void AbstractNeurer::MembranePotentialContribution_Add ( int32_t  NewContrib)

Add a contribution to membrane's potential; changes states and initiates timed operations. For details see section How time-aware neuronal simulation works.

Parameters
[in]NewContribthe voltage contribution to add to present potential

◆ MembraneSynapticContribution_Add()

bool AbstractNeurer::MembraneSynapticContribution_Add ( int32_t  NewContrib)

Add a contribution from a synapse; called from a synapse handler; neglects input when 'Charging'.

Parameters
[in]NewContribthe new contribution from a synapse
Returns
true if the contribution accepted

◆ NeurerCondensatorCapacity_Get()

int AbstractNeurer::NeurerCondensatorCapacity_Get ( void  )
inline

NeurerCondensatorCapacity_Get.

Returns
the assumed capacity, in pF

It is assumed that the capacity of a neuronal condensator is 1uF/cm^2 == 10^{-2}pF/u^2 and the area is proportional with the number of synapses, and one synapsis if 10 u^2

◆ NeurerStateBit_Get()

bool AbstractNeurer::NeurerStateBit_Get ( NeurerOperatingBit_t  B)
inline

Get value of a bit in the state word AbstractNeurer::mOperatingState.

Parameters
[in]Bwhich bit in the state word to read
Returns
the value of bit

◆ NeurerStateBit_Set()

void AbstractNeurer::NeurerStateBit_Set ( NeurerOperatingBit_t  B,
bool  V 
)
inline

Set a bit in the state word AbstractNeurer::mOperatingState.

Parameters
[in]Bwhich bit in the state word to set
[in]Vthe new value of the bit

The documentation for this class was generated from the following file: