做FPGA开发的人应该都清楚,Xilinx的Vivado是目前最主流的设计套件之一,而Vivado 2020.2这个版本在很多人眼里属于“稳得一批”的一代:既能兼容7系列到UltraScale+的主流器件,又不挑剔操作系统,插件生态和文档都相对成熟。即便到了2024、2025年,不少高校课程、公司项目和个人学习仍在用它。
这篇文章基于我自己在Windows环境下安装Vivado 2020.2的完整过程,把从下载安装器、申请License到第一次启动工程的所有步骤过一遍,重点放在“如何避免安装到一半挂掉”和“装完怎么快速跑通一个工程”这两件事上。内容偏向实操,大部分细节来自实际踩坑记录,适合第一次在Windows上装Vivado的同学,也给那些换电脑需要重装工具的人一份能直接照着做的清单。
1. 安装前要做的准备和版本选择逻辑
1.1 为什么很多老项目还在用Vivado 2020.2
先聊几句版本选择。Vivado的版本迭代很快,2020.2并不是最新,但它在实际工程中的存在感一直很强。2020.2对应的Vitis统一安装器版本是Vitis 2020.2,对Windows 10 64位系统支持得很完整,安装体积、内存占用和编译速度也相对平衡。
更关键的是,2020.2对7系列(比如Artix-7、Kintex-7、Virtex-7)和UltraScale系列的支持非常成熟,2020之前和2020之后的版本在License策略、器件库管理和第三方工具集成方式上都有变化,很多老IP核、老工程在2020.2上编译反而最省心。我遇到过不止一次,用新版Vivado打开旧工程后出现IP核版本不兼容的问题,而2020.2可以直接打开、直接重新生成输出文件,迁移成本几乎为零。
如果你只是学习数字逻辑、Verilog/VHDL设计和基本时序约束,2020.2完全够用。WebPACK版本免费,覆盖了Artix-7、Zynq-7000这类常用器件,配合官方申请的License就能正常使用。
1.2 硬盘、内存和系统环境的硬性要求
Vivado 2020.2在Windows上的安装包接近20GB,完整安装后占用通常在40GB以上,加上缓存和工程文件,我建议至少预留60GB空间。如果装的是Vivado HLx Edition(包含Vivado + Vitis + DocNav),空间需求会更夸张,建议直接给到80GB以上。
内存方面,官方最低要求是8GB,但强烈建议16GB起步。Vivado在综合和布局布线阶段的内存占用很容易飙到4GB到8GB,如果你同时开着手写板、浏览器和代码编辑器,32GB内存也会紧张。我自己实测,8GB内存跑小规模工程勉强可以,但如果编译Zynq或UltraScale级别工程,会频繁出现磁盘交换,卡到怀疑人生。
CPU方面没有特别苛刻的要求,Intel i5或AMD Ryzen 5以上的现代处理器都能胜任。真正影响安装体验的是硬盘,建议使用NVMe固态硬盘,因为安装过程中需要解压大量文件,机械硬盘的安装耗时可能是固态硬盘的2到3倍。
系统版本上,Windows 10 64位(1809以上版本)是最稳妥的选择,Windows 11也可以运行,但偶尔会遇到驱动签名或防火墙拦截问题。Windows 7不建议尝试,2020.2虽然名义上支持,但驱动和运行库匹配度差,经常莫名其妙出问题。
1.3 License方案怎么选
Vivado 2020.2的License常见有三种来源。第一种是Xilinx官网申请的免费WebPACK License,所有用户都可以通过AMD/Xilinx官网注册账号后申请。第二种是购买开发板时附带的节点锁定License,一般绑定开发板的MAC地址。第三种是公司或者学校的浮动License,通过服务器管理。
这里要重点说一句,很多人在网上找“激活工具”或者“破解版”,这个做法在软件合规性上有很大风险,而且Vivado的License校验机制很严格,经常出现激活后过几天又失效的情况。与其折腾这些,不如花10分钟去官网申请一个免费WebPACK License,覆盖个人学习和中小规模项目完全足够。
申请License流程不复杂,注册AMD账号后,在官网的License管理页面选择Vivado WebPACK License,提交后会在几分钟内收到License文件。把.lic文件保存到固定目录,安装完成后用Vivado License Manager加载即可。
2. 安装文件下载与安装向导完整解读
2.1 下载Vivado 2020.2安装包的正确姿势
安装包可以从官网的Vivado Archive页面下载,也可以从Xilinx统一安装器页面下载。2020.2对应的完整安装器名称为Xilinx_Vivado_SDK_2020.2_1101_1231_Win64.exe,下载后约20GB左右。
下载页面的几个选项要分清:Vivado HL WebPACK是免费版本,Vivado HLx Editions是完整版(包含Vivado、Vitis、DocNav等),如果只是装Vivado本身,不需要下载Vitis部分。完整的HLx版本安装包更大,但其中包含Vitis统一开发环境,如果以后想做Zynq SoC的嵌入式开发,建议直接下载完整版,免得再折腾一次Vitis安装。
下载速度会比较慢,官网服务器在国外,我这边实测速度在2MB/s上下,用浏览器直接下载容易断线,推荐使用支持断点续传的下载工具,比如IDM或者迅雷。下载完成后,用压缩软件或Windows自带的解压功能解压到本地目录,建议解压到磁盘根目录下的一个英文无空格路径,比如D:\vivado_download,避免中文和空格带来的权限问题。
2.2 安装向导每一步的详细说明
双击安装器后,首先是解压过程。这一步会把你刚才下载的安装包解压到临时目录,耗时取决于硬盘速度和文件体积,固态硬盘大约10分钟,机械硬盘可能要半小时以上。解压完成后会自动进入安装向导,如果没有自动启动,就去解压目录下找setup.exe双击运行。
安装向导第一页是欢迎页,直接Next。接下来是版本选择,这里要根据你的使用场景选。如果只做FPGA逻辑开发,选择“Vivado”即可;如果要用到Vitis做嵌入式SoC开发,选择“Vitis”会连带安装Vivado。选Vitis的话安装时间更长,但后续省心一点。
到这里我建议第一次安装的人选择“Vivado HL WebPACK”版本,因为它的安装包体积通常比完整版小一些,安装速度更快,而且对学习和小型项目足够了。如果之后发现器件型号超出WebPACK支持范围,再升级到完整版也不迟。
然后是安装路径设置。默认安装在C:\Xilinx\Vivado\2020.2,如果你C盘空间紧张,可以改成D盘或其他分区。这里有一个很重要的注意事项,安装路径不能包含中文和空格,比如D:\Program Files\Vivado就尽量不要用,有些第三方工具解析路径时出现乱码或转义问题。推荐用D:\Xilinx\Vivado\2020.2这种纯英文路径。
组件选择页是很多人容易忽略的地方。默认情况下,Vivado会选中所有支持的器件系列,包括Artix-7、Kintex-7、Virtex-7、Zynq-7000、UltraScale、UltraScale+等。如果硬盘空间充裕,可以直接全选,但如果你清楚自己只做Zynq-7000或者只做Artix-7,可以只勾选对应系列,能省出10GB以上的空间。除此之外,安装选项里还有“Education IPs”和“Install Cable Drivers”两个选项,前者是教学相关的IP核,后者是下载器驱动,强烈建议勾选Cable Drivers,否则后面连接开发板时会找不到USB JTAG设备。
安装完成后,耐心等待,这个过程的耗时比解压更长。我这台机器配置还行,完整安装在固态硬盘上大约耗时40分钟,机械硬盘可能要一个半小时甚至更多。安装过程中尽量不要做其他重度任务,不要去动临时解压目录,以免安装器写入文件时发生冲突。
3. 安装完成后的License配置与首次启动
3.1 用Vivado License Manager加载License
安装完成后,桌面会出现Vivado 2020.2快捷方式,首次打开时一般都会弹出版本信息界面,并提示是否现在配置License。点“Get Vivado License”会跳转到官网,但我们一般已经有了License文件,选择“Load License”来导入。
在Vivado软件的界面中,打开菜单Help -> Manage License,打开Vivado License Manager后,选择“Load License”选项卡,然后点击“Copy License”按钮,浏览到License文件所在位置,导入即可。导入成功后,License Manager会显示当前许可证的类型和支持的功能,比如WebPACK、Vivado Design Edition等。
这里有一个很多人踩过的坑:License文件保存路径不能变。Vivado会把License文件复制到它自己的安装目录下,但如果你通过环境变量指定了License文件路径,那个文件的位置就不能随意挪动。一旦License文件丢失或者路径失效,Vivado启动时会报“No valid license found”的错误。
如果你是从官网申请License时绑定了电脑的MAC地址,安装过程中电脑的MAC地址变了(比如换了网卡),License就会失效,需要重新申请或者绑定新网卡。这也是为什么我建议固定使用有线网卡的MAC地址来申请License,而不是无线网卡。
3.2 环境变量与启动脚本配置
多数情况下,Vivado安装器会自动配置好环境变量,不需要手动修改。但如果你在命令行里输入vivado提示找不到命令,就需要手动添加环境变量了。
打开系统属性 -> 环境变量,在系统变量中找到Path,编辑并添加Vivado的bin目录,比如D:\Xilinx\Vivado\2020.2\bin。保存后,重新打开命令行终端,输入vivado -version,如果能输出版本信息,说明环境变量配置成功。
如果你想在启动Vivado前执行一些固定配置,比如自动加载特定的tcl脚本,可以用Vivado提供的初始化脚本功能。在安装目录下的Vivado/2020.2/scripts里放一个init.tcl文件,每次启动时Vivado会自动执行里面的命令。这对于有特殊IP核路径或者自定义快捷键的人来说很实用。
3.3 用Vivado快速建一个Hello World工程验证安装
装完环境,跑一个最小工程是判断安装是否成功的最快方式。打开Vivado,在欢迎界面选择“Create New Project”,项目名称填test,保存路径选D:\fpga_projects,工程类型选“RTL Project”,不要勾选“Do not specify source at this time”,在添加源文件环节直接Next。
器件选择可以随意选一个支持的芯片,比如10分钟入门时选xc7z010clg400-1,这个型号是Zynq-7000系列中的常用型号。之后在Sources窗口右键点击Design Sources,选择“Add Sources”,新建一个Verilog文件led_blink.v,输入一个简单的LED闪烁代码。
module led_blink( input wire clk, input wire rst_n, output reg led ); reg [27:0] counter; always @(posedge clk or negedge rst_n) begin if (!rst_n) begin counter <= 28'd0; led <= 1'b0; end else begin if (counter == 28'd25_000_000) begin counter <= 28'd0; led <= ~led; end else begin counter <= counter + 1'b1; end end end endmodule保存文件后,在Flow Navigator里点击Run Synthesis,等待综合完成。如果综合过程没有报错,说明Vivado的编译器、器件库和许可证都正常工作了。综合完成后,还可以点击Run Implementation做一下布局布线,最后生成比特流文件。第一次跑综合和实现的耗时取决于工程规模和机器配置,但一个小工程几分钟内就能跑完。
这一步做完,整个安装流程就可以打勾验收了。
4. 常见安装失败与运行报错排查实录
4.1 安装过程中常见的“卡死”现象总结
安装Vivado时最容易遇见的状况就是“解压到一半进度条不动了”。2020.2安装包体积巨大,解压过程对临时目录的写入压力很大,如果临时目录所在磁盘空间不足,安装就会卡住。第一次安装时我也遇到过,当时在解压到78%的时候停了半小时,检查后发现C盘临时目录只剩1GB空间,整个安装器虽然装到D盘,但解压临时文件默认写入C盘。
解决方法是先设置环境变量,把TEMP和TMP指向一个大空间分区下的文件夹,比如D:\temp。设置完成后,重新运行安装器。如果安装器已经解压到一半,最好先清理临时目录再重试。
另一个常见情况是杀毒软件拦截。Windows Defender偶尔会把安装器中的某些文件当成威胁,虽然实际情况大多是误报,但拦截后安装过程会中断,报出各种奇怪的错误。我建议安装期间临时关闭第三方杀毒软件、关闭Windows Defender实时保护,安装完成后再恢复。
安装进度条长时间不走,但如果CPU和磁盘占用很大,说明后台还在努力,可以多等一会儿;如果CPU和磁盘都很安静,基本就是卡住了,需要结束掉安装进程,清理后重新来过。
4.2 启动时报“MSVCR120.dll缺失”或“VCRUNTIME140.dll缺失”怎么处理
这种报错在Vivado 2020.2上出现过一段时间,根源是Visual C++运行库缺失或版本过旧。Vivado依赖VC++ 2013和VC++ 2015-2019的运行库,Windows系统不一定会自动装全。
解决办法是去微软官网下载最新的Visual C++ Redistributable包,把x64和x86两个版本都装上。装完后重启再启动Vivado,一般就能解决问题。
4.3 License相关报错的集中排查清单
License问题占Vivado故障的半壁江山,这里整理一个速查表,按频率从高到低列出,方便照表排查。
| 报错信息 | 可能原因 | 处理方式 |
|---|---|---|
| No valid license found | License文件未加载、License路径失效、MAC绑定变化 | 通过Vivado License Manager重新导入License |
| ERROR: [Vivado 12-344] Failed to read a Xilinx license | License文件损坏或版本不匹配 | 重新从官网申请,下载最新的License文件 |
| License server does not support feature | 浮动License服务器缺少对应功能 | 联系管理员开通对应功能 |
| ERROR: [Common 17-345] Unable to write into directory | 当前用户权限不足或目录被占用 | 以管理员身份运行Vivado,检查安装目录写权限 |
| Vivado 2020.2 启动极慢或黑屏 | 显卡驱动兼容性问题或缓存文件损坏 | 更新显卡驱动,删除用户目录下.Xilinx缓存,重新启动 |
License绑定的MAC地址问题值得一提。有些笔记本的网卡MAC地址会随网络环境变化,这种情况下License验证偶发失败。我建议申请License时勾选“All host IDs”,生成一个绑定所有网卡MAC和硬盘序列号的License,这样换网络环境基本不受影响。
4.4 安装后Cable Drivers不生效怎么办
如果要使用JTAG下载器,比如Xilinx官方或第三方的下载器,插上开发板后发现“Device Manager”里出现带黄色感叹号的设备,通常是Cable Drivers没有正确安装或驱动签名问题。
2020.2的Cable Drivers安装在Vivado安装目录下的data/xicom/cable_drivers/nt64目录中。右键点击感叹号设备,选择“更新驱动程序”,手动指向该目录,系统会安装驱动。Windows 10和Windows 11的系统驱动签名验证较严,如果驱动安装失败,需要在高级启动选项里禁用驱动签名强制,之后再安装。安装完成后记得恢复签名验证,避免系统其他问题。
5. 一些关于安装体验和后续使用的个人建议
Vivado 2020.2这个版本我前前后后至少装了七八次,不同机器、不同系统版本、不同目标盘都试过。现在我形成了几个固定习惯,每次装完都能少踩不少坑。
第一,安装之前先把Windows更新和系统驱动全部打完,尤其是显卡驱动。Vivado的GUI是基于Qt的,和显卡驱动兼容性不佳时会频繁遇到界面卡死、鼠标拖动延迟的问题。显卡驱动更新之后,这些情况会明显减少。
第二,在安装向导的组件选择页,不要急着全选。我现在一般只勾选当前项目需要的器件系列和Education IPs,其他一律不选。这样安装时间能缩短将近一半,硬盘空间也省下一大截。以后需要新器件时,再运行安装器添加即可,不需要重装整个Vivado。
第三,License文件保存路径越简单越好。我的习惯是建一个D:\Xilinx\licenses目录,把License文件固定放在这个目录下,然后在环境变量里设置XILINXD_LICENSE_FILE指向该文件。这样做的好处是,不管你重装Vivado还是升级版本,License都能被自动识别,不用每次手动加载。
第四,如果你打算探索嵌入式SoC开发,建议直接安装Vitis。Vivado 2020.2自带的Vitis版本是Vitis 2020.2,这个版本和Vivado的配合比较默契,可以在一个环境下完成FPGA逻辑和嵌入式软件开发。虽然Vitis的安装时间和体积都不小,但比起之后再单独安装Vitis去匹配版本,省下的时间更多。
装完Vivado只是入门的第一步,真正决定开发效率的是工程管理和脚本使用。2020.2对Tcl脚本的支持很完善,我建议从第一次建工程开始就习惯用Tcl命令创建工程,把整个流程自动化。后续无论是换机器还是交接项目,只需要一个脚本就能恢复环境,不会再被图形界面的点击拖慢速度。
如果在安装过程中还有我没提到的异常情况,优先去Xilinx官方论坛搜索,尤其是2020.2相关的帖子,很多问题官方已经给出过针对性回复。也可以查看安装目录下\Vivado\2020.2\data\logs中的日志,启动失败时日志里通常会有更具体的错误描述。
祝大家的2020.2都能一次装完,少碰到几个报错弹窗。