This class implements a 2-input gate object, mainly to demonstrate how tho use the system for electronic design.
The gates have 2 inputs and one output. Their internal state variable defines gate's type: what operation the gate performs. The gate has an operating time. It receives event EVENT_GATE.InputChanged, and after the operating time, in recalculates its output and sends an event EVENT_GATE.InputChanged to the gate connected to its output. That event is timed: i.e. the receiver scGate2Input receives it only when the signal passed the distance between them.
* |GridPoint * |--/scGridPoint * |..../scGate2Input *
This module does not use communication: it simply relies on transmitting electronic signals, represented as an sc_core::sc_event.
Inheritance diagram for scGate2Input:Public Member Functions | |
| scGate2Input (sc_core::sc_module_name nm, scGatesProcessor *Processor, const GridPoint GP, bool StandAlone) | |
| scGridPoint Creates simple gate with 2 inputs for Processor at position GP, with name nm More... | |
Public Member Functions inherited from scGridPoint | |
| void | AddDefaultAliasNames (void) |
| void | AddHThread (unsigned int H, scHThread *P) |
| < Add a HW thread to the scGridPoint | |
| core_cooperationmode_t | CooperationMode_Get (void) |
| Send a notification to the thread that the requested memory content is available. | |
| scIGPMessage * | CreateQtCreateMessageTo (scGridPoint *To, SC_ADDRESS_TYPE PC, SC_GRIDPOINT_MASK_TYPE Mask, SC_GRIDPOINT_MASK_TYPE BackMask) |
| scGridPoint::CreateQtCreateMessageTo It can be needed to pass a QT message for Q_CREATE and Q_KILL More... | |
| virtual void | CreateThreads (void) |
| < Create threads for HThreads sharing this processing unit More... | |
| virtual bool | doExecInstruction (scHThread *H) |
| Send a message. | |
| virtual bool | doFetchInstruction (scHThread *H) |
| doFetchInstruction The actual fetching is done in the subclassed routine Here it imitates the action with a 10 ns wait | |
| virtual void | doSetQTAddresses (scGridPoint *Parent) |
| doSetQTAddresses More... | |
| void | EXEC_thread () |
| EXEC_thread makes the actual "instruction exec". | |
| void | FETCH_thread () |
| FETCH_thread makes the actual "instruction fetch". | |
| bool | HThreadAllocatedBit_Get (SC_HTHREAD_ID_TYPE H) |
| < Return if HThread is active | |
| void | HThreadAllocatedBit_Set (SC_HTHREAD_ID_TYPE H, bool B) |
| < Set thread H either active or inactive | |
| scHThread * | HThreadExec_Get (void) |
| < Return the executing thread | |
| scHThread * | HThreadFetch_Get (void) |
| < Return the fetching thread | |
| scHThread * | HThreadReceive_Get (void) |
| < Return the fetching thread | |
| scHThread * | HThreadSend_Get (void) |
| < Return the fetching thread | |
| SC_GRIDPOINT_ID_TYPE | ID_Get () |
| < Return the unique ID of the scGridPoint | |
| SC_GRIDPOINT_MASK_TYPE | IDMask_Get (void) |
| < Return the mask form of the ID | |
| scIGPCB * | IGPCB_Get (ClusterNeighbor index) |
| < Get address of the communication block | |
| string | Name_Get (void) |
| < Return the SC name of the module | |
| void | ObservedHThreadBit_Set (SC_HTHREAD_MASK_TYPE M, bool B) |
| Set if HThread M is observed. More... | |
| void | PreAllocatedMaskBit_Set (scGridPoint *C, bool V=true) |
| Get the mask of allocating cores. | |
| scGridPoint * | PreAllocateFor (scGridPoint *Parent) |
| Allocate this core for running a QT. | |
| scGridPoint (sc_core::sc_module_name nm, scProcessor *Processor, const GridPoint GP, bool StandAlone) | |
| scGridPoint Creates an GP for Processor scGridPoint at position, with name nm More... | |
| void | SEND_thread () |
| SEND_thread Send the actual message. | |
| void | SIGNAL_method (void) |
| ClusterHead_Get. More... | |
| string | StringOfClusterAddress_Get (void) |
| string | StringOfMemoryAddress_Get (void) |
| ! Removed temporarily, until NEXT in AbstractCore fully implemented | |
Public Member Functions inherited from GridPoint | |
| ClusterAddress_t | ClusterAddress_Get (void) |
| < Return the cluster address of the gridpoint, stored in the matrix | |
| void | ClusterAddress_Set (ClusterAddress_t CA) |
| Set the cluster address of the gridpoint. | |
| void | ClusterAddressHThread_Set (int H) |
| Set the cluster address of the gridpoint. | |
| ClusterStatus | ClusterStatus_Get (void) |
| Return the status of the gridpoint. | |
| void | ClusterStatus_Set (ClusterStatus CS) |
| Set the cstatus of the gridpoint. | |
| bool | Is2ndNeighborOf (GridPoint *GP) |
| Return true if we are a second neighbor of GP. More... | |
| bool | IsInTheSameClusterAs (GridPoint *GP) |
| Return true if we and GridPoint GP are in the same cluster. More... | |
| bool | IsNeighborOf (GridPoint *GP) |
| Return true if we are an immediate neighbor of GP. More... | |
| bool | IsTheSameAs (GridPoint *GP) |
| Return true if GridPoint GP is identical with us. More... | |
| string | StringOfClusterAddressName_Get (void) |
| Return the string form of our cluster address. More... | |
| string | StringOfThread_Get () |
| Return the string describing the actual thread. More... | |
Additional Inherited Members | |
Public Attributes inherited from GridPoint | |
| ClusterAddress_t | mClusterAddress |
| The ClusterAddress_t address of the gridpoint. | |
| int8_t | X |
| The X index of the gridpont. | |
| int8_t | Y |
| The Y index of the gridpont. | |
Public Attributes inherited from scIGPMessage_if | |
| scGPMessagefifo * | GPMessagefifo |
| This stores the messages for this gridpoint. | |
| scTimedIGPMessage_fifo * | TimedFIFO |
| This stores the timed message for this gridpoint. | |
Protected Member Functions inherited from scGridPoint | |
| scIGPMessage * | CreateMessageTo (scGridPoint *To, IGPMessageType Type, int Length) |
| Create a message and put the addresses into the message. More... | |
Protected Member Functions inherited from scIGPMessage_if | |
| void | ReceiveMessage_thread (void) |
| This thread receives a message from outside, from any the scGridPoint. | |
| void | ReceiveTimedMessage_thread (void) |
| ReceiveTimedMessage_thread The message can be received form any other scGricPoint. | |
Protected Attributes inherited from scGridPoint | |
| scHThread * | mHThreads [MAX_HTHREADS] |
| Stores the address of HThreads. | |
| SC_HTHREAD_MASK_TYPE | mObservedHThreads |
| The observed HThreads of this scGridPoint. | |
| core_cooperationmode_t | msCooperationMode |
| SC_GRIDPOINT_ID_TYPE | msID |
| ID if the scGridPoint. | |
| GridPointMask_t | msMask |
| This aggregate comprises all masks belonging to the GridPoint. | |
| scGridPoint * | msParent |
| Parent gridpoint. | |
| GridPointSignal_t | msSignal |
| This aggregate comprises all signals shown to the outer world. | |
| sc_time | msWaitBegin |
| The beginning of the waiting period. | |
Protected Attributes inherited from scIGPMessage_if | |
| uint16_t | mBusPriority |
| The bus priority when the scGridPoint is master. | |
| scProcessor * | msProcessor |
| Just remember where we were born. | |
| scGate2Input::scGate2Input | ( | sc_core::sc_module_name | nm, |
| scGatesProcessor * | Processor, | ||
| const GridPoint | GP, | ||
| bool | StandAlone | ||
| ) |
scGridPoint Creates simple gate with 2 inputs for Processor at position GP, with name nm
| nm | The SystemC name of the module |
| Processor | owner of the scGridPoint |
| GP | position of the new scGridPoint |
| StandAlone | if the new object is to be initiad as stand-alone |