Go to the documentation of this file.
12 #ifndef SCGATESPROCESSOR_H
13 #define SCGATESPROCESSOR_H
112 msSignalPort[MAX_HTHREADS];
114 msSignal[MAX_HTHREADS];
128 scGatesProcessor(sc_core::sc_module_name nm, vector<scGridPoint*> Specials,
bool StandAlone);
132 msSignalMask[MAX_HTHREADS];
140 Initialize_method(
void);
141 void Populate(vector<scGridPoint*>& Specials);
153 ClusterHead_Get(
int i)
160 scGridPoint* ByPosition_Get(
const int X,
const int Y)
170 scGridPoint* ByIDMask_Get(SC_GRIDPOINT_MASK_TYPE Mask)
171 {
return ByID_Get(MaskToID(Mask));}
187 void ConnectIGPCBs(
void);
188 void ConnectClusterHeadsToBus(scClusterBus* Bus);
189 SC_GRIDPOINT_MASK_TYPE
190 DeniedMask_Get(SC_HTHREAD_ID_TYPE H=0) {
return msSignalMask[H].Denied;}
193 SC_GRIDPOINT_MASK_TYPE
194 AllocatedMask_Get(SC_HTHREAD_ID_TYPE H=0) {
return msSignalMask[H].Allocated;}
196 AllocatedMask_Set(SC_GRIDPOINT_MASK_TYPE M, SC_HTHREAD_ID_TYPE H=0) {msSignalMask[H].Allocated = M;}
198 AllocatedMaskBit_Set(
scGridPoint* GP,
bool P=
true);
199 SC_GRIDPOINT_MASK_TYPE
200 PreAllocatedMask_Get(SC_HTHREAD_ID_TYPE H=0) {
return msSignalMask[H].PreAllocated;}
202 PreAllocatedMask_Set(SC_GRIDPOINT_MASK_TYPE M, SC_HTHREAD_ID_TYPE H=0) { msSignalMask[H].PreAllocated = M;}
204 PreAllocatedMaskBit_Set(
scGridPoint* GP,
bool P=
true);
205 SC_GRIDPOINT_MASK_TYPE
206 AvailableMask_Get(SC_HTHREAD_ID_TYPE H=0)
207 {
return ~UnavailableMask_Get(H);}
208 SC_GRIDPOINT_MASK_TYPE
209 UnavailableMask_Get(SC_HTHREAD_ID_TYPE H=0);
227 StringOfTime_Get(
void){
return sc_time_to_nsec_Get();}
229 RegisterName_Get(
int Index);
240 ChildCount_Get(
void){
return mChildren.size();}
259 SC_GRIDPOINT_MASK_TYPE CloneMask,
260 SC_GRIDPOINT_MASK_TYPE BackLinkMask,
263 doReboot(SC_ADDRESS_TYPE A){
return (
scHThread*)NULL;}
272 PrologString_Get(
void);
275 SC_GRIDPOINT_MASK_TYPE
276 PreAllocatedForProcMask_Get(SC_HTHREAD_ID_TYPE H=0){
return msMask[H].PreAllocatedForTopology;}
279 PreAllocatedForProcMaskBit_Set(
scGridPoint* C,
bool V);
281 IsSuspended(
void){
return msSuspended;}
283 SuspendedBit_Set(
bool b){msSuspended = b;}
285 Halted_Get(
void) {
return msHalted;}
287 Halted_Set(
bool B){ msHalted = B;}
294 InstanceCount_Get(
void) {
return mInstanceCount % 50;}
299 { m_GridHThreadMap[A] = HT;}
302 {
return ByClusterAddress_Get(CA)->HThread_Get(CA.
HThread);}
305 SignalMaskBit_Set(SC_GRIDPOINT_MASK_TYPE &Signal, SC_GRIDPOINT_MASK_TYPE GPMask,
306 bool State,
string S, SC_HTHREAD_ID_TYPE H=0);
312 SUSPEND_thread(
void);
318 msMask[MAX_HTHREADS];
329 std::map <string,scHThread*>
333 SetMasks_method(
void);
338 #endif // SCGATESPROCESSOR_H
This is a processor class comprising communicating scGridPoint classes. Comprises and handles the scG...
Definition: scGatesProcessor.h:108
GridPoint * ByID_Get(const int N)
Get a gridpoint by its absolute sequence number and thread.
GridPoint * ByPosition_Get(int X, int Y)
Get a gridpoint by its topological position (NOT index!)
GridPoint * ByClusterPointer_Get(GridPoint *P, ClusterNeighbor CM=cm_Head)
Return the pointer corresponding to the in-cluster member CM of cluster.
The scIGPMessage class.
Definition: scIGPMessage.h:97
The header of the bus arbiter.
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
GridPoint * ByClusterAddress_Get(ClusterAddress_t C)
Get a GridPoint pointer given by its ClusterAddress_t C, a specialized integer (network-like address)
HThreadPreference_t
Definition: scHThread.h:28
GridPoint * ClusterHead_Get(unsigned int N)
Return pointer to the cluster head of the Nth cluster.
Definition: AbstractTopology.h:186
ClusterNeighbor
The neighborship in the cluster: the members are referred to with their geographic direction.
Definition: Clustering.h:34
Function prototypes for the topology of electronic modules, placed on a die. It adds sc facilities – ...
This class implements the autonomous grid point functionality: it is a communicating GridPoint....
Definition: scGridPoint.h:127
A GridPoint can be addressed also by its cluster address of type ClusterAddress_t....
Definition: Clustering.h:58
string StringOfClusterAddress_Get(void)
GridPoint * ByClusterMember_Get(unsigned short int CN, ClusterNeighbor CM=cm_Head, ClusterNeighbor CP=cm_Head)
GridPoint * ByIndex_Get(const int X, const int Y)
Get a gridpoint defined by its indices (!NOT position)
@ cm_Head
The central gridpoint.
Definition: Clustering.h:35
uint32_t HThread
The 'hardware thread' the module handles.
Definition: Clustering.h:59
CorePreference_t
Definition: scProcessor.h:62
The anchestor of all ScQt-based simulators, using EMPA bus The simulator manipulates scGridPoints,...
Definition: scSimulator.h:29
GridPoint * ClusterHeadOfMember_Get(GridPoint *GP)
Return the cluster head of GridPoint GP.