Vitis:初探软硬件协同
Published:
初探软硬件协同相关知识
Xilinx的遗产和AMD的现状
Xilinx作为FPGA的龙头,自然FPGA是最主要的产品。但是近几年也逐渐开始向异构的SoC进军,比如出名的ZYNQ,Versal等,ZYNQ就是CPU+FPGA的SoC,Versal是CPU+FPGA+AIE的SoC,AIE有第一代,还有第二代,后面还将其用在笔记本电脑上作为NPU。还有剩下的传统FPGA(Spartan® / Artix® / Kintex® / Virtex®)就不赘述了。
那么对其进行开发,就需要Xilinx(以下称为AMD)的全家桶,主要是Vitis和Vivado,分别做软件开发和硬件开发;据我的理解,AMD提供了一些已有的IP,可供开发者基于这些IP来设计硬件电路,生成Verilog代码甚至编译的产物,这里我还不太清楚,在操作的过程中看到过xspm的文件(预先定义好的硬件平台),以及在一些视频教程中导出的xsa文件,似乎是和硬件相关的,之后软件开发就是基于这个硬件平台的,代码也可以是在这个上面运行。
在Vitis中,实际包装好了编译所需要的全部环境(其实也就是一般IDE的功能),需要先编译平台platform,再编译应用,应用可以分为裸机,Linux系统和freeRTOS系统的版本。可以使用SW仿真,HW仿真或者直接用开发板。
Vitis初探
- Windows
- 如果没有板子,不建议使用Windows。因为仿真需要petalinux,这个只有linux平台可以安装
- 较新的版本删除了AIE相关的示例,旧一些的也挺好的
- Linux
- 由于是WSL,所以直接用命令行操作了
- 使用v++进行编译,需要指定kernel,这个就是一个函数;主机代码运行在PS,kernel运行在PL/AIE
- kernel被编译位a.xo的文件,通过链接可以生成a.xclbin,这里包含了在PL/AIE上执行的代码
参考
听了一个ZYNQ的课程:https://www.bilibili.com/video/BV1Et421H75m/