Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "myLib.h"
- void myFuncAccel (unsigned int size, unsigned int dim, dataType_t threshold, dataType_t * data0, dataType_t * data1, dataType_t * data2)
- {
- //#pragma HLS STREAM variable=data1 depth=1000 dim=1
- #pragma HLS INTERFACE ap_bus depth=1000 port=data2
- #pragma HLS INTERFACE ap_bus depth=1000 port=data1
- #pragma HLS INTERFACE ap_bus depth=1000 port=data0
- unsigned int i, k, l;
- size = 250;
- threshold = 15;
- dim = 4;
- int t00, t01, t02, t03, t10, t11, t12, t13,kdim,t20,t21,t22,t23;
- dataType_t temp0[4], temp1[4], temp2[4], temp3[4], temp01[4], temp23[4],temp_data1[4],temp_data0[4];
- dataType_t temp[4];
- //#pragma HLS ARRAY_RESHAPE variable=temp_data1 complete dim=1
- dataType_t tdata0[16];
- for(i = 0; i <16 ; i++){
- tdata0[i] = data0[i];
- }
- for ( i = 0 ; i < size ; i ++ )
- {
- #pragma HLS PIPELINE II=8
- int idim = i * 4;
- t10 = idim;
- t11 = idim + 1;
- t12 = idim + 2;
- t13 = idim + 3;
- int r[4] = {1, 1, 1, 1} ;
- int r2 = 1;
- kdim= 0;
- temp_data1[0] = data1 [idim + 0 ];
- temp_data1[1] = data1 [idim + 1 ];
- temp_data1[2] = data1 [idim + 2 ];
- temp_data1[3] = data1 [idim + 3 ];
- for ( k = 0 ; k < dim; k ++ )
- {
- #pragma HLS PIPELINE II=4
- //if(k<dim){
- t00 = kdim;
- t20 = tdata0 [ t00 ];
- t01 = kdim + 1;
- t02 = kdim + 2;
- t03 = kdim + 3;
- t22 = tdata0 [ t01 ];
- temp0[k] = t20 * temp_data1[0];
- temp1[k] = t22 * temp_data1[1];
- temp2[k] = tdata0 [ t02 ] * temp_data1[2];
- temp3[k] = tdata0 [ t03 ] * temp_data1[3];
- temp01[k] = temp0[k] + temp1[k];
- temp23[k] = temp2[k] + temp3[k];
- temp[k] = temp01[k] + temp23[k];
- //temp = data0 [ k * dim + 0 ] * data1 [ i*dim+ 0 ] + data0 [ k * dim + 1 ] * data1 [ i*dim+ 1 ] + data0 [ k * dim + 2 ] * data1 [ i*dim+ 2 ] + data0 [ k * dim + 3 ] * data1 [ i*dim+ 3 ];
- data2 [ i*dim + k ] = temp[k];
- //r[k] = ( data2 [ i*dim + k ] > threshold );// && r ;
- //}else{
- //}
- kdim +=4;
- }
- r[0] = (temp[0] > threshold);
- r[1] = (temp[1]>threshold);
- r[2] = (temp[2]>threshold);
- r[3] = (temp[3]>threshold);
- r2 = r[0] && r[1] && r[2] && r[3];
- if ( r2 )
- {
- for ( l = 0 ; l < dim ; l ++ )
- {
- #pragma HLS PIPELINE II=1
- data2 [ i*dim + l ] = 0.0;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement