Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Altera_Forum
Honored Contributor I
908 Views

Integer vs Arbitrary Precise Integer Intel HLS

Hello all great people and Anand, 

 

 

Below is the code snippet. I am using Intel HLS tool. The data type used in below given code is integer. I want to compare the result of integer data type with arbitrary precise integer represented as ac_int <W> in Intel HLS tool through AC data type library of Intel HLS tool. My question is what should be the exact representation of ac_int <W> in terms of 'W' for input arrays, dout, acc, a_reg, sub and sub2 for less latency and less resource utilization. 

I want to use the exact code for precise integer type instead of native integer and later compare the results of integer and arbitrary precise data type.  

 

 

void diff_sq_acc(int a[N], int b[N], int *dout) 

unsigned char i; 

int acc= 0; 

int a_reg, b_reg, sub, sub2; 

for(i=0; i<N; i++) 

 

 

a_reg = a

b_reg = b

sub = a_reg - b_reg; 

sub2 = sub*sub; 

acc += sub2; 

*dout = acc; 

}
0 Kudos
4 Replies
Altera_Forum
Honored Contributor I
33 Views

Hi, 

 

You can try to optimize as per you design requriments. 

# include "HLS/hls.h" # include <stdio.h> # include "HLS/ac_int.h" # include "HLS/ac_fixed.h" # include "HLS/extendedmath.h" # include "HLS/math.h" typedef ac_int<8, false> fixed_8_t; typedef ac_int<16, false> fixed_16_t; # define N 2 component void dut(fixed_8_t a, fixed_8_t b, fixed_8_t *dout) { unsigned int i; fixed_16_t acc= 0; fixed_8_t a_reg, b_reg, sub; fixed_16_t sub2; for(i=0; i<N; i++) { a_reg = a; b_reg = b; sub = a_reg - b_reg; sub2 = sub*sub; acc += sub2; } *dout = acc; } int main() { fixed_8_t z; fixed_16_t ip = &z; fixed_8_t x={128,128}; fixed_8_t y={128,128}; dut(x,y,&z); return 0; }  

 

let me know if this has helped resolve the issue you are facing or if you need any further assistance. 

 

PS:Same as thread https://alteraforum.com/forum/showthread.php?t=57668&page=2 

 

Best Regards, 

Anand Raj Shankar 

(This message was posted on behalf of Intel Corporation)
Altera_Forum
Honored Contributor I
33 Views

Dear Anand, 

 

thanks ! it works...i think there was a type error in your code... *dout should be fixed_16_t..... right ?
Altera_Forum
Honored Contributor I
33 Views

Hi, 

 

There was no error in code. 

Yes logically it should be fixed_16_t . 

 

let me know if you need any further assistance. 

 

Best Regards, 

Anand Raj Shankar 

(This message was posted on behalf of Intel Corporation)
Altera_Forum
Honored Contributor I
33 Views

ok got your point...thanks !