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.

Figure 1: Project Settings
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.

Figure 2: Build Configuration Settings

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.

TIP: Notice in the figure below that the dct kernel (or hardware function) is selected for the Emulation-HW build target of the hardware kernels project (dct_project_kernels).
Figure 3: Hardware Function Settings

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.
TIP: The settings specified by the Hardware Function Settings dialog box are written to a configuration file used by the Vitis compiler with the --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.

TIP: The options displayed in the Binary Container Settings dialog box depend on the specific build target selected, and will vary between software emulation, hardware emulation, and hardware.
Figure 4: Binary Container Settings

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.
TIP: The settings specified by the Binary Container Settings dialog box are written to a configuration file used by the Vitis compiler with the --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.

Figure 5: Toolchain Settings

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 the v++ 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 the v++ command for the kernel linking process. See V++ Compiler and Linker Settings.

G++ Host Compiler and Linker Settings

Figure 6: GCC 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

Figure 7: V++ Compiler 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 the v++ 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.
Figure 8: V++ Linker Settings

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.

Figure 9: emconfigutil Settings

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.

TIP: The Launch Configuration is the same for both running and debugging the application. There are differences in the steps that the tool follows when running the application or launching the debugger, but you can use the same configuration for both purposes.

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.

Figure 10: Run Configuration Settings
TIP: The options displayed in the Launch Configuration dialog box vary for Data Center and Embedded Processor platforms, and also for the software and hardware emulation builds, and the hardware build.
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.
Note: Program arguments should be specified relative to the run configuration folder that is created during the run. You can refer to the Vitis log window in the IDE to review a copy of the command line used to launch the application.
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.