MatchLib
All Classes Namespaces Files Functions Modules Pages
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType > Class Template Reference
Inheritance diagram for WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >:

Public Types

enum  {
  num_lports = NumLPorts , num_rports = NumRports , num_ports = num_lports + num_rports , num_vchannels = NumVchannels ,
  log_num_vchannels = nvhls::index_width<num_vchannels>::val , log_num_lports = nvhls::index_width<num_lports>::val , log_num_rports = nvhls::index_width<num_rports>::val , log_num_ports = nvhls::index_width<num_ports>::val ,
  buffersize = BufferSize , log_buffersize = nvhls::index_width<buffersize>::val , log_buffersizeplus1 = nvhls::index_width<buffersize + 1>::val
}
 
typedef FlitType Flit_t
 

Public Member Functions

typedef NVUINTW (log_buffersizeplus1) Credit_t
 
typedef NVUINTW (1) Credit_ret_t
 
 SC_HAS_PROCESS (WHVCRouterBase)
 
 WHVCRouterBase (sc_module_name name_)
 
void receive_credit ()
 
void send_credit ()
 
void fill_ififo ()
 
void peek_ififo (Flit_t flit_in[num_ports], NVUINTW(log_num_vchannels) vcin[num_ports], NVUINTW(num_ports) in_valid)
 
void crossbar_traversal (Flit_t flit_in[num_ports], bool is_push[num_ports], NVUINTW(log_num_ports) select_id[num_ports], NVUINTW(log_num_vchannels) vcin[num_ports], NVUINTW(log_num_vchannels) vcout[num_ports])
 
virtual void reset ()
 
virtual void run ()
 
void process ()
 

Public Attributes

Connections::In< Flit_t > in_port [num_ports]
 
Connections::Out< Flit_t > out_port [num_ports]
 
Connections::In< Credit_ret_t > in_credit [num_ports *num_vchannels]
 
Connections::Out< Credit_ret_t > out_credit [num_ports *num_vchannels]
 
sc_in_clk clk
 
sc_in< bool > rst
 
FIFO< Flit_t, buffersize, num_ports *num_vchannels > ififo
 
Credit_t credit_recv [num_ports *num_vchannels]
 
Credit_t credit_send [num_ports *num_vchannels]
 
Flit_t flit_out [num_ports]
 

Static Public Attributes

static const int kDebugLevel = 2
 

Detailed Description

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
class WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >

Definition at line 50 of file WHVCRouter.h.

Member Typedef Documentation

◆ Flit_t

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
typedef FlitType WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::Flit_t

Definition at line 53 of file WHVCRouter.h.

Member Enumeration Documentation

◆ anonymous enum

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
anonymous enum

Definition at line 55 of file WHVCRouter.h.

Constructor & Destructor Documentation

◆ WHVCRouterBase()

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::WHVCRouterBase ( sc_module_name  name_)
inline

Definition at line 96 of file WHVCRouter.h.

Member Function Documentation

◆ receive_credit()

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
void WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::receive_credit ( )
inline

Definition at line 103 of file WHVCRouter.h.

◆ send_credit()

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
void WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::send_credit ( )
inline

Definition at line 117 of file WHVCRouter.h.

◆ fill_ififo()

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
void WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::fill_ififo ( )
inline

Definition at line 133 of file WHVCRouter.h.

◆ peek_ififo()

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
void WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::peek_ififo ( Flit_t  flit_in[num_ports],
NVUINTW(log_num_vchannels)  vcin[num_ports],
NVUINTW(num_ports)  in_valid 
)
inline

Definition at line 153 of file WHVCRouter.h.

◆ crossbar_traversal()

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
void WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::crossbar_traversal ( Flit_t  flit_in[num_ports],
bool  is_push[num_ports],
NVUINTW(log_num_ports)  select_id[num_ports],
NVUINTW(log_num_vchannels)  vcin[num_ports],
NVUINTW(log_num_vchannels)  vcout[num_ports] 
)
inline

Definition at line 170 of file WHVCRouter.h.

◆ reset()

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
virtual void WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::reset ( )
inlinevirtual

Definition at line 184 of file WHVCRouter.h.

◆ run()

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
virtual void WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::run ( )
inlinevirtual

Definition at line 185 of file WHVCRouter.h.

◆ process()

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
void WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::process ( )
inline

Definition at line 187 of file WHVCRouter.h.

Member Data Documentation

◆ kDebugLevel

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
const int WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::kDebugLevel = 2
static

Definition at line 52 of file WHVCRouter.h.

◆ in_port

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
Connections::In<Flit_t> WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::in_port[num_ports]

Definition at line 72 of file WHVCRouter.h.

◆ out_port

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
Connections::Out<Flit_t> WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::out_port[num_ports]

Definition at line 73 of file WHVCRouter.h.

◆ in_credit

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
Connections::In<Credit_ret_t> WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::in_credit[num_ports *num_vchannels]

Definition at line 79 of file WHVCRouter.h.

◆ out_credit

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
Connections::Out<Credit_ret_t> WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::out_credit[num_ports *num_vchannels]

Definition at line 80 of file WHVCRouter.h.

◆ clk

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
sc_in_clk WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::clk

Definition at line 81 of file WHVCRouter.h.

◆ rst

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
sc_in<bool> WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::rst

Definition at line 82 of file WHVCRouter.h.

◆ ififo

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
FIFO<Flit_t, buffersize, num_ports * num_vchannels> WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::ififo

Definition at line 85 of file WHVCRouter.h.

◆ credit_recv

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
Credit_t WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::credit_recv[num_ports *num_vchannels]

Definition at line 88 of file WHVCRouter.h.

◆ credit_send

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
Credit_t WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::credit_send[num_ports *num_vchannels]

Definition at line 89 of file WHVCRouter.h.

◆ flit_out

template<int NumLPorts, int NumRports, int NumVchannels, int BufferSize, typename FlitType = Flit<64, 0, 0, 0, FlitId2bit, WormHole>>
Flit_t WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType >::flit_out[num_ports]

Definition at line 92 of file WHVCRouter.h.


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