34#include "debug/RubyNetwork.hh"
51 :
Consumer(router), m_router(router), m_id(
id), m_direction(direction),
52 m_vc_per_vnet(consumerVcs)
56 for (
int i = 0;
i < m_num_vcs;
i++) {
64 DPRINTF(RubyNetwork,
"Router %d OutputUnit %s decrementing credit:%d for "
76 DPRINTF(RubyNetwork,
"Router %d OutputUnit %s incrementing credit:%d for "
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...
Cycles is a wrapper class for representing cycle counts, i.e.
virtual std::string name() const
A Packet is used to encapsulate a transfer between two objects in the memory system (e....
void scheduleEventAbsolute(Tick timeAbs)
void scheduleEvent(Cycles timeDelta)
bool isReady(Tick curTime)
void increment_credit(int out_vc)
bool has_free_vc(int vnet)
flitBuffer * getOutQueue()
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)
GarnetNetwork * get_net_ptr()
std::string getPortDirectionName(PortDirection direction)
bool functionalRead(Packet *pkt, WriteMask &mask)
uint32_t functionalWrite(Packet *pkt)
std::string PortDirection
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Tick curTick()
The universal simulation clock.