3、HLS开发环境搭建:Vitis HLS安装与配置、创建第一个HLS工程、HLS工程结构解析、与Vivado的版本匹配
好,咱们正式开始动手了。这一章我带你把HLS的开发环境搭起来。说实话,环境搭建这事儿看着简单,但坑不少。我见过太多新手卡在版本匹配上,一卡就是半天。咱们一步步来,把基础打牢。
3.1 Vitis HLS安装与配置
先说说Vitis HLS是什么。它其实就是Xilinx推出的高层次综合工具。说白了,你写C/C++代码,它帮你转成RTL。嗯,听起来很神奇,但实际用起来你得懂它的脾气。
安装前的准备
我个人习惯在安装前先检查磁盘空间。Vitis HLS完整安装大概需要30GB左右。别小看这个数字,我有个同事装到一半发现C盘满了,那叫一个尴尬。
- 操作系统:Ubuntu 18.04/20.04 或 Windows 10/11(64位)
- 内存:建议16GB以上,8GB也能跑但会卡
- 磁盘:SSD优先,机械硬盘编译时你会怀疑人生
安装步骤
- 从Xilinx官网下载Vitis统一安装包(包含Vitis HLS)
- 运行安装程序,选择“Vitis”组件(别只勾HLS,有些依赖库会漏掉)
- 设置安装路径——我建议不要有中文和空格,否则后面各种莫名其妙的问题
- 等待安装完成(大概20-40分钟,取决于你的网速和磁盘速度)
3.2 创建第一个HLS工程
环境装好了,咱们来跑个最简单的例子。你想想看,学任何语言都是从“Hello World”开始的,HLS也不例外。
步骤1:启动Vitis HLS
在终端输入 vitis_hls,或者从开始菜单启动。界面加载后,你会看到一个欢迎页。别慌,点“Create New Project”。
步骤2:配置工程
- Project name:比如
first_hls_prj - Location:选个你记得住的目录
- Function:这里填顶层函数名,比如
add
我曾经犯过一个低级错误——顶层函数名写错了,结果综合出来一堆乱码。所以这里一定要仔细。
步骤3:添加源文件
创建一个 add.cpp 文件,内容如下:
// add.cpp
int add(int a, int b) {
return a + b;
}
就这么简单?对,就这么简单。但别小看它,这个结构是所有HLS工程的雏形。
步骤4:添加Testbench(可选但推荐)
创建一个 add_tb.cpp:
// add_tb.cpp
#include <iostream>
int add(int a, int b);
int main() {
int result = add(3, 5);
if (result == 8) {
std::cout << "Test passed!" << std::endl;
return 0;
} else {
std::cout << "Test failed!" << std::endl;
return 1;
}
}
步骤5:运行C仿真
点击工具栏的“Run C Simulation”按钮。如果一切顺利,你会看到控制台输出“Test passed!”。嗯,到这里你的第一个HLS工程就跑通了。
3.3 HLS工程结构解析
工程建好了,咱们看看里面都有啥。你打开工程目录,会看到这些文件夹:
| 文件夹/文件 | 作用 |
|---|---|
src/ |
存放你的C/C++源文件 |
tb/ |
测试文件(Testbench) |
solution1/ |
默认的解决方案目录,里面包含综合结果 |
impl/ |
综合后的RTL实现文件 |
report/ |
综合报告,包含延迟、资源占用等信息 |
这里我要特别说一下 solution 的概念。一个工程可以有多个solution,每个solution对应不同的优化策略。比如solution1用流水线,solution2用展开。这样你可以对比哪种方案更好。
为什么会需要多个solution?因为HLS的优化不是线性的。有时候你加个流水线,延迟降了但面积暴涨。多建几个solution,对比着看,心里才有底。
3.4 与Vivado的版本匹配
这是个大坑,我必须重点讲。Vitis HLS和Vivado的版本必须严格匹配。否则你综合出来的IP核,Vivado根本不认。
版本对应关系
| Vitis HLS版本 | 兼容的Vivado版本 |
|---|---|
| 2020.1 | 2020.1 |
| 2020.2 | 2020.2 |
| 2021.1 | 2021.1 |
| 2021.2 | 2021.2 |
| 2022.1 | 2022.1 |
如何检查版本?
在Vitis HLS中,点击 Help -> About 就能看到版本号。Vivado同理。确保两个数字完全一致,包括小版本号。
版本升级建议
- 如果你在用老项目,尽量保持原有版本
- 新项目建议用最新稳定版(比如2022.1或2023.1)
- 不要追新——2023.2刚出时bug一堆,我等了三个月才升级
知识体系总览
下面这张图帮你理清本章的核心逻辑。从安装到第一个工程,再到版本匹配,每一步都环环相扣。
好了,环境搭建这部分就讲到这里。你按照上面的步骤走一遍,应该能顺利跑通第一个HLS工程。记住,版本匹配是重中之重,别在这个细节上翻车。