You are using a deprecated Browser. Internet Explorer is no longer supported by Xilinx.
Vivado HLS - do not use __SYNTHESIS__ on top level module ports.
If __SYNTHESIS__ is used to guard or mask some of the top level ports of the C function, the simulation and co-simulation might not match.
The __SYNTHESIS__ macro is automatically defined by Vivado HLS when synthesis is performed.
This macro is defined during the High-Level Synthesis and ports will be generated accordingly.
However, the macro is not defined during C simulation and as a result, you might not be able to properly test your designs.
The simulation and co-simulation may mismatch as the generated software and hardware may mismatch in terms of ports, numbers and names.
It can lead to a crash in the co-simulation with or without messages.
As a result it is preferable to not use __SYNTHESIS__ on the top level ports.
Was this Answer Record helpful?