gpt4 book ai didi

c - VIVADO HLS 综合错误

转载 作者:行者123 更新时间:2023-11-30 16:48:44 28 4
gpt4 key购买 nike

不,对我来说它不起作用。它在综合过程中显示错误:顶部函数 Adder 没有输出。可能的原因有:

  1. 输出参数按值传递
  2. 从未写入预期输出(参数或全局变量)

头文件

#ifndef ADDERS_H_ 
#define ADDERS_H_
#include <cmath>
#include <fstream>
#include <iostream>
#include <iomanip>
#include <cstdlib>
using namespace std;

// Types and top-level function prototype //
int adders(int in1, int in2, int in3);
#include "ap_int.h"
typedef ap_int<8> in1_t;
typedef ap_int<8> in2_t;
typedef ap_int<8> out_t;
void Adder(in1_t inA, in2_t inB, out_t sumAB);
#endif

测试台代码

#include <stdio.h> 
#include "ap_int.h"
#include "Adder.h"

int main()
{
in1_t inA;
in2_t inB;
out_t sumAB;

inA = 15;
inB = 15;

sumAB = inA + inB;

Adder(inA, inB, sumAB);
cout << "A = "<< inA;
printf("\n");
cout << "B = " << inB;
printf("\n");
cout << "SUM = "<< sumAB;
printf("\n");
}

最佳答案

您的错误是您正在按值传递加法器函数的输出参数。在 C 中,对此类值的更新仅在函数内部可见,不会传播到调用者。您应该通过指针或引用传递它,或者简单地通过从函数返回一个值,如 @jp-helemons 建议的那样。例如:

void adder(in_t inA, in_t inB, out_t& sumAB);

Here是一篇很好的文章,解释了通过引用传递函数参数。

关于c - VIVADO HLS 综合错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42850519/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com