34 #ifndef __MEM_RUBY_NETWORK_GARNET2_0_OUTPUTUNIT_HH__ 35 #define __MEM_RUBY_NETWORK_GARNET2_0_OUTPUTUNIT_HH__ 57 void print(std::ostream& out)
const {};
113 #endif // __MEM_RUBY_NETWORK_GARNET2_0_OUTPUTUNIT_HH__
void set_out_link(NetworkLink *link)
Cycles is a wrapper class for representing cycle counts, i.e.
void decrement_credit(int out_vc)
PortDirection get_direction()
CreditLink * m_credit_link
flitBuffer * getOutQueue()
void scheduleEventAbsolute(Tick timeAbs)
bool has_credit(int out_vc)
std::string PortDirection
PortDirection m_direction
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...
void set_credit_link(CreditLink *credit_link)
bool has_free_vc(int vnet)
void print(std::ostream &out) const
int get_credit_count(int vc)
void increment_credit(int out_vc)
flitBuffer * m_out_buffer
OutputUnit(int id, PortDirection direction, Router *router)
bool is_vc_idle(int vc, Cycles curTime)
uint32_t functionalWrite(Packet *pkt)
std::vector< OutVcState * > m_outvc_state
void set_vc_state(VC_state_type state, int vc, Cycles curTime)
int select_free_vc(int vnet)
void insert_flit(flit *t_flit)