Vitis学习笔记(一)——Getting-Started
Part One
基本概念
本部分一共有三部分概念
第一、Vitis编程和执行的模型
第二、Vitis执行的过程(Process)
第三、Vitis执行的目标(Target)
① 关于Vitis平台——
用标准编程语言开发和交付:FPGA的加速应用;
包含完整的开发环境;
②Vitis编程和执行模型——
Vitis加速应用包含两个部分:软件程序(sw)和硬件加速内核(hw)
在上图中,左半部分即为sw,右半部分为hw。
SW部分:
① 使用C/C++语言编程,生成host文件,在CPU里运行(分为数据中心和嵌入式加速平台两种);
② 通过Xilinx Runtime library(XRT为接口)实现的用户空间API进行交互。
右半部分:
① 使用C/C++或RTL语言编程,生成kernel code,在安装了加速卡的FPGA里运行;
② 使用标准的AXI接口与Vitis硬件平台交互。
两种平台进行vitis加速:data-center or embedded acceleration platforms
常用的软件程序与硬件内核交互的方法
- 主机应用程序将内核所需的数据写入FPGA全局寄存器当中。
- 主机程序设置了内核的输入参数。
- 主机程序触发内核开始执行操作。
- 内核执行所需的计算,必要时访问全局内存以读取或写入数据。内核也可以使用流式连接与其他内核进行通信,将数据从一个内核传递到另一个内核。
- 内核通知主机操作完成。
- 主机程序将数据从全局内存转移回主机内存,或者可以将数据的所有权交给另一个内核。
③Vitis的构建过程
标准过程:
分为两部分(host program 和 kernel code)
Software Emulation: 即 host program : 使用GNU C++ Arm cross-compiler 编译链
Hardware Emulation: 即 kernel code :
第一步,将代码编译生成 .xo 文件.
第二步,将**.xo** 文件与硬件平台连接起来,生成xclbin文件.
④Vitis的构建目标
一共有三个目标:
Software Emulation
Hardware Emulation
Hardware