Go to the documentation of this file.
9 #ifndef scIGPMessage_if_h
10 #define scIGPMessage_if_h
20 #include "scClusterBusMaster_blocking.h"
37 using namespace sc_core;
38 using namespace sc_dt;
44 extern string sc_time_to_nsec_Get(
const int d,
const int w, sc_time T);
45 extern string DebugRoute;
47 #define DEBUG_CONTRIBUTE_STRING(D,S,M) \
48 DebugRoute.append(StringOfClusterAddress_Get() +"%" +string(S).append(M));
54 using namespace sc_core;
using namespace std;
111 public sc_core::sc_module
116 scClusterBusMaster_blocking*
137 BusPriority_Get(
void){
return mBusPriority;}
139 Processor_Get(
void) {
return msProcessor;}
145 StringOfClusterAddress_Get(
void) = 0;
156 void bus_action(
void);
161 ReceiveMessage_thread(
void);
167 ReceiveTimedMessage_thread(
void);
172 ID_Get(
void){
return msID;}
173 SC_GRIDPOINT_MASK_TYPE
174 IDMask_Get(
void){
return msMask.ID;}
187 ReceiveMessage_thread(
void);
189 ReceiveTimedMessage_thread(
void);
195 Parent_Get(
void) {
return msParent;}
203 return msIGPCB[index];
208 Register_Get(
int R){
return HThread_Get()->Register_Get(R);}
211 direct_read(
int *data,
unsigned int address);
213 direct_write(
int *data,
unsigned int address);
221 read(
int *data,
unsigned int address){
return CLUSTER_BUS_OK;}
223 write(
int *data,
unsigned int address){
return CLUSTER_BUS_OK;}
229 void bus_action(
void);
235 MakeFetch, FetchReady
245 StringOfMemoryAddress_Get(
void)
248 oss <<
"0x" << hex << std::setfill(
'0') << std::setw((FMEMORY_ADDRESS_WIDTH+3)/4) << msMemoryAddress << dec;
256 StringOfStatus_Get(
void)
259 oss <<
"0x" << hex << std::setfill(
'0') << std::setw(4) << mStatus << dec;
267 StringOfClusterAddress_Get(
void);
275 doWriteSignals(
void);
276 SC_GRIDPOINT_MASK_TYPE
277 PreAllocatedMask_Get(
void);
279 PreAllocatedMask_Set(SC_GRIDPOINT_MASK_TYPE Mask);
285 PreAllocatedMaskBit_Set(
scGridPoint* C,
bool V=
true);
289 uint32_t readDataMem(uint32_t addr,
int size);
291 scProcessor* Processor_Get(
void) {
return msProcessor;}
293 HandleSuspending(
void);
296 HThread_Get(
void) {
return mHThread;}
298 MemoryAddress_Set(SC_ADDRESS_TYPE MA) { msMemoryAddress = MA;}
300 QTOffset_Get(SC_HTHREAD_ID_TYPE H)
301 { assert((H>=0)&(H<MAX_HTHREADS));
return mHThreads[H]->QTOffset_Get();}
303 StringOfQT_Get(SC_HTHREAD_ID_TYPE H)
304 { assert((H>=0)&(H<MAX_HTHREADS));
return mHThreads[H]->StringOfQT_Get();}
307 CreateRegisterMessageTo(
scGridPoint* To, SC_GRIDPOINT_MASK_TYPE Mask);
318 CreateQtCreateMessageTo(
scGridPoint* To, SC_ADDRESS_TYPE PC, SC_GRIDPOINT_MASK_TYPE Mask, SC_GRIDPOINT_MASK_TYPE BackMask);
322 CreateSpecialMessageTo(
scGridPoint* To, int16_t Key, int8_t RegNo, int32_t R);
324 Status_Set(uint16_t S) {mStatus = S;}
326 Status_Get(
void) {
return mStatus;}
332 ConnectToClusterBus(scClusterBus* ClusterBus);
338 CreateMemoryReadMessage(
unsigned int Address,
int Length);
340 CreateMemoryWriteMessage(
unsigned int Address,
int Length);
342 FlagWordLength_Get(
void) {
return 0;}
370 #endif // scIGPMessage_if
Function prototypes for the EMPA simulator, LatchFIFO.
@ cm_Broadcast
All cluster members (broadcast)
Definition: Clustering.h:42
uint16_t mBusPriority
The bus priority when the scGridPoint is master.
Definition: scIGPMessage_if.h:365
Definition: scGPMessagefifo.h:43
Hardware threads (HThreads) for scGridPoints.
The scIGPMessage class.
Definition: scIGPMessage.h:97
The scHThread class.
Definition: scHThread.h:138
Implements a module-name alias facility (i.e., user-provided names. Given that the basic units is scH...
Definition: scProcessor.h:130
scTimedIGPMessage_fifo * TimedFIFO
This stores the timed message for this gridpoint.
Definition: scIGPMessage_if.h:141
This FIFO stores temporarily the messages from other gridpoints.
ClusterNeighbor
The neighborship in the cluster: the members are referred to with their geographic direction.
Definition: Clustering.h:34
This class implements the autonomous grid point functionality: it is a communicating GridPoint....
Definition: scGridPoint.h:127
Function prototypes for the.
The inter-cluster bus states.
scGPMessagefifo * GPMessagefifo
This stores the messages for this gridpoint.
Definition: scIGPMessage_if.h:143
scProcessor * msProcessor
Just remember where we were born.
Definition: scIGPMessage_if.h:361
The basic message types of scIGPMessage messages.
The FIFO stores messages ordered by their 'delayed delivery time'.
Definition: scTimedFIFO.h:58
This class communication interface for scIGPMessage communication for the autonous communication func...
Definition: scIGPMessage_if.h:109