Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
8 years ago

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;

}

4 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    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's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored 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's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored 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)