34 #undef USE_DEPRECATED_DIRECTIVES
43 #define THIS_NAME "RLB"
45 #define TRACE_OFF 0x0000
46 #define TRACE_TODO 1 << 1
47 #define TRACE_ALL 0xFFFF
49 #define DEBUG_LEVEL (TRACE_OFF)
72 stream<StsBool> &siUOE_Ready,
77 stream<StsBool> &siTOE_Ready)
79 #if HLS_VERSION == 2017
81 #pragma HLS INTERFACE ap_ctrl_none port=return
87 #pragma HLS INTERFACE ap_none register port=poMMIO_Ready name=poMMIO_Ready
88 #pragma HLS RESOURCE core=AXI4Stream variable=siUOE_Ready metadata="-bus_bundle siUOE_Ready"
89 #pragma HLS RESOURCE core=AXI4Stream variable=siTOE_Ready metadata="-bus_bundle siTOE_Ready"
92 #pragma HLS pipeline II=1
95 #pragma HLS INTERFACE ap_ctrl_none port=return
97 #pragma HLS INTERFACE ap_none register port=poMMIO_Ready name=poMMIO_Ready
98 #pragma HLS INTERFACE axis register both port=siUOE_Ready name=siUOE_Ready
99 #pragma HLS INTERFACE axis register both port=siTOE_Ready name=siTOE_Ready
102 #pragma HLS PIPELINE II=1 enable_flush
103 #pragma HLS INLINE off
109 static enum FsmStates { BARRIER=0, SYNC } rlb_fsmState;
110 #pragma HLS RESET variable=rlb_fsmState
112 #pragma HSL RESET variable=rlb_uoeReady
114 #pragma HSL RESET variable=rlb_toeReady
116 switch(rlb_fsmState) {
119 if(!siUOE_Ready.empty()) {
120 siUOE_Ready.read(rlb_uoeReady);
122 if(!siTOE_Ready.empty()) {
123 siTOE_Ready.read(rlb_toeReady);
125 if (rlb_uoeReady and rlb_toeReady) {
void rlb(StsBit *poMMIO_Ready, stream< StsBool > &siUOE_Ready, stream< StsBool > &siTOE_Ready)
Main process of the Ready Logic Barrier (RLB).
#define concat2(firstCharConst, secondCharConst)
: Defines and prototypes related to the Ready Logic Barrier.