Editor’s Note: This content is contributed by Nathan Sullivan, Sr. Embedded Software Engineer at DesignLinx Hardware Solutions, Inc.
DesignLinx and its customers have been early adopters of the Xilinx® SDAccel™ development environment for both cloud and on-premises applications, using the SDAccel development environment to target both Amazon AWS F1 and Xilinx Alveo™ data center accelerator card with accelerated software. Along with SDSoC and the Xilinx SDK, the SDAccel flow is now part of the Vitis™ unified software platform in version 2019.2, allowing developers to use a single platform for all software tasks on Xilinx devices.
Benefits of Vitis
Vitis 2019.2 brings an updated v++ compiler, enhancements to IDE project organization, and a single tool flow for both embedded and data center applications. There is no longer a need to switch between SDAccel, SDK, and SDSoC for different types of applications because all three flows are now part of Vitis. In addition to the Vitis IDE, a complete command line tool flow for building software is available through the v++ tool and makefiles like the xocc/xcpp flow from SDAccel.
Migration is Simple
Vitis 2019.2 uses gcc to compile C sources and Vivado® HLS for compiling acceleration kernels, matching the SDAccel flow. Vitis also uses the same target platforms and Xilinx Runtime as SDAccel. This means the new environment is source compatible and that SDAccel projects should build in Vitis with few or no changes. When migrating source, a user can choose to build the new project with the Vitis IDE or with the v++ command line toolchain.
To migrate projects using the Vitis IDE, simply add all source files from the SDAccel project to a new Vitis project, ideally targeting the same device. Using the “import sources” option on the right click menu is an easy way to do this. Once the source files are imported, kernel functions must be added to binary containers as they were in the original project, and any custom build settings will also need to be manually copied over.
Command Line Migration
To migrate projects that build using the command line, typically through makefiles, xocc calls must be replaced with v++ calls. Similarly, xcpp calls must be replaced with g++—that is, calling the host c++ compiler directly. The new v++ tool takes the same command line options as the xocc tool form SDAccel so that no other changes will be required. See UG1393 for more details on the tool changes in Vitis 2019.2.
Replacing XOCC and CXX in an SDAccel Sample Makefile
Once modified, the former SDAccel project can be built using Vitis tools:
Building the SDAccel Example as Before, but with Vitis Paths and Tools
While Vitis 2019.2 brings all the Xilinx software tools together in one platform, the SDAccel flow has not radically changed, making migration simple and straightforward. Existing projects are source compatible with the new toolchain, so minimal changes are needed to bring them forward to get the benefits of the Vitis 2019.2 unified software platform.
Xilinx Premier Partner DesignLinx offers development services for accelerated applications on the Vitis and SDAccel platforms as well as deployment services for both cloud and on-premises hardware.