The command-line flow generates an organized directory structure that lets you easily find and access project files. By navigating the various compile, link, logs, and reports directories, you can easily find generated files. Similarly, each kernel also has a directory structure created.
v++ options:
-–temp_dir <dir_name>
--log_dir <dir_name>
-–report_dir <dir_name>
When using v++ on the command line, by
default it creates a directory structure during compile and link. The Vitis tool always generates the .xo and .xclbin files in
the current working directory. The tool creates intermediate files in the directory that
--temp_dir (default: _x) specifies.
The link, logs, and reports
directories default to inside the temp_dir, and
contain the respective information on the builds.
## Kernel Compilation command:
v++ -c -t hw_emu --platform xilinx_u200_gen3x16_xdma_2_202110_1 --config ./src/u200.cfg \
-k vadd -I./src ./src/vadd.cpp -o hw_emu/vadd.xo
## Device Binary Linking Command:
v++ -l -t hw_emu --platform xilinx_u200_gen3x16_xdma_2_202110_1 --config ./src/u200.cfg \
hw_emu/vadd.xo -o hw_emu/vadd.xclbin
The u200.cfg file defines the following options.
debug=1
save-temps=1
[connectivity]
nk=vadd:1:vadd_1
sp=vadd_1.in1:DDR[1]
sp=vadd_1.in2:DDR[2]
sp=vadd_1.out:DDR[1]
[profile]
data=all:all:all
The following is an example of the temp_dir output of the v++ link
command.
├── link
│ ├── activetask.json
│ ├── int
│ │ ├── address_map.xml
│ │ ├── appendSection.rtd
│ │ ├── automation_summary.txt
│ │ ├── automation_summary_update_bd.txt
│ │ ├── behav_waveform
│ │ │ └── xsim
│ │ │ ├── compile.log
│ │ │ ├── compile.sh
│ │ │ ├── dr_behav.protoinst
│ │ │ ├── dr_behav.wcfg
│ │ │ ├── elaborate.log
│ │ │ ├── elaborate.sh
│ │ │ ├── glbl.v
│ │ │ ├── launch_hw_emu.sh
│ │ │ ├── libdpi.so
│ │ │ ├── pfm_top_wrapper.tcl
│ │ │ ├── pfm_top_wrapper_vhdl.prj
│ │ │ ├── pfm_top_wrapper_vlog.prj
│ │ │ ├── pfm_top_wrapper_xsc.prj
│ │ │ ├── post_sim_tool_scripts.tcl
│ │ │ ├── preprocess_profile.tcl
│ │ │ ├── pre_sim_tool_scripts.tcl
│ │ │ ├── prj.smi
│ │ │ ├── profile.tcl
│ │ │ ├── protoinst_files
│ │ │ ├── run.sh
│ │ │ ├── sc_xtlm_bd_d216_interconnect_DDR4_MEM01_0.mem
│ │ │ ├── sc_xtlm_bd_d216_interconnect_M00_AXI_MEM00_0.mem
│ │ │ ├── sc_xtlm_pfm_dynamic_smartconn_data_0_0.mem
│ │ │ ├── sc_xtlm_pfm_top_smartconnect_0_0.mem
│ │ │ ├── simulate.log
│ │ │ ├── simulate.sh
│ │ │ ├── vitis_params.tcl
│ │ │ ├── waveform_debug_enable.txt
│ │ │ ├── xelab.pb
│ │ │ ├── xsc.log
│ │ │ ├── xsc.pb
│ │ │ ├── xsim.dir
│ │ │ ├── xsim.ini
│ │ │ ├── xsim.ini.bak
│ │ │ ├── xvhdl.log
│ │ │ ├── xvhdl.pb
│ │ │ ├── xvlog.log
│ │ │ └── xvlog.pb
│ │ ├── behav.xse
│ │ ├── cf2sw_full.rtd
│ │ ├── cf2sw.rtd
│ │ ├── debug_ip_layout.rtd
│ │ ├── dr.bd.tcl
│ │ ├── kernel_info.dat
│ │ ├── _kernel_inst_paths.dat
│ │ ├── kernel_service.json
│ │ ├── _new_clk_freq
│ │ ├── sdsl.dat
│ │ ├── syslinkConfig.ini
│ │ ├── systemDiagramModel.json
│ │ ├── systemDiagramModelSlrBaseAddress.json
│ │ ├── system.hdf
│ │ ├── vadd_build.rtd
│ │ ├── vadd.rtd
│ │ ├── vadd.xml
│ │ ├── vadd_xml.rtd
│ │ ├── vplConfig.ini
│ │ ├── vplsettings.json
│ │ ├── xclbin_orig.1.xml
│ │ ├── xclbin_orig.xml
│ │ ├── xclbin_orig.xml.tmp
│ │ └── xo
│ │ ├── ip_repo
│ │ └── vadd
│ │ └── vadd
│ │ ├── cpu_sources
│ │ │ └── vadd.cpp
│ │ ├── debug
│ │ │ ├── vadd_Pipeline_VITIS_LOOP_13_1.xrf
│ │ │ ├── vadd.protoinst
│ │ │ └── vadd.xrf
│ │ ├── kernel.xml
│ │ └── vadd.design.xml
│ ├── link.spr
│ ├── link.steps.log
│ ├── run_link
│ │ ├── gen_run.xml
│ │ ├── htr.txt
│ │ └── vpl.pb
│ ├── sys_link
│ │ ├── cfgraph
│ │ │ └── cfgen_cfgraph.xml
│ │ ├── dr.xml
│ │ ├── hw_emu.hpfm
│ │ ├── iprepo
│ │ │ ├── temp
│ │ │ │ └── xo0
│ │ │ │ ├── ip_repo
│ │ │ │ ├── vadd
│ │ │ │ │ ├── cpu_sources
│ │ │ │ │ │ └── vadd.cpp
│ │ │ │ │ ├── debug
│ │ │ │ │ │ ├── vadd_Pipeline_VITIS_LOOP_13_1.xrf
│ │ │ │ │ │ ├── vadd.protoinst
│ │ │ │ │ │ └── vadd.xrf
│ │ │ │ │ └── kernel.xml
│ │ │ │ └── xo.xml
│ │ │ └── xilinx_com_hls_vadd_1_0
│ │ │ ├── auxiliary.xml
│ │ │ ├── component.xml
│ │ │ ├── constraints
│ │ │ │ └── vadd_ooc.xdc
│ │ │ ├── doc
│ │ │ │ └── ReleaseNotes.txt
│ │ │ ├── drivers
│ │ │ │ └── vadd_v1_0
│ │ │ │ ├── data
│ │ │ │ │ ├── vadd.mdd
│ │ │ │ │ └── vadd.tcl
│ │ │ │ └── src
│ │ │ │ ├── Makefile
│ │ │ │ ├── xvadd.c
│ │ │ │ ├── xvadd.h
│ │ │ │ ├── xvadd_hw.h
│ │ │ │ ├── xvadd_linux.c
│ │ │ │ └── xvadd_sinit.c
│ │ │ ├── example
│ │ │ │ ├── ipi_example.sh
│ │ │ │ └── ipi_example.tcl
│ │ │ ├── hdl
│ │ │ │ ├── verilog
│ │ │ │ │ ├── vadd_aximm1_m_axi.v
│ │ │ │ │ ├── vadd_aximm2_m_axi.v
│ │ │ │ │ ├── vadd_control_s_axi.v
│ │ │ │ │ ├── vadd_flow_control_loop_pipe_sequential_init.v
│ │ │ │ │ ├── vadd.v
│ │ │ │ │ └── vadd_vadd_Pipeline_VITIS_LOOP_13_1.v
│ │ │ │ └── vhdl
│ │ │ │ ├── vadd_aximm1_m_axi.vhd
│ │ │ │ ├── vadd_aximm2_m_axi.vhd
│ │ │ │ ├── vadd_control_s_axi.vhd
│ │ │ │ ├── vadd_flow_control_loop_pipe_sequential_init.vhd
│ │ │ │ ├── vadd_vadd_Pipeline_VITIS_LOOP_13_1.vhd
│ │ │ │ └── vadd.vhd
│ │ │ ├── hls_files
│ │ │ │ └── vadd
│ │ │ │ └── solution
│ │ │ │ ├── solution.aps
│ │ │ │ ├── solution_data.json
│ │ │ │ ├── solution.directive
│ │ │ │ └── syn
│ │ │ │ └── report
│ │ │ │ ├── csynth.rpt
│ │ │ │ ├── csynth.xml
│ │ │ │ ├── vadd_csynth.rpt
│ │ │ │ └── vadd_Pipeline_VITIS_LOOP_13_1_csynth.rpt
│ │ │ ├── misc
│ │ │ ├── sysgen_info.xml
│ │ │ ├── vadd.fcnmap.xml
│ │ │ ├── vadd_info.xml
│ │ │ └── xgui
│ │ │ └── vadd_v1_0.tcl
│ │ ├── sc_emu_debug.tcl
│ │ ├── sdsl.dat
│ │ └── _sysl
│ └── vivado
│ ├── vivado.spr
│ └── vpl
│ ├── gen_run.xml
│ ├── htr.txt
│ ├── ipirun.tcl
│ ├── ISEWrap.js
│ ├── ISEWrap.sh
│ ├── link_ip_guidance.txt
│ ├── openprj.tcl
│ ├── output
│ │ ├── insert_debug_profiling.tcl
│ │ ├── pfm_dynamic_ooc_copy.xdc
│ │ ├── _post_sys_link_gen_constrs.xdc
│ │ └── vivado_warning.txt
│ ├── prj
│ │ ├── prj.cache
│ │ ├── prj.gen
│ │ ├── prj.hw
│ │ ├── prj.ip_user_files
│ │ ├── prj.sim
│ │ │ └── sim_1
│ │ │ └── behav_waveform
│ │ │ └── xsim
│ │ ├── prj.srcs
│ │ │ └── sources_1
│ │ │ ├── bd
│ │ │ └── imports
│ │ │ └── hdl
│ │ │ └── pfm_top_wrapper.v
│ │ └── prj.xpr
│ ├── rundef.js
│ ├── runme.bat
│ ├── runme.log
│ ├── runme.sh
│ ├── scripts
│ │ └── _vivado_params.tcl
│ ├── vivado_config_hw_emu.tcl
│ ├── vivado.jou
│ ├── vivado.log
│ ├── vivado.pb
│ └── vpl.tcl
├── logs
│ ├── link
│ │ ├── link.steps.log
│ │ └── v++.log
│ ├── optraceViewer.html
│ └── vadd
│ ├── vadd.steps.log
│ ├── vadd_vitis_hls.log
│ └── v++.log
├── reports
│ ├── link
│ │ ├── automation_summary.txt
│ │ ├── automation_summary_update_bd.txt
│ │ ├── system_estimate_vadd.xtxt
│ │ └── v++_link_vadd_guidance.html
│ └── vadd
│ ├── hls_reports
│ │ └── vadd_csynth.rpt
│ ├── system_estimate_vadd.xtxt
│ └── v++_compile_vadd_guidance.html
├── vadd
│ ├── vadd
│ │ ├── htr.txt
│ │ ├── ISEWrap.js
│ │ ├── ISEWrap.sh
│ │ ├── rundef.js
│ │ ├── runme.bat
│ │ ├── runme.log
│ │ ├── runme.sh
│ │ ├── vadd
│ │ │ ├── hls.app
│ │ │ ├── ip
│ │ │ │ ├── auxiliary.xml
│ │ │ │ ├── component.xml
│ │ │ │ ├── constraints
│ │ │ │ │ └── vadd_ooc.xdc
│ │ │ │ ├── doc
│ │ │ │ │ └── ReleaseNotes.txt
│ │ │ │ ├── drivers
│ │ │ │ │ └── vadd_v1_0
│ │ │ │ │ ├── data
│ │ │ │ │ │ ├── vadd.mdd
│ │ │ │ │ │ └── vadd.tcl
│ │ │ │ │ └── src
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── xvadd.c
│ │ │ │ │ ├── xvadd.h
│ │ │ │ │ ├── xvadd_hw.h
│ │ │ │ │ ├── xvadd_linux.c
│ │ │ │ │ └── xvadd_sinit.c
│ │ │ │ ├── example
│ │ │ │ │ ├── ipi_example.sh
│ │ │ │ │ └── ipi_example.tcl
│ │ │ │ ├── hdl
│ │ │ │ │ ├── verilog
│ │ │ │ │ │ ├── vadd_aximm1_m_axi.v
│ │ │ │ │ │ ├── vadd_aximm2_m_axi.v
│ │ │ │ │ │ ├── vadd_control_s_axi.v
│ │ │ │ │ │ ├── vadd_flow_control_loop_pipe_sequential_init.v
│ │ │ │ │ │ ├── vadd.v
│ │ │ │ │ │ └── vadd_vadd_Pipeline_VITIS_LOOP_13_1.v
│ │ │ │ │ └── vhdl
│ │ │ │ │ ├── vadd_aximm1_m_axi.vhd
│ │ │ │ │ ├── vadd_aximm2_m_axi.vhd
│ │ │ │ │ ├── vadd_control_s_axi.vhd
│ │ │ │ │ ├── vadd_flow_control_loop_pipe_sequential_init.vhd
│ │ │ │ │ ├── vadd_vadd_Pipeline_VITIS_LOOP_13_1.vhd
│ │ │ │ │ └── vadd.vhd
│ │ │ │ ├── hls_files
│ │ │ │ │ └── vadd
│ │ │ │ │ └── solution
│ │ │ │ │ ├── solution.aps
│ │ │ │ │ ├── solution_data.json
│ │ │ │ │ ├── solution.directive
│ │ │ │ │ └── syn
│ │ │ │ │ └── report
│ │ │ │ │ ├── csynth.rpt
│ │ │ │ │ ├── csynth.xml
│ │ │ │ │ ├── vadd_csynth.rpt
│ │ │ │ │ └── vadd_Pipeline_VITIS_LOOP_13_1_csynth.rpt
│ │ │ │ ├── misc
│ │ │ │ ├── sysgen_info.xml
│ │ │ │ ├── vadd_info.xml
│ │ │ │ └── xgui
│ │ │ │ └── vadd_v1_0.tcl
│ │ │ ├── kernel.xml
│ │ │ ├── kernel.xml.orig
│ │ │ ├── solution
│ │ │ │ ├── impl
│ │ │ │ │ ├── export.xo
│ │ │ │ │ ├── ip
│ │ │ │ │ ├── verilog
│ │ │ │ │ └── vhdl
│ │ │ │ ├── solution.aps
│ │ │ │ ├── solution_data.json
│ │ │ │ ├── solution.directive
│ │ │ │ ├── solution.log
│ │ │ │ └── syn
│ │ │ └── vadd.design.xml
│ │ ├── vadd.tcl
│ │ ├── vitis_hls.log
│ │ └── vitis_hls.pb
│ ├── vadd.spr
│ └── vadd.steps.log
├── v++_compile_vadd_guidance.pb3
└── v++_link_vadd_guidance.pb3