23 #ifndef scClusterBus_h
24 #define scClusterBus_h
33 #include "scClusterBus_non_blocking_if.h"
42 public scClusterBusDirect_if
43 ,
public scClusterBus_non_blocking_if
44 ,
public scClusterBus_blocking_if
50 sc_port<scClusterBusArbiter_if> arbiter_port;
51 sc_port<scClusterBusSlave_if, 0> slave_port;
53 SC_HAS_PROCESS(scClusterBus);
56 scClusterBus(sc_module_name name_,
scProcessor* Proc
57 ,
bool verbose =
false)
60 , m_current_request(0)
69 virtual ~scClusterBus(
void){}
79 void read(
unsigned int unique_priority
84 void write(
unsigned int unique_priority
90 get_status(
unsigned int unique_priority);
94 burst_read(
unsigned int unique_priority
101 burst_write(
unsigned int unique_priority
106 ,
bool lock =
false);
111 void handle_request();
117 scProcessor* Processor_Get(
void){
return mProcessor;}
119 ClusterBusRequest_vec m_requests;
125 #endif // scClusterBus_h