Forum Discussion
Altera_Forum
Honored Contributor
8 years agoInteger 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; }
4 Replies
- Altera_Forum
Honored Contributor
Hi,
You can try to optimize as per you design requriments.
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)# 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; } - Altera_Forum
Honored Contributor
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
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
ok got your point...thanks !