34 #ifndef __MEM_RUBY_NETWORK_GARNET_OUTPUT_UNIT_HH__
35 #define __MEM_RUBY_NETWORK_GARNET_OUTPUT_UNIT_HH__
57 void print(std::ostream& out)
const {};
113 #endif // __MEM_RUBY_NETWORK_GARNET_OUTPUT_UNIT_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)
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 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...
void set_credit_link(CreditLink *credit_link)
bool has_free_vc(int vnet)
int get_credit_count(int vc)
void increment_credit(int out_vc)
flitBuffer * m_out_buffer
OutputUnit(int id, PortDirection direction, Router *router)
void print(std::ostream &out) const
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)