6.3. Problems with structure/symbol redefinition in FPGA tasksΒΆ

In C sources (not in C++), Mercurium imports the symbols used by FPGA tasks into the HLS intermediate source codes. Therefore, the usage of .fpga headers is no longer needed unless some specific cases. If they are used, the result may be duplicated definition of some symbols (in the HLS source and in the included .fpga header). The solution may be as simple as rename the .fpga headers into regular .h files.

In C++, the management of the symbols is more complex and the symbols are not automatically imported to HLS source files. Basically, only the functions in the same source file of the FPGA task are imported. So, the usage of .fpga.hpp headers may be needed.