Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. #include "myLib.h"
  2.  
  3. void myFuncAccel (unsigned int size, unsigned int dim, dataType_t threshold, dataType_t * data0, dataType_t * data1, dataType_t * data2)
  4. {
  5.  
  6. #pragma HLS INTERFACE ap_bus depth=1000 port=data2
  7. #pragma HLS INTERFACE ap_bus depth=1000 port=data1
  8. #pragma HLS INTERFACE ap_bus depth=1000 port=data0
  9.  
  10. unsigned int i, k, l;
  11.  
  12. size = 250;
  13. dim = 4;
  14. threshold = 10;
  15.  
  16. int kdim;
  17. dataType_t temp_data1[4];
  18. #pragma HLS ARRAY_RESHAPE variable=temp_data1 complete dim=1
  19. dataType_t temp[4];
  20. #pragma HLS ARRAY_PARTITION variable=temp complete dim=1
  21.  
  22. dataType_t tdata0[16];
  23. #pragma HLS ARRAY_PARTITION variable=tdata0 complete dim=1
  24.  
  25. dataType_t tdata2[16];
  26. #pragma HLS ARRAY_PARTITION variable=tdata2 complete dim=1
  27.  
  28. for(i = 0; i <16 ; i++){
  29. #pragma HLS PIPELINE
  30. tdata0[i] = data0[i];
  31. }
  32.  
  33.  
  34. for ( i = 0 ; i < size ; i ++ )
  35. {
  36. #pragma HLS PIPELINE II=1 rewind
  37.  
  38.  
  39. int idim = i * 4;
  40.  
  41. int r[4] = {1, 1, 1, 1} ;
  42. int r2 = 1;
  43. kdim= 0;
  44.  
  45. temp_data1[0] = data1 [idim + 0 ];
  46. temp_data1[1] = data1 [idim + 1 ];
  47. temp_data1[2] = data1 [idim + 2 ];
  48. temp_data1[3] = data1 [idim + 3 ];
  49.  
  50. for ( k = 0 ; k < dim; k ++ )
  51. {
  52. #pragma HLS PIPELINE II=1
  53. 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 ];
  54. kdim +=4;
  55. }
  56.  
  57. r[0] = (temp[0] > threshold);
  58. r[1] = (temp[1]>threshold);
  59. r[2] = (temp[2]>threshold);
  60. r[3] = (temp[3]>threshold);
  61. r2 = r[0] && r[1] && r[2] && r[3];
  62. if ( r2 ){
  63. for ( l = 0 ; l < dim ; l ++ ){
  64. data2 [ i*dim + l ] = 0.0;
  65. }
  66. }else{
  67. for ( l = 0 ; l < dim ; l ++ ){
  68. data2 [ i*dim + l ] = temp[l];
  69. }
  70.  
  71. }
  72.  
  73. }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement