Convert tab to space for alignment

This commit is contained in:
Runbin Shi 2022-10-10 09:47:20 +02:00
parent df9ee0cc7f
commit 8ff02a9a5a
1 changed files with 123 additions and 123 deletions

View File

@ -36,170 +36,170 @@ using namespace hls;
#define CLK_SIM 5000
#ifdef N_NODE_4
#define FWDMETA(srcNode) \
if (!s_axis_tx_meta_n##srcNode.empty() && !udpMetaVldN##srcNode){ \
s_axis_tx_meta_n##srcNode.read(udpMetaN##srcNode); \
udpMetaVldN##srcNode = true; \
if(udpMetaN##srcNode.their_address==ip_address_n0) \
m_axis_rx_meta_n0.write(udpMetaN##srcNode); \
else if(udpMetaN##srcNode.their_address==ip_address_n1) \
m_axis_rx_meta_n1.write(udpMetaN##srcNode); \
else if(udpMetaN##srcNode.their_address==ip_address_n2) \
m_axis_rx_meta_n2.write(udpMetaN##srcNode); \
else \
m_axis_rx_meta_n3.write(udpMetaN##srcNode); \
}
#define FWDMETA(srcNode) \
if (!s_axis_tx_meta_n##srcNode.empty() && !udpMetaVldN##srcNode){ \
s_axis_tx_meta_n##srcNode.read(udpMetaN##srcNode); \
udpMetaVldN##srcNode = true; \
if(udpMetaN##srcNode.their_address==ip_address_n0) \
m_axis_rx_meta_n0.write(udpMetaN##srcNode); \
else if(udpMetaN##srcNode.their_address==ip_address_n1) \
m_axis_rx_meta_n1.write(udpMetaN##srcNode); \
else if(udpMetaN##srcNode.their_address==ip_address_n2) \
m_axis_rx_meta_n2.write(udpMetaN##srcNode); \
else \
m_axis_rx_meta_n3.write(udpMetaN##srcNode); \
}
#else
#define FWDMETA(srcNode) \
if (!s_axis_tx_meta_n##srcNode.empty() && !udpMetaVldN##srcNode){ \
s_axis_tx_meta_n##srcNode.read(udpMetaN##srcNode); \
udpMetaVldN##srcNode = true; \
if(udpMetaN##srcNode.their_address==ip_address_n0) \
m_axis_rx_meta_n0.write(udpMetaN##srcNode); \
else if(udpMetaN##srcNode.their_address==ip_address_n1) \
m_axis_rx_meta_n1.write(udpMetaN##srcNode); \
else \
std::cout << "[ERROR] Non-existing IP:" << std::hex \
<< udpMetaN##srcNode.their_address << std::endl; \
}
#define FWDMETA(srcNode) \
if (!s_axis_tx_meta_n##srcNode.empty() && !udpMetaVldN##srcNode){ \
s_axis_tx_meta_n##srcNode.read(udpMetaN##srcNode); \
udpMetaVldN##srcNode = true; \
if(udpMetaN##srcNode.their_address==ip_address_n0) \
m_axis_rx_meta_n0.write(udpMetaN##srcNode); \
else if(udpMetaN##srcNode.their_address==ip_address_n1) \
m_axis_rx_meta_n1.write(udpMetaN##srcNode); \
else \
std::cout << "[ERROR] Non-existing IP:" << std::hex \
<< udpMetaN##srcNode.their_address << std::endl; \
}
#endif
#ifdef N_NODE_4
#define FWDDATA(srcNode) \
if (!s_axis_tx_data_n##srcNode.empty() && udpMetaVldN##srcNode){ \
s_axis_tx_data_n##srcNode.read(currWordN##srcNode); \
if(currWordN##srcNode.last) \
udpMetaVldN##srcNode = false; \
if(udpMetaN##srcNode.their_address==ip_address_n0) \
m_axis_rx_data_n0.write(currWordN##srcNode); \
else if(udpMetaN##srcNode.their_address==ip_address_n1) \
m_axis_rx_data_n1.write(currWordN##srcNode); \
else if(udpMetaN##srcNode.their_address==ip_address_n2) \
m_axis_rx_data_n2.write(currWordN##srcNode); \
else \
m_axis_rx_data_n3.write(currWordN##srcNode); \
}
#define FWDDATA(srcNode) \
if (!s_axis_tx_data_n##srcNode.empty() && udpMetaVldN##srcNode){ \
s_axis_tx_data_n##srcNode.read(currWordN##srcNode); \
if(currWordN##srcNode.last) \
udpMetaVldN##srcNode = false; \
if(udpMetaN##srcNode.their_address==ip_address_n0) \
m_axis_rx_data_n0.write(currWordN##srcNode); \
else if(udpMetaN##srcNode.their_address==ip_address_n1) \
m_axis_rx_data_n1.write(currWordN##srcNode); \
else if(udpMetaN##srcNode.their_address==ip_address_n2) \
m_axis_rx_data_n2.write(currWordN##srcNode); \
else \
m_axis_rx_data_n3.write(currWordN##srcNode); \
}
#else
#define FWDDATA(srcNode) \
if (!s_axis_tx_data_n##srcNode.empty() && udpMetaVldN##srcNode){ \
s_axis_tx_data_n##srcNode.read(currWordN##srcNode); \
if(currWordN##srcNode.last) \
udpMetaVldN##srcNode = false; \
if(udpMetaN##srcNode.their_address==ip_address_n0) \
m_axis_rx_data_n0.write(currWordN##srcNode); \
else \
m_axis_rx_data_n1.write(currWordN##srcNode); \
}
#define FWDDATA(srcNode) \
if (!s_axis_tx_data_n##srcNode.empty() && udpMetaVldN##srcNode){ \
s_axis_tx_data_n##srcNode.read(currWordN##srcNode); \
if(currWordN##srcNode.last) \
udpMetaVldN##srcNode = false; \
if(udpMetaN##srcNode.their_address==ip_address_n0) \
m_axis_rx_data_n0.write(currWordN##srcNode); \
else \
m_axis_rx_data_n1.write(currWordN##srcNode); \
}
#endif
// NOTE: print function will eat the data on bus
#define PRTRXMETA(node) \
if (!s_axis_rx_meta_n##node.empty()){ \
ipUdpMeta udpMeta; \
s_axis_rx_meta_n##node.read(udpMeta); \
std::cout << "[s_axis_rx_meta_n" << node << "]:\t" \
<< "dstIP:" << std::hex << udpMeta.their_address << std::dec \
<< ", dstPort:" << udpMeta.their_port \
<< ", srcPort:" << udpMeta.my_port \
<< ", Len:" << udpMeta.length << std::endl; \
}
#define PRTRXMETA(node) \
if (!s_axis_rx_meta_n##node.empty()){ \
ipUdpMeta udpMeta; \
s_axis_rx_meta_n##node.read(udpMeta); \
std::cout << "[s_axis_rx_meta_n" << node << "]:\t" \
<< "dstIP:" << std::hex << udpMeta.their_address << std::dec \
<< ", dstPort:" << udpMeta.their_port \
<< ", srcPort:" << udpMeta.my_port \
<< ", Len:" << udpMeta.length << std::endl; \
}
#define PRTRXDATA(node) \
if (!s_axis_rx_data_n##node.empty()){ \
net_axis<DATA_WIDTH> curWord; \
s_axis_rx_data_n##node.read(curWord); \
std::cout << "[s_axis_rx_data_n" << node << "]:\t" \
<< "Data:" << std::hex << curWord.data \
<< ", Keep:" << curWord.keep << ", isLast:" << curWord.last << std::endl; \
}
#define PRTRXDATA(node) \
if (!s_axis_rx_data_n##node.empty()){ \
net_axis<DATA_WIDTH> curWord; \
s_axis_rx_data_n##node.read(curWord); \
std::cout << "[s_axis_rx_data_n" << node << "]:\t" \
<< "Data:" << std::hex << curWord.data \
<< ", Keep:" << curWord.keep << ", isLast:" << curWord.last << std::endl; \
}
#define PRTTXMETA(node) \
if (!m_axis_tx_meta_n##node.empty()){ \
ipUdpMeta udpMeta; \
m_axis_tx_meta_n##node.read(udpMeta); \
std::cout << "[m_axis_tx_meta_n" << node << "]:\t" \
<< "dstIP:" << std::hex << udpMeta.their_address << std::dec \
<< ", dstPort:" << udpMeta.their_port \
<< ", srcPort:" << udpMeta.my_port \
<< ", Len:" << udpMeta.length << std::endl; \
}
#define PRTTXMETA(node) \
if (!m_axis_tx_meta_n##node.empty()){ \
ipUdpMeta udpMeta; \
m_axis_tx_meta_n##node.read(udpMeta); \
std::cout << "[m_axis_tx_meta_n" << node << "]:\t" \
<< "dstIP:" << std::hex << udpMeta.their_address << std::dec \
<< ", dstPort:" << udpMeta.their_port \
<< ", srcPort:" << udpMeta.my_port \
<< ", Len:" << udpMeta.length << std::endl; \
}
#define PRTTXDATA(node) \
if (!m_axis_tx_data_n##node.empty()){ \
net_axis<DATA_WIDTH> curWord; \
m_axis_tx_data_n##node.read(curWord); \
std::cout << "[m_axis_tx_data_n" << node << "]:\t" \
<< "Data:" << std::hex << curWord.data \
<< ", Keep:" << curWord.keep << ", isLast:" << curWord.last << std::endl; \
}
#define PRTTXDATA(node) \
if (!m_axis_tx_data_n##node.empty()){ \
net_axis<DATA_WIDTH> curWord; \
m_axis_tx_data_n##node.read(curWord); \
std::cout << "[m_axis_tx_data_n" << node << "]:\t" \
<< "Data:" << std::hex << curWord.data \
<< ", Keep:" << curWord.keep << ", isLast:" << curWord.last << std::endl; \
}
// ------------------------------------------------------------------------------------------------
// simulate switch behavior with udp packets
// ------------------------------------------------------------------------------------------------
template <int WIDTH>
void simSwitch(
// RX - net module
stream<ipUdpMeta>& m_axis_rx_meta_n0,
stream<net_axis<WIDTH> >& m_axis_rx_data_n0,
// TX - net module
stream<ipUdpMeta>& s_axis_tx_meta_n0,
stream<net_axis<WIDTH> >& s_axis_tx_data_n0,
void simSwitch(
// RX - net module
stream<ipUdpMeta>& m_axis_rx_meta_n0,
stream<net_axis<WIDTH> >& m_axis_rx_data_n0,
// TX - net module
stream<ipUdpMeta>& s_axis_tx_meta_n0,
stream<net_axis<WIDTH> >& s_axis_tx_data_n0,
stream<ipUdpMeta>& m_axis_rx_meta_n1,
stream<net_axis<WIDTH> >& m_axis_rx_data_n1,
stream<ipUdpMeta>& s_axis_tx_meta_n1,
stream<net_axis<WIDTH> >& s_axis_tx_data_n1,
stream<ipUdpMeta>& m_axis_rx_meta_n1,
stream<net_axis<WIDTH> >& m_axis_rx_data_n1,
stream<ipUdpMeta>& s_axis_tx_meta_n1,
stream<net_axis<WIDTH> >& s_axis_tx_data_n1,
#ifdef N_NODE_4
stream<ipUdpMeta>& m_axis_rx_meta_n2,
stream<net_axis<WIDTH> >& m_axis_rx_data_n2,
stream<ipUdpMeta>& s_axis_tx_meta_n2,
stream<net_axis<WIDTH> >& s_axis_tx_data_n2,
stream<ipUdpMeta>& m_axis_rx_meta_n2,
stream<net_axis<WIDTH> >& m_axis_rx_data_n2,
stream<ipUdpMeta>& s_axis_tx_meta_n2,
stream<net_axis<WIDTH> >& s_axis_tx_data_n2,
stream<ipUdpMeta>& m_axis_rx_meta_n3,
stream<net_axis<WIDTH> >& m_axis_rx_data_n3,
stream<ipUdpMeta>& s_axis_tx_meta_n3,
stream<net_axis<WIDTH> >& s_axis_tx_data_n3,
stream<ipUdpMeta>& m_axis_rx_meta_n3,
stream<net_axis<WIDTH> >& m_axis_rx_data_n3,
stream<ipUdpMeta>& s_axis_tx_meta_n3,
stream<net_axis<WIDTH> >& s_axis_tx_data_n3,
#endif
ap_uint<128> ip_address_n0,
ap_uint<128> ip_address_n1,
ap_uint<128> ip_address_n0,
ap_uint<128> ip_address_n1,
#ifdef N_NODE_4
ap_uint<128> ip_address_n2,
ap_uint<128> ip_address_n3,
ap_uint<128> ip_address_n2,
ap_uint<128> ip_address_n3,
#endif
ap_uint<8> drop_rate
ap_uint<8> drop_rate
){
#pragma HLS inline off
#pragma HLS pipeline II=1
static ipUdpMeta udpMetaN0, udpMetaN1;
static bool udpMetaVldN0, udpMetaVldN1 = false;
static ipUdpMeta udpMetaN0, udpMetaN1;
static bool udpMetaVldN0, udpMetaVldN1 = false;
#ifdef N_NODE_4
static ipUdpMeta udpMetaN2, udpMetaN3;
static bool udpMetaVldN2, udpMetaVldN3 = false;
static ipUdpMeta udpMetaN2, udpMetaN3;
static bool udpMetaVldN2, udpMetaVldN3 = false;
#endif
FWDMETA(0);
FWDMETA(1);
FWDMETA(0);
FWDMETA(1);
#ifdef N_NODE_4
FWDMETA(2);
FWDMETA(3);
FWDMETA(2);
FWDMETA(3);
#endif
net_axis<WIDTH> currWordN0, currWordN1;
net_axis<WIDTH> currWordN0, currWordN1;
#ifdef N_NODE_4
net_axis<WIDTH> currWordN2, currWordN3;
net_axis<WIDTH> currWordN2, currWordN3;
#endif
FWDDATA(0);
FWDDATA(1);
FWDDATA(0);
FWDDATA(1);
#ifdef N_NODE_4
FWDDATA(2);
FWDDATA(3);
FWDDATA(2);
FWDDATA(3);
#endif
}