1

トップ関数にデータ構造があり、FPGA で実行して高速化したいと考えています。

データ構造自体を含む Rectangle というデータ構造があります。

typedef struct rectangle Rectangle;
struct rectangle {
    Point *position;
    int height;
    int width;
    Rectangle *suivant;
};

Pointもデータ構造です:

typedef struct point Point;
struct point {
    int x;
    int y;
    Point *suivant;
};

私のトップ関数は、データ構造へのポインタを引数に取りますRectangle

ここに私のトップ関数があります:

void mise_a_jour_coef_tab(Case_tab tab[NBCOL][NBLIG],Rectangle *zone_occupe)
{
    int i,j;
    int val;

    for(j=zone_occupe->position->x;j<zone_occupe->position->x+zone_occupe->width;j++){
        if(zone_occupe->position->y==0 || tab[j][zone_occupe->position->y-1].coef<0)
            val=1;
        else
            val=tab[j][zone_occupe->position->y-1].coef+1;

        for(i=zone_occupe->position->y;i<NBLIG;i++){            
            if(tab[j][i].free==0){
                tab[j][i].coef=val;
                val++;
            }           
            else{
                val=1;
            }
        }
    }
}

問題は、私が実行するときです

c synthesis

3 つのエラーがあります。

関数 'mise_a_jour_coef_tab' の引数 'zone_occupe' に合成できない型があります (考えられる原因: サポートされていない型変換またはメモリ コピー操作のため、構造体変数を分解できません)。

引数 'zone_occupe' には合成不可能な型 '%struct.rectangle.1.6.8 = type { %struct.point.0.5.7*, i32, ...' があります (考えられる原因: ポインターへのポインターまたはグローバル ポインター) .

合成可能性チェックに失敗しました。

誰かがこれを修正する方法を教えてくれますか?
vivado HLS の top 関数にデータ構造を含めるにはどうすればよいですか?

4

0 に答える 0