gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
OutputUnit Class Reference

#include <OutputUnit.hh>

Inheritance diagram for OutputUnit:
Consumer

Public Member Functions

 OutputUnit (int id, PortDirection direction, Router *router)
 
 ~OutputUnit ()
 
void set_out_link (NetworkLink *link)
 
void set_credit_link (CreditLink *credit_link)
 
void wakeup ()
 
flitBuffergetOutQueue ()
 
void print (std::ostream &out) const
 
void decrement_credit (int out_vc)
 
void increment_credit (int out_vc)
 
bool has_credit (int out_vc)
 
bool has_free_vc (int vnet)
 
int select_free_vc (int vnet)
 
PortDirection get_direction ()
 
int get_credit_count (int vc)
 
int get_outlink_id ()
 
void set_vc_state (VC_state_type state, int vc, Cycles curTime)
 
bool is_vc_idle (int vc, Cycles curTime)
 
void insert_flit (flit *t_flit)
 
uint32_t functionalWrite (Packet *pkt)
 
- Public Member Functions inherited from Consumer
 Consumer (ClockedObject *_em)
 
virtual ~Consumer ()
 
virtual void storeEventInfo (int info)
 
bool alreadyScheduled (Tick time)
 
void insertScheduledWakeupTime (Tick time)
 
void scheduleEventAbsolute (Tick timeAbs)
 

Private Attributes

int m_id
 
PortDirection m_direction
 
int m_num_vcs
 
int m_vc_per_vnet
 
Routerm_router
 
NetworkLinkm_out_link
 
CreditLinkm_credit_link
 
flitBufferm_out_buffer
 
std::vector< OutVcState * > m_outvc_state
 

Additional Inherited Members

- Protected Member Functions inherited from Consumer
void scheduleEvent (Cycles timeDelta)
 

Detailed Description

Definition at line 48 of file OutputUnit.hh.

Constructor & Destructor Documentation

OutputUnit::OutputUnit ( int  id,
PortDirection  direction,
Router router 
)
OutputUnit::~OutputUnit ( )

Definition at line 59 of file OutputUnit.cc.

References m5::stl_helpers::deletePointers(), m_out_buffer, and m_outvc_state.

Member Function Documentation

void OutputUnit::decrement_credit ( int  out_vc)

Definition at line 66 of file OutputUnit.cc.

References Clocked::curCycle(), DPRINTF, Router::get_id(), m_id, m_outvc_state, and m_router.

uint32_t OutputUnit::functionalWrite ( Packet pkt)

Definition at line 165 of file OutputUnit.cc.

References flitBuffer::functionalWrite(), and m_out_buffer.

int OutputUnit::get_credit_count ( int  vc)
inline

Definition at line 67 of file OutputUnit.hh.

References m_outvc_state.

PortDirection OutputUnit::get_direction ( )
inline

Definition at line 64 of file OutputUnit.hh.

References m_direction.

int OutputUnit::get_outlink_id ( )
inline

Definition at line 73 of file OutputUnit.hh.

References NetworkLink::get_id(), and m_out_link.

flitBuffer * OutputUnit::getOutQueue ( )

Definition at line 147 of file OutputUnit.cc.

References m_out_buffer.

Referenced by Router::addOutPort().

bool OutputUnit::has_credit ( int  out_vc)

Definition at line 89 of file OutputUnit.cc.

References ACTIVE_, Clocked::curCycle(), m_outvc_state, and m_router.

bool OutputUnit::has_free_vc ( int  vnet)

Definition at line 98 of file OutputUnit.cc.

References Clocked::curCycle(), is_vc_idle(), m_router, and m_vc_per_vnet.

void OutputUnit::increment_credit ( int  out_vc)

Definition at line 76 of file OutputUnit.cc.

References Clocked::curCycle(), DPRINTF, Router::get_id(), m_id, m_outvc_state, and m_router.

Referenced by wakeup().

void OutputUnit::insert_flit ( flit t_flit)
inline
bool OutputUnit::is_vc_idle ( int  vc,
Cycles  curTime 
)
inline

Definition at line 85 of file OutputUnit.hh.

References IDLE_, and m_outvc_state.

Referenced by has_free_vc(), and select_free_vc().

void OutputUnit::print ( std::ostream &  out) const
inlinevirtual

Implements Consumer.

Definition at line 57 of file OutputUnit.hh.

int OutputUnit::select_free_vc ( int  vnet)
void OutputUnit::set_credit_link ( CreditLink credit_link)

Definition at line 159 of file OutputUnit.cc.

References m_credit_link.

Referenced by Router::addOutPort().

void OutputUnit::set_out_link ( NetworkLink link)

Definition at line 153 of file OutputUnit.cc.

References m_out_link.

Referenced by Router::addOutPort().

void OutputUnit::set_vc_state ( VC_state_type  state,
int  vc,
Cycles  curTime 
)
inline

Definition at line 79 of file OutputUnit.hh.

References m_outvc_state.

Referenced by wakeup().

void OutputUnit::wakeup ( )
virtual

Member Data Documentation

CreditLink* OutputUnit::m_credit_link
private

Definition at line 106 of file OutputUnit.hh.

Referenced by set_credit_link(), and wakeup().

PortDirection OutputUnit::m_direction
private

Definition at line 101 of file OutputUnit.hh.

Referenced by get_direction(), and OutputUnit().

int OutputUnit::m_id
private

Definition at line 100 of file OutputUnit.hh.

Referenced by decrement_credit(), increment_credit(), and OutputUnit().

int OutputUnit::m_num_vcs
private

Definition at line 102 of file OutputUnit.hh.

Referenced by OutputUnit().

flitBuffer* OutputUnit::m_out_buffer
private

Definition at line 108 of file OutputUnit.hh.

Referenced by functionalWrite(), getOutQueue(), insert_flit(), OutputUnit(), and ~OutputUnit().

NetworkLink* OutputUnit::m_out_link
private

Definition at line 105 of file OutputUnit.hh.

Referenced by get_outlink_id(), insert_flit(), and set_out_link().

std::vector<OutVcState *> OutputUnit::m_outvc_state
private
Router* OutputUnit::m_router
private
int OutputUnit::m_vc_per_vnet
private

Definition at line 103 of file OutputUnit.hh.

Referenced by has_free_vc(), OutputUnit(), and select_free_vc().


The documentation for this class was generated from the following files:

Generated on Fri Jun 9 2017 13:04:16 for gem5 by doxygen 1.8.6