本笔记使用的Vitis HLS版本为2022.2,在windows11下运行,仿真part为xcku15p_CIV-ffva1156-2LV-e,这一篇终于没有再大量使用别人的内容,是我自己从头捋到尾的结果,不过之后的笔记还是要参照别人的教程就是了。
学习笔记:《FPGA学习笔记》索引
FPGA学习笔记#1 HLS简介及相关概念
FPGA学习笔记#2 基本组件——CLB、SLICE、LUT、MUX、进位链、DRAM、存储单元、BRAM
FPGA学习笔记#3 Vitis HLS编程规范、数据类型、基本运算
FPGA学习笔记#4 Vitis HLS 入门的第一个工程
FPGA学习笔记#5 Vitis HLS For循环的优化(1)
FPGA学习笔记#6 Vitis HLS For循环的优化(2)
FPGA学习笔记#7 Vitis HLS 数组优化和函数优化
FPGA学习笔记#8 Vitis HLS优化总结和案例程序的优化
目录
1.工程的创建
Vitis的安装请自行查找教程,本教程使用的Xilinx IDE为Vitis HLS,比较早的版本则可以使用Vivado HLS,功能都差不多。
首先点击Create Project创建工程。

输入工程名和工程目录,点击Next。

无视添加Design文件和Testbench文件,我们之后再加,直接点Next。

选择FPGA型号,根据自己需要写,如果想完整复现结果就选一样的,选完后点OK,再点Finish完成创建。


工程创建结束。

2.添加程序文件
在工程界面左上角是资源管理器,右键Source->New Source File,创建top.h和top.cpp(一次只能创建一个文件),然后同样的方式右键Test Bench->New Test Bench File,创建test.cpp文件。文件存储位置任意,可以放在工程根目录。


创建完成后如下图所示:

至于为什么不和其他教程里叫VectorAdd.h和.cpp,因为这样以后用这个工程直接跑别的测试没有啥违和感。
3.程序编写
我们用一个经典的测试例程,数组A的每一个元素+数据t,其结果输出到数组B中。
top.h:
// top.h
#define N 5
typedef int data_t;
void VectorAdd(data_t A[N],data_t t,data_t B[N]);
top.cpp:
// top.cpp