2、HLS开发环境搭建:Vitis HLS安装、许可证配置、环境变量设置、命令行工具链验证
说实话,很多朋友刚开始接触HLS,第一反应就是——装个软件嘛,能有多难?
嗯,我以前也这么想。直到有一次我在客户现场,折腾了整整一个下午,才发现是许可证文件路径写错了。那种尴尬,我现在还记得。
所以这一章,咱们把环境搭建这件事,掰开揉碎了讲清楚。
2.1 安装Vitis HLS——别急着点下一步
Vitis HLS现在作为Vitis统一平台的一部分发布。你不需要单独下载一个叫“Vitis HLS”的安装包,它藏在Vitis安装包里面。
我个人习惯去Xilinx官网下载Vitis Unified Software Platform。版本嘛,我建议用2020.2到2022.2之间的版本。太新的版本有时候对老设备支持不太好,太老的版本又缺新特性。
安装要点:
- 安装路径不要有中文,不要有空格。我见过有人装在
D:\软件\Vitis,结果编译报错找半天原因。 - 磁盘空间预留至少50GB。Vitis全家桶挺大的。
- Windows系统建议关闭杀毒软件再安装,不然有些动态库会被误删。
安装过程中,你会看到一堆组件选择。这里我建议只勾选:
- Vitis HLS
- Vivado(HLS综合需要调用Vivado的合成器)
- 对应的器件库(比如zynq、kintex等)
其他的像Vitis AI、XRT这些,用不到就先别装,省点硬盘空间。
2.2 许可证配置——最容易翻车的地方
许可证配置,说白了就是让软件知道“你是合法用户”。
Vitis HLS支持两种许可证方式:Node-locked(锁定节点)和Floating(浮动)。
| 类型 | 适用场景 | 配置方式 |
|---|---|---|
| Node-locked | 个人电脑、固定工作站 | 将license文件放到指定目录 |
| Floating | 团队共享、服务器 | 配置LM_LICENSE_FILE环境变量指向服务器 |
我个人习惯用Node-locked方式。拿到license文件后,我会把它放在C:\Xilinx\licenses目录下。然后在环境变量里设置:
set XILINXD_LICENSE_FILE=C:\Xilinx\licenses\my_license.lic
注意:我曾经遇到过一个问题——license文件明明在,但软件就是报“找不到许可证”。后来发现是文件编码问题。Xilinx的license文件必须是ASCII编码,不能用UTF-8带BOM。如果你用记事本编辑过license文件,记得另存为ANSI格式。
验证许可证是否生效,可以打开Vitis HLS,看Help -> License Manager。如果显示“Licensed”,那就没问题了。
2.3 环境变量设置——别漏了这几个
环境变量这东西,看起来简单,但漏一个就玩不转。我整理了一份清单,你照着配就行。
Windows系统:
# 必须设置
XILINX_VIVADO = C:\Xilinx\Vivado\2022.2
XILINX_HLS = C:\Xilinx\Vitis_HLS\2022.2
PATH = %XILINX_VIVADO%\bin;%XILINX_HLS%\bin;%PATH%
# 建议设置
XILINXD_LICENSE_FILE = C:\Xilinx\licenses\my_license.lic
TMP = C:\temp # 避免中文路径问题
Linux系统:
# 在.bashrc或.profile中添加
export XILINX_VIVADO=/tools/Xilinx/Vivado/2022.2
export XILINX_HLS=/tools/Xilinx/Vitis_HLS/2022.2
export PATH=$XILINX_VIVADO/bin:$XILINX_HLS/bin:$PATH
export XILINXD_LICENSE_FILE=/tools/Xilinx/licenses/my_license.lic
小技巧:设置完环境变量后,重启终端或者执行source ~/.bashrc。然后输入echo $XILINX_HLS,看看路径对不对。我每次配完环境都会做这个检查,省得后面出问题。
2.4 命令行工具链验证——真金不怕火炼
环境配好了,咱们得验证一下。命令行验证是最直接的方式。
打开终端(Windows用cmd或PowerShell,Linux用bash),依次执行:
# 检查Vitis HLS版本
vitis_hls -version
# 检查Vivado版本
vivado -version
# 检查C编译器
gcc --version
如果都能正常输出版本信息,恭喜你,环境基本没问题了。
接下来,咱们跑一个最简单的HLS例子,验证整个工具链:
# 创建一个测试目录
mkdir hls_test
cd hls_test
# 创建一个简单的C文件
echo 'int add(int a, int b) { return a + b; }' > test.c
# 创建Tcl脚本
echo 'open_project test_prj
add_files test.c
set_top add
open_solution "solution1"
set_part {xc7z020clg400-1}
create_clock -period 10
csynth_design
exit' > run.tcl
# 运行HLS
vitis_hls -f run.tcl
如果一切顺利,你会看到类似这样的输出:
INFO: [HLS 200-10] Starting C synthesis...
INFO: [HLS 200-10] Finished C synthesis.
INFO: [HLS 200-10] Synthesis report generated.
验证清单:
- ✅ vitis_hls命令能找到
- ✅ vivado命令能找到
- ✅ C编译器能工作
- ✅ HLS能完成综合
- ✅ 生成报告没有报错
嗯,到这里,你的HLS开发环境就算搭建完成了。说实话,环境搭建这一步虽然枯燥,但基础打牢了,后面写代码、做优化才能顺风顺水。
下面我用一张图总结一下整个环境搭建的流程:
这张图把整个流程串起来了。你照着这个顺序走,基本不会出大问题。
最后提醒一句:环境搭建完成后,最好把终端窗口开着,别急着关。后面写代码、跑综合,都要用这个环境。万一哪个变量没生效,还能及时排查。
好了,环境搭好了,下一节咱们就开始写真正的HLS代码了。