In this step, the Vitis compiler takes any Vitis compiler kernels (RTL or HLS C) in the PL region of the target platform (xilinx_vck190_base_202420_1). It also takes the AI Engine kernels and graph. The compiler then compiles them into their respective XO files. The following commands compile the kernels (default TARGET=hw_emu, GEMM_INSTS=1, GEMM_SIZE=32, ITER_CNT=1 and EN_TRACE=0).
make kernels
The command with the options used is as follows (for dma_hls):
$(BUILD_TARGET_DIR)/$(DATAMOVER_KERNEL_XO).xo:
mkdir -p $(BUILD_TARGET_DIR); \
cd $(BUILD_TARGET_DIR); \
v++ --target $(TARGET) $(DATAMOVER_KERNEL_VPP_FLAGS) \
$(VPP_FLAGS) -c -k $(DATAMOVER_KERNEL_TOP) \
$(DATAMOVER_KERNEL_SRC) -o $@
Refer to this page for a detailed description of all Vitis compiler switches. The following table provides a summary of the switches used.
Switch |
Description |
|---|---|
–target | -t [hw|hw_emu] |
Specifies the build target. |
–platform | -f |
Specifies the name of a supported acceleration platform as specified by the $PLATFORM_REPO_PATHS environment variable or the full path to the platform XPFM file. |
–save-temps | -s |
Directs the Vitis compiler command to save intermediate files/directories created during the compilation and link process. Use the |
–temp_dir |
Lets you manage the location where the tool writes temporary files created during the build process. The Vitis compiler writes temporary results and then removes them unless you specify the |
–verbose |
Displays verbose/debug information. |
–compile | -c |
Required for compilation to generate XO files from kernel source files. |
–kernel <arg>|-k <arg> |
Compiles only the specified kernel from the input file. Only one -k option is allowed per Vitis compiler command. |
–output | -o |
Specifies the name of the output file generated by the V++ command. The DMA HLS kernels output must be XO. |
Input |
Description |
|---|---|
$(PL_SRC_REPO)/dma_hls.cpp |
Defines the data mover PL kernel |
Output |
Description |
|---|---|
$(BUILD_TARGET_DIR)/dma_hls.hw_emu.xo |
The data mover kernel object file |