34 #include "debug/RubyNetwork.hh" 41 :
Consumer(router), m_router(router), m_id(id), m_direction(direction),
42 m_vc_per_vnet(m_router->get_vc_per_vnet())
54 for (
int i=0;
i < m_num_vcs;
i++) {
109 if (pipe_stages == 1) {
114 assert(pipe_stages > 1);
132 Credit *t_credit =
new Credit(in_vc, free_signal, curTime);
141 uint32_t num_functional_writes = 0;
143 num_functional_writes += virtual_channel.functionalWrite(pkt);
146 return num_functional_writes;
Cycles is a wrapper class for representing cycle counts, i.e.
int route_compute(RouteInfo route, int inport, PortDirection direction)
Overload hash function for BasicBlockRange type.
void scheduleEventAbsolute(Tick timeAbs)
void schedule_wakeup(Cycles time)
std::string PortDirection
Cycles curCycle() const
Determine the current cycle, corresponding to a tick aligned to a clock edge.
A Packet is used to encapsulate a transfer between two objects in the memory system (e...
Tick clockEdge(Cycles cycles=Cycles(0)) const
Determine the tick when a cycle begins, by default the current one, but the argument also enables the...
bool isReady(Cycles curTime)
void advance_stage(flit_stage t_stage, Cycles newTime)