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 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;
- dim = 4;
- threshold = 10;
- int kdim;
- dataType_t temp_data1[4];
- #pragma HLS ARRAY_RESHAPE variable=temp_data1 complete dim=1
- dataType_t temp[4];
- #pragma HLS ARRAY_PARTITION variable=temp complete dim=1
- dataType_t tdata0[16];
- #pragma HLS ARRAY_PARTITION variable=tdata0 complete dim=1
- dataType_t tdata2[16];
- #pragma HLS ARRAY_PARTITION variable=tdata2 complete dim=1
- for(i = 0; i <16 ; i++){
- #pragma HLS PIPELINE
- tdata0[i] = data0[i];
- }
- for ( i = 0 ; i < size ; i ++ )
- {
- #pragma HLS PIPELINE II=1 rewind
- int idim = i * 4;
- 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=1
- temp[k] = tdata0 [ k * dim + 0 ] *temp_data1[0] + tdata0 [ k * dim + 1 ] * temp_data1 [1 ] + tdata0 [ k * dim + 2 ] * temp_data1 [ 2 ] + tdata0 [ k * dim + 3 ] * temp_data1 [ 3 ];
- 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 ++ ){
- data2 [ i*dim + l ] = 0.0;
- }
- }else{
- for ( l = 0 ; l < dim ; l ++ ){
- data2 [ i*dim + l ] = temp[l];
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement