In an HLS component, the AMD Vitis™ tool synthesizes a C or C++ function into RTL code for implementation in the programmable logic (PL) region of an AMD Versal™ adaptive SoC, AMD Zynq™ MPSoC, or AMD FPGA device. An HLS component can be used to develop and export:
- Vivado IP to be integrated into hardware designs using the Vivado Design Suite and the Embedded Software Development flow
- Vitis kernels for use in the Vitis application acceleration development flow
The following are the steps for the development of the C++ function.
- Architect the algorithm based on Design Principles
- (C-Simulation) Verify the C/C++ Code with a C test bench
- (C-Synthesis) Generate the RTL from source code
- (Co-Simulation) Verify the RTL module with the C test bench and RTL logic simulation
- (Analyze) Review and analyze the HLS synthesis reports and co-simulation reports
- Repeat previous steps until performance goals are met
Figure 1. Vitis HLS Development Flow
The HLS component implements the design based on the target flow, default tool configuration, configuration commands, and any optimization pragmas or directives you specify. The following sections describe creating and building the HLS component.