2. 开发环境搭建:Vitis统一软件平台安装与配置,Vivado设计套件基础,开发板(如VCK190)准备与验证
好,咱们正式开始动手了。这一章,说白了就是“磨刀”。
我见过太多人,拿到开发板就急着写代码,结果环境没配好,折腾一整天连个灯都点不亮。我个人习惯是,先把工具链理顺,再谈设计。你想想看,一个厨师如果连刀都磨不快,菜能切好吗?
2.1 Vitis统一软件平台:安装与配置
Vitis 这个平台,AMD 把它叫做“统一软件平台”。为什么叫统一?因为它把嵌入式软件开发、AI 推理、还有传统的 RTL 设计流程,全揉到一起了。嗯,这里要注意,Vitis 不是 Vivado 的替代品,而是它的“大哥”。
安装前的准备
我建议你至少准备 200GB 的硬盘空间。别嫌多,我当年装完所有器件库,差点把 256GB 的笔记本撑爆。另外,内存 16GB 起步,32GB 会更舒服。
我曾经在 Windows 上装 Vitis,结果死活编译不过。后来发现,AMD 官方推荐的是 Ubuntu 18.04/20.04 LTS。如果你非要用 Windows,记得关掉杀毒软件,路径里不要有中文和空格。
安装步骤(以 Linux 为例)
- 从 AMD 官网下载
Xilinx_Unified_2023.2_XXXX.tar.gz(版本号会变,选最新的 LTS 版本) - 解压后运行
./xsetup - 选择 “Vitis” 安装选项,它会自动包含 Vivado
- 器件选择:勾选 “Versal” 系列(VCK190 用的就是 Versal AI Core)
- 安装路径:我习惯放在
/tools/Xilinx,避免权限问题
关键点:安装完成后,一定要设置环境变量。把下面这行加到你的 .bashrc 里:
source /tools/Xilinx/Vitis/2023.2/settings64.sh
然后 source ~/.bashrc 让它生效。
2.2 Vivado设计套件基础
Vivado 是咱们做 FPGA 设计的“画板”。但说实话,Vivado 的界面有点“重”,第一次打开可能会懵。别慌,咱们只抓核心。
Vivado 的核心流程
| 步骤 | 做什么 | 我踩过的坑 |
|---|---|---|
| 1. 创建工程 | 选器件、选语言(Verilog/VHDL) | 器件型号别选错,VCK190 是 XCVC1902 |
| 2. 添加源文件 | 写 RTL 代码或添加 IP | 文件名不要用中文,Vivado 会报奇怪的错 |
| 3. 综合 (Synthesis) | 把 RTL 转成网表 | 综合很慢,我一般先去喝杯咖啡 |
| 4. 实现 (Implementation) | 布局布线 | 时序不满足?先检查约束文件 |
| 5. 生成比特流 | 生成 .bit 文件,烧录到板子 | 记得先接好 JTAG 线 |
一个小技巧
Vivado 的 Tcl 控制台非常强大。我习惯把常用的操作写成 Tcl 脚本,比如:
# 创建一个简单的工程
create_project -force my_project ./my_project -part xcvc1902-vsva2197-1LP-i-S
add_files -norecurse ./src/top.v
set_property top top [current_fileset]
launch_runs synth_1 -jobs 4
wait_on_run synth_1
launch_runs impl_1 -jobs 4
wait_on_run impl_1
open_run impl_1
write_bitstream -force ./output.bit
你看,这样每次重建工程,一行命令就搞定了,不用点鼠标点到手酸。
2.3 开发板准备与验证:以VCK190为例
VCK190 这块板子,说实话,第一次拿到手我是有点“敬畏”的。它不像那些几百块的入门板,这是真正的“大杀器”。
开箱检查
- 板子本体(注意静电袋,别直接用手摸芯片)
- 电源适配器(12V/10A,别用错)
- USB 线(用于 JTAG 和 UART)
- SD 卡(预装了启动镜像)
板子启动验证
- 连接电源和 USB 线
- 将 SD 卡插入板子
- 拨动启动开关到 SD 卡模式(参考板子丝印)
- 上电,观察板子上的 LED
正常情况下,你会看到 DONE LED 亮起,同时 UART 输出启动信息。用串口工具(比如 Putty)连接,波特率 115200,你会看到 Linux 启动的日志。
验证 Vivado 能否识别板子
打开 Vivado,在 Tcl 控制台输入:
open_hw_manager
connect_hw_server
get_hw_targets
如果能看到 xcvc1902 的器件,说明 JTAG 链路正常。如果看不到,检查一下 USB 驱动,或者换个 USB 口。我遇到过 USB 3.0 口不兼容的情况,换成 USB 2.0 就好了。
2.4 第一个“Hello World”:点亮LED
咱们来写个最简单的程序,验证整个工具链是否打通。
Vivado 工程
// top.v
module top (
input wire clk,
output wire led
);
reg [31:0] counter;
assign led = counter[25]; // 分频后闪烁
always @(posedge clk) begin
counter <= counter + 1;
end
endmodule
约束文件(.xdc):
set_property PACKAGE_PIN AE14 [get_ports clk]
set_property IOSTANDARD LVCMOS18 [get_ports clk]
set_property PACKAGE_PIN AA1 [get_ports led]
set_property IOSTANDARD LVCMOS18 [get_ports led]
生成比特流,烧录进去。如果 LED 开始闪烁,恭喜你,环境搭建成功了!
总结一下:
- Vitis 是“大平台”,Vivado 是“画板”,两者配合使用
- VCK190 是 Versal 架构,和传统的 Zynq 有些区别,但基本流程一致
- 遇到问题先查 JTAG 连接,再查电源,最后查代码
嗯,这一章就到这里。下一章咱们会深入 Versal 的架构,看看它到底“牛”在哪里。记住,环境搭好了,后面才能跑得快。