#include<ap_int.h>
#define N 3
#define XW 8
#define BW 16
typedef ap_int<XW> dx_t;
typedef ap_int<BW> db_t;
typedef ap_int<BW+1> do_t;
void foo(dx_t xin[N],dx_t a,db_t b,db_t c,do_t yo[N]);
#include"for_optim.h"
void foo(dx_t xin[N],dx_t a,db_t b,db_t c,do_t yo[N])
{
int i;
loop:
for(i=0;i<N;i++)
{
yo[i]=a*xin[i]+b+c;
}
}
可以看出loop的latency为9
可以降低latency和iteration internal
默认情况下的for循环是被折叠的,所有的每次循环都采用一套电路,分时复用罢了。可以完全展开或者部分展开。