MatchLib
|
Wormhole Router with virtual channels. More...
#include <WHVCRouter.h>
Public Types | |
enum | { num_lports = BaseClass::num_lports, num_rports = BaseClass::num_rports, num_ports = BaseClass::num_ports, num_vchannels = BaseClass::num_vchannels, log_num_rports = BaseClass::log_num_rports, log_num_ports = BaseClass::log_num_ports, log_num_vchannels = BaseClass::log_num_vchannels, dest_width_per_hop = log_num_rports + num_lports, dest_width = MaxHops * dest_width_per_hop } |
typedef WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType > | BaseClass |
typedef FlitType | Flit_t |
Public Types inherited from WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType > | |
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 | |
WHVCSourceRouter (sc_module_name name_) | |
NVUINTW (num_ports) out_dest[num_ports][num_vchannels] | |
NVUINTW (num_ports) out_stall | |
void | inputvc_arbiter (NVUINTW(log_num_vchannels) vcin[num_ports], NVUINTW(num_ports)&in_valid) |
void | compute_route (Flit_t flit_in[num_ports], NVUINTW(log_num_vchannels) vcin[num_ports], NVUINTW(num_ports) in_valid) |
void | flit_output (bool is_push[num_ports], NVUINTW(log_num_vchannels) vcout[num_ports]) |
void | arbitration (Flit_t flit_in[num_ports], NVUINTW(num_ports) in_valid, NVUINTW(log_num_vchannels) vcin[num_ports], NVUINTW(num_ports) valid[num_ports], NVUINTW(num_ports) select[num_ports], NVUINTW(log_num_ports) select_id[num_ports]) |
void | reset () |
void | run () |
Public Member Functions inherited from WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType > | |
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]) |
void | process () |
Public Attributes | |
Arbiter< num_ports > | arbiter [num_ports] |
bool | is_get_new_packet [num_ports *num_vchannels] |
Public Attributes inherited from WHVCRouterBase< NumLPorts, NumRports, NumVchannels, BufferSize, FlitType > | |
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] |
Wormhole Router with virtual channels.
NumLPorts | Number of local ingress/egress ports |
NumRports | Number of remote ports |
NumVchannels | Number of virtual channels |
BufferSize | Buffersize of input fifo |
FlitType | Indicates the Flit type |
MaxHops | Indicates Max. number of hops for SourceRouting |
Definition at line 257 of file WHVCRouter.h.