3. Creating a High-Level Synthesis Component and Testbench
The Intel® HLS Compiler Pro Edition converts individual functions into RTL code. The components are part of a C++ application that acts as a testbench for your component functions, and you can test your components by calling them from your main() function and verifying that the output is correct.
The compiler supports C++17 and can synthesize some C++ constructs, which might be easier for you to use to create cleaner code. For more information about the supported C++ subset and its restrictions, see "Supported C and C++ Subset for Component Synthesis" in Intel® High Level Synthesis Compiler Pro Edition Reference Manual.
The Intel® HLS Compiler Pro Edition synthesizes all the code in the function or functions that you label as components, and any code that these components call, to an RTL representation.
You can identify a function in your C++ application that you want to synthesize into RTL by inserting the component keyword in the source code before the top-level C++ function to be synthesized.
Components are synthesized into RTL for all functions labeled with the component keyword and for all components listed in the --component <component_list> option of the i++ command. Avoid combining these methods because you might unexpectedly synthesize unwanted components.
If you do not want components synthesized into RTL for a function, ensure that you do not have the component attribute specified in the function and ensure that the function is not specified in the --component <component_list> option of the i++ command.
You can see which components were synthesized into RTL in the summary page of the High-Level Design Reports ( <name>.prj/reports/report.html). For more information about the High-Level Design Reports, see The High-Level Design Reports.
The HLS compiler creates an executable to run on the CPU. The compiler then sends any calls to functions that you declared as components to simulation of the synthesized IP core, and the simulation results are returned.
Did you find the information on this page useful?