69 #define THIS_NAME "TOE/EVe"
71 #define TRACE_OFF 0x0000
72 #define TRACE_EVE 1 << 1
73 #define TRACE_ALL 0xFFFF
75 #define DEBUG_LEVEL (TRACE_OFF)
91 stream<Event> &siTAi_Event,
92 stream<ExtendedEvent> &siRXe_Event,
93 stream<Event> &siTIm_Event,
94 stream<ExtendedEvent> &soAKd_Event,
95 stream<SigBit> &siAKd_RxEventSig,
96 stream<SigBit> &siAKd_TxEventSig,
97 stream<SigBit> &siTXe_RxEventSig)
100 #pragma HLS PIPELINE II=1 enable_flush
106 static ap_uint<8> eve_eve2akd_WrCnt;
107 #pragma HLS RESET variable = eve_eve2akd_WrCnt
108 static ap_uint<8> eve_eve2akd_RdCnt;
109 #pragma HLS RESET variable = eve_eve2akd_RdCnt
110 static ap_uint<8> eve_akd2txe_WrCnt;
111 #pragma HLS RESET variable = eve_akd2txe_WrCnt
112 static ap_uint<8> eve_akd2txe_RdCnt;
113 #pragma HLS RESET variable = eve_akd2txe_RdCnt
121 if (!siRXe_Event.empty() and !soAKd_Event.full()) {
122 siRXe_Event.read(ev);
123 soAKd_Event.write(ev);
125 printInfo(myName,
"S%d - Received '%s' from [RXe] (WrCnt=%3d|RdCnt=%3d).\n",
130 else if (eve_eve2akd_WrCnt == eve_eve2akd_RdCnt and
131 eve_akd2txe_WrCnt == eve_akd2txe_RdCnt) {
136 if (!siTIm_Event.empty()) {
137 siTIm_Event.read(ev);
138 soAKd_Event.write(ev);
140 printInfo(myName,
"S%d - Received '%s' from [TIm] (WrCnt=%3d|RdCnt=%3d).\n",
148 else if (!siTAi_Event.empty()) {
149 siTAi_Event.read(ev);
151 soAKd_Event.write(ev);
153 printInfo(myName,
"S%d - Received '%s' from [TAi] (WrCnt=%3d|RdCnt=%3d).\n",
163 if (!siAKd_RxEventSig.empty()) {
165 siAKd_RxEventSig.read();
169 if (!siAKd_TxEventSig.empty()) {
171 siAKd_TxEventSig.read();
178 if (!siTXe_RxEventSig.empty()) {
179 siTXe_RxEventSig.read();
: Event Engine (EVe) of the TCP Offload Engine (TOE)
const char * getEventName(EventType evType)
Returns the name of an enum-based event as a user friendly string.
void event_engine(stream< Event > &siTAi_Event, stream< ExtendedEvent > &siRXe_Event, stream< Event > &siTIm_Event, stream< ExtendedEvent > &soAKd_Event, stream< SigBit > &siAKd_RxEventSig, stream< SigBit > &siAKd_TxEventSig, stream< SigBit > &siTXe_RxEventSig)
The Event Engine (EVe) arbitrates the incoming events and forwards them to the Tx Engine (TXe) via th...
const int cDepth_EVeToAKd_Event
#define assessSize(callerName, stream, streamName, depth)
A macro that checks if a stream is full.
#define printInfo(callerName, format,...)
A macro to print an information message.