Migrating from Vitis HLS to the Vitis Unified IDE - 2025.1 English - UG1399

Vitis High-Level Synthesis User Guide (UG1399)

Document ID
UG1399
Release Date
2025-05-29
Version
2025.1 English

The Vitis Unified IDE provides a common tool for creating the different components of a heterogeneous system design, or a Data Center acceleration application. These components include the HLS component generated from C/C++ source code. It includes the v++ and vitis-run common command-line for compiling and linking the system design. Vitis Unified IDE provides multiple ways to migrate an existing Vitis HLS classic project into the new tool. These include the following:

  1. Create an HLS Component from an existing Vitis HLS classic project
  2. Continue using an existing Tcl script
  3. Convert to using Python script

1. Create an HLS Component from an Exisiting Vitis HLS Project

As described in Creating an HLS Component you can specify the hls.app file from an existing Vitis HLS classic project to generate a new HLS config file. The tool lets you identify the hls.app file inside the project, and enter a New configuration file name for the config file generated from the hls.app file.

Tip: If the project contains multiple solutions, the hls.app file identifies the solutions, and the HLS Component Creation wizard will prompt you to specify which of the available solutions should be imported. This allows creation of separate HLS components for each solution in the project.

2. Continue Using an Existing Tcl Script

To continue to use the existing Tcl script, replace open_project with open_componentand specify -flow_target vivado|vitis. Remove open_solution Tcl command as it is not required in Vitis Unified IDE as shown below.

By using open_component the output structure created is compatible with the Vitis Unified IDE and the directory from where the Tcl script is run is the workspace that can be opened in the Vitis Unified IDE. The hls reports and generated RTL files are now under the component directory. Tcl script can be run using vitis-run as shown below.

vitis-run --mode hls --tcl <tcl_script>.tcl

3. Convert to Using Python Script

Vitis Unified IDE supports Python APIs to create and manage various components including HLS component. A python script can be used containing these APIs for HLS component development and execution. HLS component configuration can be specified either in a config file (generated using write_ini as described above) or inside the python script as key-value pairs. The python script can be run using vitis as shown below.

vitis -s <python_script>.py

Use write_ini to Create an HLS Config File

The vitis-run executable has the ability to create a config file from an existing Tcl script using the write_ini command. This can be done by either including the write_ini command in the Tcl script or by launching HLS interactive Tcl shell using vitis-run (shown below) and specifying the write_ini command to export the Tcl commands used to create a project, or a specific solution. After creating the HLS config files from the existing project or solutions, HLS components can be created in the Vitis Unified IDE using these config files along with the specified source files.

$ vitis-run --mode hls --itcl
HLS> open_project <project_name>
HLS> write_ini <config_file_name>

Additionally, for users who prefer scripted flows for HLS development with the Vitis Unified IDE , examples in the Migration directory of the Vitis-HLS-Introductory-Examples repository show a couple of ways to do it.