Configuring the Vitis IDE
From the Assistant view, use the Settings button () to configure a selected project or configuration object. For more information, refer to the following topics:
Vitis Project Settings
To edit the Vitis™ project settings, select the top-level
system project in the Assistant view and click the Settings button () to bring up the Project Settings dialog box. This dialog
box lets you specify both linking and compile options for the Vitis compiler v++
command to let you customize the project build process.
- Project name
- Name of the project. Click the link to open the Properties dialog box for the project.
- Platform
- Target platform for this project. Click the link to open the Platform Description dialog box. Click Browse to change the platform
- Runtime
- Displays the runtime used in this project.
- Options
- Options are displayed when the Host application has been written using the XRT native C++ API.
- Applications
- Lists the different sub-projects included with the system project, and also displays the current build target.
Vitis Build Configuration Settings
To edit the settings for any of the build configurations under a project, select the build configuration in the Assistant view and click the Settings button () to bring up the Build Configuration Settings dialog box. The specific features of the dialog box vary depending on the type of project and the build target you have selected. In this dialog box, you can enable host and kernel debug, specify the level of information to report during the build process, and specify the level of optimization for the hardware build.
The various options displayed on this dialog box include:
- Target
- The build configuration target as described in Build Targets.
- Host debug
- Select to enable debug of the host code.
- Kernel debug
- Select to enable debug of the kernel code.
- Report level
- Specify what report level to generate as described in Controlling Report Generation.
- Hardware optimization
- Specify how much effort to use on optimizing the hardware. Hardware optimization is a compute intensive task. Higher levels of optimization might result in more optimal hardware but with increased build time. This option is only available in the Build Configuration System.
The Build
Configuration dialog box also contains links to
Edit Toolchain Compiler
Settings and Edit
Toolchain Linker Settings. These links provide access to
all the settings in the standard Eclipse environment, and can be used to configure
the G++ compiler, the V++ compiler, and the emconfigutil
command as described in Vitis Toolchain Settings.
Vitis Hardware Function Settings
To edit the settings for the hardware functions, expand the build target for the kernels project in the Assistant view, select the hardware function, and click the Settings button (). This displays the Hardware Function Settings dialog box as shown in the following figure.
dct
kernel (or hardware
function) is selected for the Emulation-HW
build
target of the hardware kernels project (dct_project_kernels
). This dialog box lets you set options related to the hardware
function, and the v++
compilation process for the
selected build target. Specific options include:
- Stall Profiling
- Enables the
--profile.stall
option for the kernel as explained in --profile Options. - Max memory ports
- For OpenCL kernels, when enabled, generates a separate physical memory interface (m_axi) for every global memory buffer declared in the kernel function signature. If not enabled, a single physical memory interface is created for the memory mapped kernel ports.
- Port data width
- For OpenCL kernels, specify the width of the data port.
- Extra source files
- Define any additional source files required by this hardware function, such as input data files.
- V++ configuration settings
- Specify Vitis compiler options to be added to the compiler configuration file. Select the Edit command (…) to edit the options to add to the config file. Specified options will be added to the compile.cfg file that is linked in the V++ Compiler Command Line displayed at the bottom of the dialog box.
- V++ compiler options
- Specify Vitis compiler options to be added to the V++ Compiler Command Line displayed at the bottom of the dialog box.
- Supported targets
- Specify which of the three build targets you are defining in the Hardware Function Settings dialog box. You can select one or all build targets.
- Kernel Arguments
- Displays the names and attributes of the arguments of the hardware kernel.
- V++ Compiler Command Line
- Displays the current
v++
command line with any compilation options you have specified.
--config
option as described in Vitis Compiler Configuration File. The configuration file is a link; when you place
your mouse over the link, it displays the contents of the configuration file.
Vitis Binary Container Settings
To edit the settings for a binary container,expand the build target
for the hw_link
project in the Assistant view, select the binary_container
, and click the Settings button (). This displays the
Binary Container
Settings dialog box as shown in the following figure.
This dialog box lets you specify a new name for the binary
container, and to specify link options for the v++
command. Specific options include:
- Name
- Specify the name of the binary container.
- V++ configuration settings
- Specify Vitis linker options to be added to the configuration file. Select the Edit command (…) to edit the options to add to the config file. Specified options will be added to the binary_container-link.cfg file that is linked in the V++ Linker Command Line displayed at the bottom of the dialog box.
- V++ command line
- Enter link options for the selected binary container to be added to the V++ Linker Command Line displayed at the bottom of the dialog box. For more information on the available options, refer to Vitis Compiler Command.
- Compute Units
- Specify the number of kernels to add to the device binary as explained in --connectivity Options. The field can be edited, and when you have entered the value, additional kernels will be displayed in the dialog box.
- Memory
- Specify global memory assignments for each argument of a compute unit as discussed in Mapping Kernel Ports to Memory.
- SLR
- Define the SLR placement for each compute unit of the kernel as discussed in Assigning Compute Units to SLRs.
- ChipScope Debug
- Add monitors to capture hardware trace debug information.
This specifies the
--debug.chipscope
option. - Protocol Checker
- Add AXI Protocol Checker to your design. This relates to
the
--debug.protocol
option. - Data Transfer
- Add performance monitors to capture information related to
data transferred between compute unit and global memory. Captured data
includes counters, trace, or both. This relates to the
--profile.data
option, and to xrt.ini file settings as explained in Enabling Profiling in Your Application. - Execute Profiling
- Add an accelerator monitor to capture the start and end of
compute unit executions. This relates to the
--profile.exec
option. - Stall Profiling
- Add an accelerator monitor with functionality to capture
stalls in the flow of data inside a kernel, between two kernels, or between
the kernel and external memory. This relates to the
--profile.stall
option. - V++ Linker Command Line
- Displays the current
v++
command line with any link options you have specified.
--config
option as described in Vitis Compiler Configuration File. The configuration file is a link; when you place
your mouse over the link, it displays the contents of the configuration file.
Vitis Toolchain Settings
The toolchain settings provide a standard Eclipse-based view of the project, providing all options for the C/C++ build in the Vitis IDE.
From the Build Configuration Settings dialog box, click Edit Toolchain Compiler Settings or Edit Toolchain Linker Settings to bring up the compiler and linker Settings dialog box containing all of the C/C++ build settings. This dialog box lets you set standard C++ paths, include paths, libraries, project wide defines, and host defines.
The contents of the Toolchain
Settings dialog box depends on the specific
Build Configuration
dialog box you launched it from. You can launch it from the host application
project, the hardware kernels project, or the hw_link
project. The specific settings available include the
following:
- emconfigutil
- Specify the command line options for emconfigutil Utility. See emconfigutil Settings.
- GCC Host Compiler
- Specify
g++
linker arguments that must be passed during the host compilation process. See G++ Host Compiler and Linker Settings. - GCC Host Linker
- Specify
g++
linker arguments that must be passed during the host linking process. See G++ Host Compiler and Linker Settings. - V++ Kernel Compiler
- Specify the
v++
command and any additional options that must be passed when calling thev++
command for the kernel compilation process. See V++ Compiler and Linker Settings. - V++ Kernel Linker
- Specify the
v++
command and any additional options to be passed when calling thev++
command for the kernel linking process. See V++ Compiler and Linker Settings.
G++ Host Compiler and Linker Settings
You can open the GCC Compiler and Linker
Settings dialog box from the Build Configuration Settings dialog box of a host
application project. The arguments for the g++
compiler used by the Vitis core development kit
can be accessed under the GCC Host
Compiler section of the Toolchain Settings.
- Dialect
- Specify the command options that select the C++ language standard to use. Standard dialect options include C++ 98, C++ 2011, and C++ 2014 (1Y).
- Preprocessor
- Specify preprocessor arguments to the host compiler such as symbol definitions. The default symbols already defined include the platform so that the host code can check for the specific platform.
- Includes
- Specify the include paths and include files.
- Optimization
- Specify the compiler optimization flags and other optimization settings.
- Debugging
- Specify the debug level and other debugging flags.
- Warnings
- Specify options related to compiler warnings.
- Miscellaneous
- Specify any other flags that are passed to the
g++
compiler.
GCC Linker Options
The linker arguments for the Vitis technology G++ Host Linker are provided through the options available here. Specific sections include general options, libraries and library paths, miscellaneous linker options, and shared libraries.
V++ Compiler and Linker Settings
You can open the V++ Compiler
Settings dialog box from a hardware kernel project
Build Configuration
Settings dialog box. The V++ Kernel Compiler settings shows the
v++
command used during compilation, and any
additional options that must be passed when calling the v++
command for the kernel compilation process. The v++
command options can be symbols, include paths, or
miscellaneous valid options.
- Symbols
- Click Symbols under
Vitis compiler to define any
symbols that are passed with the
–D
option when calling thev++
command. - Includes
- To add include paths to the Vitis compiler, select Includes and click the Add () button.
- Miscellaneous
- Vitis specific settings, such as the Vitis compiler and linker flags, which are not part of the standard C/C++ tool chain, can be added as flags in the Miscellaneous section. For more information on the available compiler options, refer to Vitis Compiler Command.
You can open the V++ Linker
Settings dialog box from a hw_link
project Build Configuration
Settings dialog box. The V++
Linker Settings shows the v++
command used during linking, as well as any additional options to be passed when
calling the v++
command for the kernel linking
process.
Any additional options that need to be passed to the Vitis compiler can be added as flags in the Miscellaneous section. For more information, refer to Vitis Compiler Command for the available options in the linking process.
emconfigutil Settings
Select the emconfigutil
command
options in the GCC Compiler and Linker
Settings dialog box, which you can open from the Build Configuration Settings dialog box of
a host application project. The Command
field specifies the emconfigutil
command that will
launch the Vitis IDE, as described in emconfigutil Utility. You can also specify any options
for the command line as needed for your project.
The Vitis IDE creates the
emconfig.json file by running the
specified emconfigutil
command before launching an
emulation run configuration.
Vitis Run and Debug Configuration Settings
Launching the compiled, linked, and packaged application, to run or to debug within the Vitis IDE requires the use of the Launch Configuration dialog box, as shown in the figure below. When the build process has completed, the tool enables both the Run button and the Debug button in the Assistant view to let you specify a Launch Configuration to use.
To edit the settings for a launch configuration, select a build target and click the Run button to open the Run Configurations dialog box. The Run Configuration dialog box, as shown below, lets you specify debug options, enable profiling of the running application, and specify the types of profiling data to collect.
- Name
- Specify the name of the run configuration. The Vitis IDE creates a folder named after the run configuration in the specific build configuration being run. For instance ./project/Emulation-HW/run_config. The output files and logs from the application run are written to this folder. All arguments passed to the host program should be written relative to this folder.
- Project
- Display the current project, but can be changed to other open projects.
- Build Configuration
- Select the build target that the launch configuration applies to, or it applies to the active build configuration.
- Disable Build Before Launch
- When enabled this check box prevents the tool from rebuilding the project before running or debugging it.
- Target
- Specify the run or debug target for the configuration.
Note that emulation builds targets the Linux TCF agent, while the hardware
build requires the
hw_server
, as described in Debugging Applications and Kernels. - Remote Working Directory
- For embedded processor systems, specifies the mount disk for the QEMU environment, or for the physical device.
- Program Arguments
- Display the Programs Argument dialog box. This lets you specify command line arguments for your application if any are needed. Enabling the Automatically update arguments check box allows the tool to automatically specify the xclbin file as an argument for the application. The xclbin file is appended at the end of the command line, after any other specified arguments.
- Override Application Options
- Generate an options file for the
launch_emulator.py
command, that you can manually edit to customize as needed for your purposes. Click the Generate button to create a new launch_options.cfg file, or use the Browse button to locate an existing one. - Xilinx Runtime Profiling
- This specifies the profiling and event trace features that are enabled during the application run. The specified options are stored in a configuration file and written to the xrt.ini file to use while running the application. Click the Edit button to open the Xilinx Runtime Profiling dialog box as shown below.
- Runtime Profiling
- Specify the type of profiling you want enabled for the
run. You can specify a form of profiling, or profiling and timeline capture
as described in Enabling Profiling in Your Application. TIP: For hardware builds you can also enable Power Profiling for the accelerator card.
- Device Profiling
- Specify level of profiling performed on the hardware
kernels. This option relates to the
data_transfer_trace
as described in xrt.ini File. Coarse device profiling shows data transfer activity of the CU. Fine device profiling shows all AXI-level transactions on the ports. - Collect Stall Trace
- Indicate the capture of stall data for a variety of conditions, as described in --profile Options, and xrt.ini File.
- Device Trace Offload
- Specify the amount of global memory to allocate to the capture of trace data, and also to enable continuous trace offload at the specified interval to prevent the loss of application timeline data in the case of an interrupted process, as described in Enabling Profiling in Your Application.
The Launch Configuration dialog box has additional tabs to help configure the runtime environment for your application. The three tabs are:
- Target Setup
- Mainly for embedded platforms with a bare-metal application. It provides options to initialize, manage, and reset the board, device, and program.
- Environment
- Lets you set up and manage environment variables needed for the Vitis IDE.
- Common
- This tab is inherited from Eclipse. These are settings and feature common to the Eclipse environment.