Vivado 2020.2 安装全流程:Vitis环境搭建与避坑指南
1. 为什么2020.2这个版本值得单独写一篇安装教程vivado、vitis 这两个名字在 FPGA 圈子里基本绕不开而 2020.2 又是很多人装机时反复被推荐的一个版本。我这些年帮同事、学弟装过的机器没有三十台也有二十台从 2018.3 一路到最新的季度版本都摸过一遍结论很直接2019 之后的所有版本安装骨架是同一套流程你把这套流程吃透2020.2、2021.2、2022.2 甚至更新的版本闭着眼睛都能装下来。所以这篇教程虽然标题挂的是 2020.2但它的适用范围其实是 2019 之后的整个系列你完全可以把它当成一份通用装机手册来用。先说清楚这篇东西写给谁看。如果你是完全没接触过 Xilinx 工具链的新手照着做能从零把环境跑起来如果你之前装过 2018 及更早的版本会发现 2019 之后安装器做了比较大的整合老的ISE/Vivado 分开下的经验不再适用这篇能帮你把认知更新过来如果你已经在用 2020.2但一直被 License、驱动、板子识别不了这些问题反复折磨第四、六两章大概率能直接解决你的问题。我不会只给你点下一步的流水账每一个勾选项背后的逻辑我都会讲因为装机这件事最怕的就是照着做能跑、出了问题完全不知道从哪查。提醒安装包体积极大、耗时极长建议在动手前把所有准备工作一次性做完中途返工的成本远高于提前规划。1.1 版本钉子户现象为什么大家总在装 2020.2一个挺有意思的现象是明明有新版本很多人还是守着 2020.2 不放。原因不复杂。第一这个版本的稳定性经过了大规模工程验证很多公司的老项目就是用它签核的工程文件在不同大版本之间迁移经常会遇到 IP 核重新生成、约束语法变化之类的麻烦能不动就不动。第二2020.2 是一个比较完整的整合节点Vivado、Vitis、Vitis HLS、ModelSim 这些组件在同一套安装器里全部覆盖不需要你另外去找各种独立包。第三网上大量的教程、开源工程、教学视频都是基于这个版本录制的遇到问题时能搜到的参考资料最多这对新手来说非常重要。从 2019.1 开始官方把安装器做成了统一入口Xilinx Unified Installer这个名字就是从那时候开始的。它一次性把 Vivado、Vitis、SDK、ModelSim、文档、器件库全部打包安装时你勾什么它就装什么。这个变化带来的直接后果是安装包从原来的十几 GB 变成了三十 GB 起步完整装完轻松超过 60 GB。很多第一次装的人硬盘直接爆掉装到一半空间不足还得删掉重来。所以后面我会专门拿一节讲磁盘规划这不是啰嗦是真的有太多人栽在这里。1.2 动手之前先算三笔账磁盘、内存、系统第一笔账是磁盘。我按 2020.2 的实际占用给个参考安装包本体单文件 tar.gz 或 zip大概 30 GB 左右解压之后会膨胀到 35~40 GB安装到硬盘上又是另外一份只装 Vivado 大约 40 GB把 Vitis 一起装上大概 60~70 GB再加上你后续建工程产生的缓存和综合实现产物一个稍微像样的工程目录动辄几 GB。所以我的建议是给工具链至少留 120 GB给工程和缓存另留 100 GB而且最好是固态盘。机械盘能装但综合一个中等规模的工程你会等到怀疑人生。第二笔账是内存和 CPU。官方给的底线是 8 GB 内存但说实话 8 GB 只能跑跑小工程稍微大一点的综合就会频繁爆内存或者卡死。我个人的经验线是 16 GB 起步32 GB 舒服跑 Vitis 做嵌入式开发或者上大器件的话 64 GB 不算多。CPU 方面多核在综合和实现阶段收益明显但不是决定性因素单核性能依然重要。第三笔账是系统版本。2020.2 官方支持的 Windows 是 Win10 64 位Linux 侧是 RHEL 7/8、Ubuntu 16.04/18.04 这一类。你在 Win11 上装通常也能跑我实测过没遇到什么致命问题但官方没背书出问题不好甩锅。反倒是 Linux 环境要特别注意Ubuntu 20.04 之后的版本装 2020.2 经常缺库需要手动补一些兼容包这个后面会讲。1.3 组件清单先想清楚别装完才发现少东西装机最痛苦的不是装不上而是装完了发现少装了一个器件库或者少装了 Vitis回头补装又是几个小时。所以我建议你在点开安装器之前先拿张纸把需要的组件列出来。判断标准很简单你要跑的芯片型号决定器件库你要做的开发类型决定工具集。如果你的板子是 Zynq 或者 Zynq UltraScale那 Vitis 基本是必装的因为裸机程序、Linux 应用的编译都要靠它如果你只做纯逻辑设计Vivado 加对应器件库就够如果你还要跑仿真那 ModelSim 或者 Vivado 自带的仿真器要留一个。把这些想清楚能省掉一次完整的重装。我给你整理了一张对照表照着勾基本不会出错。开发方向必装组件可选组件典型磁盘占用纯逻辑设计Artix/Kintex 等Vivado 对应器件系列Vivado Simulator、文档35~45 GBZynq 软硬协同Vivado Vitis 器件库Vitis HLS、ModelSim60~75 GB高速接口/SerDes 验证Vivado 器件库 示例设计IBERT、文档45~55 GB教学/学习用途Vivado 常用器件系列ModelSim、Vitis40~60 GB2. 下载环节从官方入口到安装包落地下载这一步看起来最没技术含量但实际上它是整个流程里最容易出岔子的环节页面找不到、文件下不完整、压缩包损坏、解压报错我全都遇到过。这一章把这几个坑按顺序讲一遍。2.1 找到下载页面的思路比记住具体网址有用官方的下载入口这些年改过好几版你记住具体链接过两年就失效了但记住查找逻辑永远不会过时。基本路径是这样的进到官网之后找Support或者Downloads区域然后进到Vivado或者统一安装器的分类页面再往下会看到一个版本归档或者历史版本的入口。当前最新版本总是挂在显眼位置而 2020.2 这类历史版本都藏在归档区里很多人翻两下找不到就以为下架了其实是没点到归档页。归档页面的结构是大版本号分栏的比如 2020 那一栏下面会列出 2020.1、2020.2、2020.2.x 的更新包。你要点的是 2020.2 那一行的完整安装器注意别点到 Update 补丁包上那个只有几十 MB是给已经装好基础版本的人打补丁用的新手拿它没法从零装。还有一种情况是公司或者学校内部有镜像那下载速度会快很多具体怎么找内部镜像就不在这里展开了问问你们实验室的师兄或者 IT 部门通常都有。下载前建议确认一下本地网络环境的稳定性30 GB 的文件如果中途断掉用浏览器自带的下载器很可能要重头再来能断点续传的工具会省心很多。2.2 单文件包、分卷包和自解压包选哪个官方一般会提供两种形态一种是单个大文件Windows 下通常是.zip或者.exe的自解压包Linux 下是.tar.gz另一种是拆成若干卷的分包。两者的区别只在于下载和校验的便利性内容完全一样。我的选择建议是网络稳定的情况下一律选单文件包省事校验也简单一个哈希值对完就行。分卷包适合什么场景适合网络不稳定、必须断点续传而且每次只能拉一部分的情况或者在不太靠谱的公共网络里分批下载。分卷包有个坑必须全部下齐才能解压少一卷就前功尽弃而且解压时要保证所有卷在同一目录下文件名一个字符都不能改。我见过有人把(1)、(2)这种后缀手动改掉结果解压器认不出来直接报错。Windows 下那个.exe自解压包要注意它只是自解压不是安装程序双击之后它会先把内容解压到一个目录然后你在那个目录里再找真正的安装入口。Linux 下的.tar.gz直接用tar -xzf解开就行解压耗时同样不短三十多 GB 的内容在机械盘上解开可能要半小时以上耐心等别中途取消。2.3 校验和解压这一步偷懒后面全是麻烦下载完之后有一件事必须做就是校验文件完整性。官网上通常会给出每个安装包的哈希值你用系统自带或者第三方工具算一下对比一致就说明文件没问题。这一步花你两分钟能挡掉后面几小时的各种诡异报错。为什么这么说因为安装包损坏导致的问题非常隐蔽。它不会告诉你文件坏了而是安装到某个组件时突然失败、或者解压到 80% 报 CRC 错误、或者装完了某个器件库莫名其妙是空的。你如果没做过校验会一直怀疑是自己的系统环境有问题白白浪费时间。注意解压的目录名里不要出现中文、空格和特殊字符用纯英文短路径比如D:\Xilinx_Install这能避免相当一类和路径解析相关的奇怪错误。解压之后你会看到一个叫xsetup或者xsetup.exe的文件这就是安装器的入口。顺便说一句解压出来的整个目录先别急着删如果你要装完就清理也至少等确认环境和 License 都跑通了再说因为安装过程中它会反复读取这些文件。3. 安装全过程从 xsetup 到组件勾选准备工作做完接下来是正式的安装。这一章我按实际操作顺序讲每个界面上的关键选项都会点出来并且解释为什么要这么选。3.1 启动安装器与首屏的几处关键选择Windows 下直接双击xsetup.exe如果系统弹权限提示就允许Linux 下进到解压目录先给执行权限再运行cd /home/yourname/Xilinx_Install chmod x xsetup ./xsetup如果是 Linux 环境安装器需要一个图形界面纯命令行服务器上开起来会比较麻烦通常的做法是在本地装个带桌面的发行版或者用带转发的图形会话这块具体操作这里不展开。启动之后通常会先过几个欢迎页面。有一个页面会问你选择哪个版本的产品注意这里如果同时装了别的版本它会列出来让你挑别选错。接下来是许可协议的勾选这个没有捷径勾同意才能继续。还有一个容易被忽略的是安装器的用户类型选择一般选最常见的那个即可这个选项主要影响默认勾选哪些组件。有一个细节值得说安装器启动时会在你的用户目录下写一个.Xilinx目录用来放安装日志、配置和后续的 License。这个目录的位置很重要后面讲 License 和多版本共存时还会用到。如果你的用户名里有中文某些版本上可能会出问题这也是我一直建议用纯英文用户名的原因。3.2 组件勾选策略装什么、砍什么这是整个安装过程中最需要动脑子的一步。安装器会给你一棵树里面是各种工具、器件系列、文档、示例。全部勾上是最省事的做法但代价是磁盘和时间都会翻倍。我的原则是只勾你现在和可预见的未来会用到的其余全部砍掉以后需要补装随时可以再跑一次安装器添加。先说要勾的。Vivado 主体必须勾这是核心。器件库按你的板子来如果你手头是一块 Artix-7 的开发板那就只勾 7 系列不要勾 UltraScale 和 Versal那几个系列加起来能吃掉几十 GB。如果你不确定将来会不会用到大器件我建议至少勾上 7 系列和 UltraScale这两大类覆盖面最广Zynq 和 Zynq UltraScale 也一并勾上因为很多教学板子用的就是这两类。Versal 这类新器件除非你明确要用否则先放掉。再说 Vitis。只要你做的是 Zynq 相关开发、或者需要跑 C/C 的软核应用Vitis 就必须勾它承担了原来 SDK 的角色。但要注意 Vitis 和 Vivado 的版本必须严格一致2020.2 的 Vivado 配 2020.2 的 Vitis混搭会出各种奇怪问题。Vitis 里面还有个 Vitis HLS做高层次综合的可以勾上。ModelSim 这一项如果你平时用 Vivado 自带的仿真器就能满足需求可以先不装省下十几 GB。但如果你所在的团队习惯用 ModelSim、或者你的工程里有依赖它的脚本那就得装上并且装完还要单独配一下 License 和库映射这是另一篇文章的体量了。文档和示例设计我的建议是第一遍装的时候勾上尤其是示例设计后面验证环境时非常有用。等你把环境跑顺了以后再装新版本时就可以砍掉。最后强调一个我踩过的坑器件库一旦装少了后面新建工程时选不到目标芯片你只能重新跑安装器补装补装虽然不用从头开始但也要重新走一遍解压和校验至少要花一两个小时。所以宁可多勾一两个系列也别省这个。3.3 安装路径与磁盘规划安装路径这一项Windows 下默认会装在C:\Xilinx附近。我的建议是不要装在系统盘因为系统盘本来就紧张工具链又是几十 GB 的大户。换到一个空间充足的盘比如D:\Xilinx。但换路径有两点要注意路径里不要有中文和空格长度也不要太深D:\Xilinx\Vivado\2020.2这种层级就挺好。Linux 下默认装在家目录下的Xilinx里同样建议单独挂一个数据盘或者至少保证家目录所在分区空间充足。因为安装过程中会同时存在解压出来的安装源和实际安装的目标目录两份数据峰值占用可能是最终安装体积的两倍很多人就是在这个瞬间磁盘满了。装到一半磁盘满是最难受的情况因为清理之后重新开始安装器不一定能干净地回滚有可能留下半拉子目录导致下次安装报冲突。我一般的做法是先在盘上建一个专门的目录格式化的时候就把容量规划好别和其他数据混在一起。比如划个 200 GB 的分区专门给 EDA 工具链从此不再担心空间问题。3.4 安装过程的耗时预期与监控勾完组件、选完路径点下安装按钮之后剩下的就是等。这一步的耗时要给个实际预期在固态盘上40 GB 左右的安装量大概 40 分钟到 1.5 小时在机械盘上翻倍甚至更多如果同时装 Vitis整个过程可能需要两到四个小时。我见过有人以为卡死了中途强制结束结果装了一半只能全删重来。安装过程中安装器会显示进度条和当前正在处理的组件你可以留意一下它卡在哪一步。如果长时间停在一个组件上不动先别急大组件比如某个器件系列的库本来就要处理很久。判断是否真的卡死可以看任务管理器里安装进程的磁盘读写和 CPU 占用有活动就说明在干活。提醒安装期间尽量不要让机器睡眠或者休眠Windows 的电源计划记得临时改成从不睡眠否则中途挂起再恢复有一定概率导致安装失败。另外建议关掉杀毒软件的实时防护或者至少把安装目录加入白名单。安装器需要写入大量文件并注册一些驱动组件实时扫描会明显拖慢速度偶尔还会误删或者锁定文件导致安装失败。装完之后再开回来就行。4. License 与驱动装完才是真正的开始很多人以为安装进度条走完就万事大吉了实际上真正的坑从这里才开始。这一章把 License 和硬件驱动这两件事讲透。4.1 License 的获取方式和加载位置License 这件事先明确一个概念Vivado 的不同功能、不同器件、不同工具可能需要不同的 License。有些器件和功能在免费的 License 范围内可以直接用有些则需要额外的授权。正规的获取途径主要有几类官方提供的免费授权覆盖不少常见的入门和中端器件、学校或公司通过教育/商业计划获得的授权、以及各种官方组织的评估授权。具体走哪条路取决于你的身份和用途这里不展开细节去官方渠道按流程申请就行。拿到 License 文件之后加载方式是统一的打开 License 管理工具安装目录下的xlcm或者从开始菜单入口进选择加载已有的 License 文件指向你拿到的文件即可。加载成功后工具里会列出当前生效的授权项和有效期这一步一定要确认列表里有你需要的器件和功能否则后面综合到一半才发现权限不够会非常被动。关于 License 有几个实际经验值得说。第一License 文件不要放在中文路径下也不要放在网络盘或者移动盘上放在本地硬盘的固定位置。第二如果你装了多个版本的工具License 通常是各版本共用的但管理工具是各自独立的每个版本都要分别加载一次。第三如果管理工具打不开常见原因是它依赖的环境变量被别的程序改掉了或者端口被占用可以尝试重启、或者用命令行方式加载。还有一点别把希望寄托在那些来路不明的授权文件上。除了合规风险之外这类文件往往和不匹配的版本绑定用一段时间就失效还会带一些意料之外的麻烦。老老实实按正规流程申请虽然慢一点但省心。4.2 下载器驱动板子识别不了怎么办这是新手最常遇到的问题没有之一装完工具、接上板子结果工具里根本看不到设备。九成以上的原因是下载器下载线的驱动没装好。驱动文件就在安装目录里Windows 下一般在类似Xilinx\Vivado\2020.2\data\xicom\cable_drivers\nt64这样的路径下里面会有一个安装脚本右键以管理员身份运行它等它跑完通常会提示安装成功。Linux 下有对应的install_drivers脚本需要 root 权限执行cd /tools/Xilinx/Vivado/2020.2/data/xicom/cable_drivers/lin64/install_script/install_drivers sudo ./install_drivers装完驱动之后还有几步排查建议按顺序来换 USB 口优先用主板后置的 USB 口别用前面板或者扩展坞上的口换数据线很多劣质线只能供电不能传数据这个坑非常常见打开设备管理器看有没有设备出现如果出现了一个带感叹号的未知设备说明驱动没匹配上手动指定驱动目录重新安装检查板子是否上电以及下载器上的指示灯状态确认 Cable 型号在驱动支持列表里有些特别老的下载器在新版本工具里支持得不好。顺便说一句如果设备管理器里能看到设备但 Vivado 里连不上可以试试在工具里手动打开硬件管理器选择Open Target下面的Auto Connect多试几次还不行的话关掉工具、拔插一次、重开工具这个土办法出奇地管用。4.3 多版本共存别让环境变量打架做这行的很难只装一个版本新老工程混着跑是常态。多版本共存的关键在于环境隔离核心就两件事环境变量和启动方式。Windows 下安装器会往系统变量里写一些路径多个版本装完之后这些变量可能指向其中一个版本导致你双击另一个版本的图标时启动的其实是错的。我的做法是不依赖系统环境变量而是用各个版本自己的启动脚本或者快捷方式需要哪个版本就开哪个。如果你确实需要命令行里调用那就在项目目录下写个批处理临时设置好这个版本需要的变量再启动。Linux 下就更常见了很多人的家目录里同时躺着 2019.2、2020.2、2022.2 三个版本。做法类似在.bashrc里不要全局设置工具路径而是写几个别名或者小函数比如需要 2020.2 的时候执行一个专门切环境的命令。这样彻底避免版本串味。还有一点工程文件尽量不要跨大版本来回打开。用 2020.2 建的工程拿到 2022.2 里打开工具会提示升级升级之后就回不去了而且可能引入一些意料之外的变化。稳妥的做法是同一个工程固定在同一个版本上需要升级时先备份整个目录再动手。5. 装完之后的自检用最小工程跑通全链路工具装好、License 加载好、驱动也装好了是不是就完事了还差一步跑一个最小工程验证整条链路。这一步花你二十分钟能提前暴露九成以上的环境问题。5.1 环境自检清单在动手建工程之前先把这几项过一遍都是能在一两分钟内确认的检查项怎么查不通过时的表现安装完整性看安装目录下有无各组件子目录检查是否有xsetup留下的日志报错启动工具报缺少组件、器件列表为空License 状态打开授权管理工具看生效项与有效期综合阶段报权限不足、部分功能灰掉器件库新建工程时能选到目标芯片芯片列表里找不到你的型号硬件驱动设备管理器里能看到下载器设备无感叹号硬件管理器里看不到设备环境变量命令行里能正确调起对应版本的可执行文件调用到错误的版本或者找不到命令磁盘空间工程所在盘至少留几十 GB 余量综合中途报写入失败这张表建议你收藏一下以后换机器或者装新版本时照着走一遍就行。5.2 用一个点亮 LED 的工程验证全链路验证用的工程越简单越好我一般用一个最小的计数器加个引脚输出跑完综合、实现、生成比特流、下载到板子上看现象。流程大致是这样新建工程一路下一步器件型号选你手上板子的确切型号这一步选错后面全白搭添加一个顶层模块写一个简单的分频计数器把最高位接到一个 LED 引脚上添加约束文件把那个引脚绑定到板子上的实际 LED 管脚电平标准按板子的原理图填跑综合看有没有严重警告和错误跑实现再看时序报告有没有不满足的项生成比特流打开硬件管理器连接设备下载比特流看 LED 有没有按预期闪烁。这里面每一步都可能出问题而且每一步的问题都指向不同的环境环节。比如综合能过但实现报错通常和约束或者器件选择有关前面都过但下载不了那基本就是驱动或者连接的问题。把这条链路跑通说明你的环境是健康的后面做真正的项目才有基础。顺便说一下如果你的板子是 Zynq还需要验证 Vitis 侧能不能正常建平台工程、编译、下载。流程是先用 Vivado 导出硬件描述文件再在 Vitis 里基于它建平台和应用工程。这一步能跑通说明软硬协同的环境也齐了。提示第一次下载比特流时最好把板子的配置文件比如 Flash 里的固件先备份一下避免误操作把原来的东西覆盖掉。虽然大部分开发板都能重新烧回来但备份一下总没错。6. 常见问题速查表与踩坑记录这一章是我这些年积累的问题清单按照从安装到运行的顺序整理遇到问题可以先在这里找找。6.1 安装阶段的问题安装到一半失败能不能接着装多数情况下不能安装器不是幂等的失败了最稳妥的做法是把安装目录清空重来。所以前面说的磁盘预留、关闭杀毒、别让机器睡眠都是为了尽量避免走到这一步。解压报 CRC 错误或者压缩包打不开。百分之百是文件没下完整回去重新下载并做哈希校验别在这上面浪费时间找系统原因。分卷包的话检查是不是所有卷都下齐了。安装程序双击没反应。Windows 下常见原因是权限不足右键以管理员身份运行也有可能是杀毒软件拦住了看有没有拦截提示。Linux 下常见原因是没给执行权限或者缺少图形库。提示用户目录里有中文路径。这是很多老版本的经典问题解决方案是新建一个纯英文的本地用户用它来装。改用户名不一定有效因为有些注册表项已经写死了。安装目录里出现乱码文件名。大概率是解压过程出了问题或者你的解压工具用了错误的编码换一个靠谱的解压工具重来。6.2 运行和硬件连接阶段的问题板子识别不了。前面 4.2 那节的排查顺序走一遍重点是驱动、线材、USB 口这三样。我统计过自己遇到的问题驱动没装占一半线材问题占三成剩下两成是 USB 口或者板子供电的问题。生成比特流失败。这个问题的原因很多先看日志里的第一条错误不要看最后一条。常见的有约束引脚冲突、时钟约束缺失、IP 核没生成完整、License 权限不足。我第一次遇到时盯着日志末尾看了半天其实关键信息在开头。仿真速度特别慢。仿真慢通常和几个因素有关测试平台里的时钟频率设得太高导致事件太多、代码里有大量不可综合的结构、仿真器设置为追求精度牺牲了速度。可以尝试降低仿真时长、减少不必要的事件、或者换用编译型仿真器。License 管理工具打不开。先排除端口占用和环境变量问题重启通常能解决大半。还不行就试试用命令行方式启动看报什么错。工具启动特别慢。首次启动会做很多初始化工作慢是正常的之后就快了。如果一直很慢检查磁盘是不是机械盘、内存是不是不够、有没有别的程序在抢资源。6.3 几条只有踩过才知道的细节第一条安装日志要留着。安装器会在用户目录下写日志出问题的时候这些日志是最直接的线索。很多人清理磁盘时顺手删了等出问题再想找就没了。第二条工程目录和工具目录分开放。有些人图省事把工程建在工具安装目录旁边结果升级工具或者重装时把工程一起带走了。工程目录单独放定期备份这是基本纪律。第三条约束文件和器件型号是新手最大的两个坑。我见过太多人综合报错查了半天最后发现是管脚约束写错了或者器件型号选的和板子对不上。这两样东西在动手写代码之前就要确认好。第四条别小看文档。安装目录里自带的文档是离线可用的而且版本对得上比在网上搜到的零散答案靠谱得多。遇到工具行为不符合预期时先在文档里搜关键词往往几分钟就能找到答案。第五条给自己留一个已知能跑的最小工程。不管环境怎么折腾保留一个能跑通的最小工程做参照出问题时用它来对比能快速定位是环境问题还是工程问题。这个习惯让我省下了无数个小时的排查时间。我在实际装机中最大的体会是这套工具链真正的难点从来不在安装两个字上而在装完之后的环境配套上。下载慢一点、安装久一点都还能忍真正让人抓狂的是 License 没加载、板子连不上、器件库缺了几个系列这类问题它们都不报明确的错只是让你在后面的某一步莫名其妙地失败。把这篇里的检查清单和排查顺序用起来这些坑基本都能提前避开。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →