34#include "debug/RubyNetwork.hh"
68 DPRINTF(RubyNetwork,
"CrossbarSwitch at Router %d woke up "
73 if (!switch_buffer.isReady(
curTick())) {
77 flit *t_flit = switch_buffer.peekTopFlit();
87 m_router->getOutputUnit(outport)->insert_flit(t_flit);
88 switch_buffer.getTopFlit();
99 if (switch_buffer.functionalRead(pkt,
mask))
108 uint32_t num_functional_writes = 0;
111 num_functional_writes += switch_buffer.functionalWrite(pkt);
114 return num_functional_writes;
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)
uint32_t functionalWrite(Packet *pkt)
CrossbarSwitch(Router *router)
bool functionalRead(Packet *pkt, WriteMask &mask)
std::vector< flitBuffer > switchBuffers
double m_crossbar_activity
bool is_stage(flit_stage stage, Tick time)
void advance_stage(flit_stage t_stage, Tick newTime)
Copyright (c) 2024 Arm Limited All rights reserved.
Tick curTick()
The universal simulation clock.