#include #include #include #include using namespace std; typedef ap_axis <32,1,1,1> AXI_T; typedef hls::stream STREAM_T; void stream_down(STREAM_T &A, STREAM_T &B, STREAM_T &C,int option){ #pragma HLS INTERFACE axis port=A #pragma HLS INTERFACE axis port=B #pragma HLS INTERFACE axis port=C #pragma HLS INTERFACE s_axilite port=option bundle=CRTL_BUS #pragma HLS INTERFACE s_axilite port=return bundle=CRTL_BUS AXI_T tmpA, tmpB,tmpC; int LEN=100; if(option==1) { for(int i=0; i> tmpB; tmpA.data = tmpB.data; if(i == LEN-1){ tmpA.last =1; }else{ tmpA.last = tmpB.last; } tmpA.keep = 0xf; A << tmpA; } } else if(option==2) { for(int i=0; i> tmpC; tmpA.data = tmpC.data; if(i == LEN-1){ tmpA.last =1; }else{ tmpA.last = tmpC.last; } tmpA.keep = 0xf; A << tmpA; } } else { for(int i=0; i> tmpC; tmpA.data = tmpC.data; if(i == LEN-1){ tmpA.last =1; }else{ tmpA.last = 0; tmpA.last=tmpC.last; } tmpA.keep = 0xf; A << tmpA; } } }