Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 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. //#pragma HLS STREAM variable=data1 depth=1000 dim=1
  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. threshold = 15;
  14. dim = 4;
  15.  
  16. int t00, t01, t02, t03, t10, t11, t12, t13,kdim,t20,t21,t22,t23;
  17. dataType_t temp0[4], temp1[4], temp2[4], temp3[4], temp01[4], temp23[4],temp_data1[4],temp_data0[4];
  18. dataType_t temp[4];
  19. //#pragma HLS ARRAY_RESHAPE variable=temp_data1 complete dim=1
  20. dataType_t tdata0[16];
  21. for(i = 0; i <16 ; i++){
  22. tdata0[i] = data0[i];
  23. }
  24.  
  25.  
  26. for ( i = 0 ; i < size ; i ++ )
  27. {
  28. #pragma HLS PIPELINE II=8
  29.  
  30.  
  31. int idim = i * 4;
  32. t10 = idim;
  33. t11 = idim + 1;
  34. t12 = idim + 2;
  35. t13 = idim + 3;
  36.  
  37. int r[4] = {1, 1, 1, 1} ;
  38. int r2 = 1;
  39. kdim= 0;
  40.  
  41. temp_data1[0] = data1 [idim + 0 ];
  42. temp_data1[1] = data1 [idim + 1 ];
  43. temp_data1[2] = data1 [idim + 2 ];
  44. temp_data1[3] = data1 [idim + 3 ];
  45.  
  46. for ( k = 0 ; k < dim; k ++ )
  47. {
  48. #pragma HLS PIPELINE II=4
  49. //if(k<dim){
  50.  
  51.  
  52. t00 = kdim;
  53. t20 = tdata0 [ t00 ];
  54. t01 = kdim + 1;
  55. t02 = kdim + 2;
  56. t03 = kdim + 3;
  57. t22 = tdata0 [ t01 ];
  58.  
  59. temp0[k] = t20 * temp_data1[0];
  60. temp1[k] = t22 * temp_data1[1];
  61. temp2[k] = tdata0 [ t02 ] * temp_data1[2];
  62. temp3[k] = tdata0 [ t03 ] * temp_data1[3];
  63. temp01[k] = temp0[k] + temp1[k];
  64. temp23[k] = temp2[k] + temp3[k];
  65. temp[k] = temp01[k] + temp23[k];
  66. //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 ];
  67. data2 [ i*dim + k ] = temp[k];
  68. //r[k] = ( data2 [ i*dim + k ] > threshold );// && r ;
  69. //}else{
  70.  
  71. //}
  72. kdim +=4;
  73.  
  74. }
  75. r[0] = (temp[0] > threshold);
  76. r[1] = (temp[1]>threshold);
  77. r[2] = (temp[2]>threshold);
  78. r[3] = (temp[3]>threshold);
  79. r2 = r[0] && r[1] && r[2] && r[3];
  80. if ( r2 )
  81. {
  82. for ( l = 0 ; l < dim ; l ++ )
  83. {
  84. #pragma HLS PIPELINE II=1
  85.  
  86. data2 [ i*dim + l ] = 0.0;
  87. }
  88. }
  89.  
  90. }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement