Setting up Vivado+Vitis Development Environment for a Machine Learning Accelerator (Vivado version 2023.1)
This is part 2 of my series of blogs about my personal project on creating an accelerator for convolutional operations in a machine learning (ML) program. You can check out the previous part here.
I went with Vivado/Vitis version 2023.1. This version is aligned with the version I use for classes at Iowa State. Which I am more used to. Another reason I went with the version is in version 2023.2, Xilinx introduced a new IDE for Vitis, HLS, and other software. Xilinx called it the unified IDE. It is supposed to combine previously separate tools, but I find it more confusing and difficult to navigate. To be fair, I also didn’t invest too much time exploring the tool.
Installing the product involves downloading the software from Xilinx’s website, running the installer, and waiting for it to complete (which takes forever!).
Setting up the project was divided into two parts. The hardware portion on Vivado, and the software portion on Vitis. For version control, I went with the method stated by Jeff Johnson here.
I ended up with a version control file structure like the one in my GitHub repo. Notice the gitignores. Having proper gitignore files is crucial as Vivado creates tons of metadata files, which will be a pain if not properly managed.
Follow the instructions on the repo front page (README) for how to recreate the project.
Setting up Vitis to work correctly involves more tweaking of system variables and compiler flags. The software code I will be using for this project is closed source, as it is the property of Iowa State University. Hence, I would not be sharing the code for the software portion. Version control for the software portion also involves proper gitignore management, as Vitis, like Vivado, creates many metadata files.