34#include "debug/RubyNetwork.hh"
54 const int m_num_vcs = consumerVcs *
m_router->get_num_vnets();
56 for (
int i = 0;
i < m_num_vcs;
i++) {
64 DPRINTF(RubyNetwork,
"Router %d OutputUnit %s decrementing credit:%d for "
65 "outvc %d at time: %lld for %s\n",
m_router->get_id(),
76 DPRINTF(RubyNetwork,
"Router %d OutputUnit %s incrementing credit:%d for "
77 "outvc %d at time: %lld from:%s\n",
m_router->get_id(),
Cycles is a wrapper class for representing cycle counts, i.e.
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
Consumer(ClockedObject *em, Event::Priority ev_prio=Event::Default_Pri)
void scheduleEvent(Cycles timeDelta)
PortDirection m_direction
void increment_credit(int out_vc)
bool has_free_vc(int vnet)
flitBuffer * getOutQueue()
GEM5_CLASS_VAR_USED int m_id
int get_credit_count(int vc)
void set_out_link(NetworkLink *link)
void decrement_credit(int out_vc)
uint32_t functionalWrite(Packet *pkt)
int select_free_vc(int vnet)
bool has_credit(int out_vc)
void set_vc_state(VC_state_type state, int vc, Tick curTime)
bool functionalRead(Packet *pkt, WriteMask &mask)
std::vector< OutVcState > outVcState
void insert_flit(flit *t_flit)
bool is_vc_idle(int vc, Tick curTime)
void set_credit_link(CreditLink *credit_link)
CreditLink * m_credit_link
PortDirection get_direction()
OutputUnit(int id, PortDirection direction, Router *router, uint32_t consumerVcs)
std::string PortDirection
Copyright (c) 2024 Arm Limited All rights reserved.
Tick curTick()
The universal simulation clock.