Go to the documentation of this file.
34 #include "debug/RubyNetwork.hh"
42 :
Consumer(router), m_router(router), m_id(
id), m_direction(direction),
43 m_vc_per_vnet(consumerVcs)
47 for (
int i = 0;
i < m_num_vcs;
i++) {
55 DPRINTF(RubyNetwork,
"Router %d OutputUnit %s decrementing credit:%d for "
67 DPRINTF(RubyNetwork,
"Router %d OutputUnit %s incrementing credit:%d for "
CreditLink * m_credit_link
bool has_free_vc(int vnet)
flitBuffer * getOutQueue()
uint32_t functionalWrite(Packet *pkt)
bool has_credit(int out_vc)
void increment_credit(int out_vc)
std::vector< OutVcState > outVcState
bool is_vc_idle(int vc, Tick curTime)
uint32_t functionalWrite(Packet *pkt)
void set_credit_link(CreditLink *credit_link)
void set_out_link(NetworkLink *link)
void decrement_credit(int out_vc)
Cycles curCycle() const
Determine the current cycle, corresponding to a tick aligned to a clock edge.
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...
int select_free_vc(int vnet)
void insert_flit(flit *t_flit)
void set_vc_state(VC_state_type state, int vc, Tick curTime)
std::string getPortDirectionName(PortDirection direction)
virtual const std::string name() const
void scheduleEventAbsolute(Tick timeAbs)
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Cycles is a wrapper class for representing cycle counts, i.e.
std::string PortDirection
PortDirection get_direction()
GarnetNetwork * get_net_ptr()
bool isReady(Tick curTime)
void scheduleEvent(Cycles timeDelta)
int get_credit_count(int vc)
Tick curTick()
The current simulated tick.
OutputUnit(int id, PortDirection direction, Router *router, uint32_t consumerVcs)
Generated on Wed Sep 30 2020 14:02:13 for gem5 by doxygen 1.8.17