- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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; }
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Anand,
thanks ! it works...i think there was a type error in your code... *dout should be fixed_16_t..... right ?- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
ok got your point...thanks !
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page