2. Vivado 开发环境搭建:从安装到第一个工程
说实话,很多初学者拿到 Vivado 第一反应就是——这玩意儿怎么这么大?安装包十几个 G,装完占几十 G。别慌,我带你一步步搞定。这一章咱们就解决三件事:装好 Vivado、配好 License、跑通第一个工程。
2.1 Vivado 安装与许可配置
2.1.1 版本选择
我个人习惯用 LTS 版本,也就是长期支持版。比如 2020.2、2021.1、2022.2 这些。为什么?因为 .0 版本往往有坑,我在项目里吃过亏——2019.1 刚出来时,IP Integrator 的 AXI 互联逻辑有 bug,折腾了两天才发现是工具问题。
| 版本 | 特点 | 推荐场景 |
|---|---|---|
| 2020.2 | 稳定,生态成熟 | 工业项目、量产 |
| 2021.1 | 支持更多器件 | 新芯片选型 |
| 2022.2 | Vitis 统一平台 | 新项目、学习 |
2.1.2 安装流程
下载安装包时,记得选 Web Installer 还是 Self-Extracting Installer。Web 版小,但安装过程要联网;离线版大,一次下载终身使用。我一般用离线版,毕竟实验室网络不稳定。
- 解压安装包——别放中文路径!我见过有人放桌面“新建文件夹”,结果安装到一半报错。
- 运行 xsetup.exe——选 Vivado HL WebPACK 或 Vivado HL Design Edition。WebPACK 免费,够用;Design Edition 要 License。
- 勾选组件——至少选 Vivado、Vitis(SDK 的升级版)、DocNav。其他按需。
- 等待安装——去喝杯咖啡,大概 30-60 分钟。
2.1.3 License 配置
License 是很多人卡住的地方。我刚开始也搞混过 Node-Locked 和 Floating 的区别。
| 类型 | 特点 | 适用场景 |
|---|---|---|
| Node-Locked | 绑定一台电脑,离线可用 | 个人开发、固定工位 |
| Floating | 网络浮动,多机共享 | 团队、实验室 |
配置步骤很简单:
- 打开 Vivado,点击 Help → Manage License。
- 选 Load License,找到你的 .lic 文件。
- 如果提示 "Host ID mismatch",检查 MAC 地址是否匹配。
2.2 Vivado 工程创建流程
好,工具装好了,咱们来建第一个工程。我带你走一遍标准流程,以后所有项目都按这个套路来。
2.2.1 创建工程
- 启动 Vivado,点击 Create Project。
- 输入工程名和路径——不要中文,不要空格。比如
led_blink。 - 选择 RTL Project,勾选 Do not specify sources at this time。
- 选择器件:Zynq-7000 系列,比如 xc7z020clg484-1(Zybo 板常用)。
- 点击 Finish。
xc7z020 就能快速定位。
2.2.2 添加源文件
工程建好了,现在加个顶层模块。右键 Sources → Add Sources,选 Add or create design sources,新建一个 Verilog 文件:
module led_blink (
input wire clk,
input wire rst_n,
output reg led
);
reg [23:0] counter;
always @(posedge clk or negedge rst_n) begin
if (!rst_n) begin
counter <= 24'd0;
led <= 1'b0;
end else begin
counter <= counter + 1'b1;
if (counter == 24'd5000000) begin
led <= ~led;
counter <= 24'd0;
end
end
end
endmodule
这段代码很简单:每 5,000,000 个时钟周期翻转一次 LED。50MHz 时钟下,大概 0.1 秒闪一次。
2.2.3 综合与实现
写完代码,点 Run Synthesis。综合完成后,看看有没有错误和警告。我一般先看 Warnings 标签,很多问题其实在综合阶段就能发现。
综合通过后,点 Run Implementation。实现完成后,可以看 Timing Summary——如果时序不满足,说明你的设计跑不到目标频率。
always @(*) 写成 always @(posedge clk),结果时序一塌糊涂。
2.3 IP Integrator 基本使用
IP Integrator 是 Vivado 的图形化设计工具,说白了就是搭积木。Zynq 开发的核心就是用它把 PS(处理器系统)和 PL(可编程逻辑)连起来。
2.3.1 创建 Block Design
- 在 Flow Navigator 点 Create Block Design。
- 输入名字,比如
system。 - 画布打开后,右键点 Add IP,搜索 ZYNQ7 Processing System。
- 双击 IP 块,配置 PS 参数:DDR、UART、时钟频率等。
2.3.2 添加自定义 IP
有时候你需要把自己的 RTL 代码封装成 IP。点 Tools → Create and Package New IP,选 Package your current project。Vivado 会自动分析你的端口,生成 IP 核。
封装好后,在 Block Design 里就能搜到你的 IP 了。拖进来,连上 AXI 总线——嗯,这里要注意,AXI 接口的地址分配不能冲突。
2.3.3 验证与导出
设计完成后,点 Validate Design。如果没报错,就可以生成顶层 HDL 文件了:右键 Block Design → Generate Output Products。
最后,点 Export Hardware,勾选 Include bitstream。这样 Vitis(SDK)才能识别你的硬件配置。
2.4 本章知识结构
下面这张图帮你理清本章的核心脉络:
2.5 常见问题与避坑
- 安装卡在 99%——关掉杀毒软件,以管理员身份运行。
- License 报错 "Invalid host"——检查网卡 MAC 地址,虚拟机用户尤其注意。
- 综合报错 "Unresolved reference"——模块名拼写错误,或者文件没加到工程里。
- IP Integrator 连线报错——先点 Regenerate Layout,再手动调整。