21 #include "../include/memtest.hpp"
22 #include "../include/memtest_processing.hpp"
23 #include "../include/memtest_pattern_library.hpp"
24 #include "../include/memtest_library.hpp"
25 #include "../../../../../HOST/custom/memtest/languages/cplusplus/include/config.h"
29 #define Data_t_in ap_axiu<INPUT_PTR_WIDTH, 0, 0, 0>
30 #define Data_t_out ap_axiu<OUTPUT_PTR_WIDTH, 0, 0, 0>
46 stream<NetworkWord> &siSHL_This_Data,
47 stream<NetworkWord> &soTHIS_Shl_Data,
48 stream<NetworkMetaStream> &siNrc_meta,
49 stream<NetworkMetaStream> &soNrc_meta,
50 ap_uint<32> *po_rx_ports
67 #pragma HLS INTERFACE axis register both port=siSHL_This_Data
68 #pragma HLS INTERFACE axis register both port=soTHIS_Shl_Data
70 #pragma HLS INTERFACE axis register both port=siNrc_meta
71 #pragma HLS INTERFACE axis register both port=soNrc_meta
73 #pragma HLS INTERFACE ap_ovld register port=po_rx_ports name=poROL_NRC_Rx_ports
74 #pragma HLS INTERFACE ap_stable register port=pi_rank name=piFMC_ROL_rank
75 #pragma HLS INTERFACE ap_stable register port=pi_size name=piFMC_ROL_size
82 const unsigned int num_outstanding_transactions = 256;
83 const unsigned int MAX_BURST_LENGTH_512=64;
86 #pragma HLS INTERFACE m_axi depth=ddr_mem_depth port=lcl_mem0 bundle=moMEM_Mp1\
87 max_read_burst_length=MAX_BURST_LENGTH_512 max_write_burst_length=MAX_BURST_LENGTH_512 offset=direct \
88 num_read_outstanding=num_outstanding_transactions num_write_outstanding=num_outstanding_transactions latency=ddr_latency
91 #pragma HLS INTERFACE m_axi depth=ddr_mem_depth port=lcl_mem1 bundle=moMEM_Mp1 \
92 max_read_burst_length=MAX_BURST_LENGTH_512 max_write_burst_length=MAX_BURST_LENGTH_512 offset=direct \
93 num_read_outstanding=num_outstanding_transactions num_write_outstanding=num_outstanding_transactions latency=ddr_latency
99 static stream<NetworkMetaStream> sRxtoProc_Meta(
"sRxtoProc_Meta");
100 static stream<NetworkMetaStream> sProctoTx_Meta(
"sProctoTx_Meta");
101 static stream<NetworkWord> sProcpToTxp_Data(
"sProcpToTxp_Data");
102 #pragma HLS STREAM variable=sProcpToTxp_Data depth=20 dim=1
103 static stream<NetworkWord> sRxpToProcp_Data(
"sRxpToProcp_Data");
105 static unsigned int processed_word_rx;
106 static unsigned int processed_bytes_rx;
107 static unsigned int processed_word_tx;
109 static stream<NodeId> sDstNode_sig (
"sDstNode_sig");
113 #pragma HLS reset variable=processed_word_rx
114 #pragma HLS reset variable=processed_word_tx
140 &processed_bytes_rx);
146 pTHISProcessingData<64>(
void pPortAndDestionation(ap_uint< 32 > *pi_rank, ap_uint< 32 > *pi_size, stream< NodeId > &sDstNode_sig, ap_uint< 32 > *po_rx_ports)
pPortAndDestionation - Setup the port and the destination rank.
void pRXPath(stream< NetworkWord > &siSHL_This_Data, stream< NetworkMetaStream > &siNrc_meta, stream< NetworkMetaStream > &sRxtoProc_Meta, stream< NetworkWord > &sRxpToProcp_Data, NetworkMetaStream meta_tmp, bool *start_stop, unsigned int *processed_word_rx, unsigned int *processed_bytes_rx)
Receive Path - From SHELL to THIS.
void memtest(ap_uint< 32 > *pi_rank, ap_uint< 32 > *pi_size, stream< NetworkWord > &siSHL_This_Data, stream< NetworkWord > &soTHIS_Shl_Data, stream< NetworkMetaStream > &siNrc_meta, stream< NetworkMetaStream > &soNrc_meta, ap_uint< 32 > *po_rx_ports, membus_t *lcl_mem0, membus_t *lcl_mem1)
Main process of the Memtest Application directives.
void pTXPath(stream< NetworkWord > &soTHIS_Shl_Data, stream< NetworkMetaStream > &soNrc_meta, stream< NetworkWord > &sProcpToTxp_Data, stream< NetworkMetaStream > &sRxtoTx_Meta, stream< NodeId > &sDstNode_sig, unsigned int *processed_word_tx, ap_uint< 32 > *pi_rank)
Transmit Path - From THIS to SHELL.