7.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.