ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Vivado安装踩坑指南:从版本选择到License配置一次搞定

Vivado安装踩坑指南:从版本选择到License配置一次搞定 新手搞FPGA第一道坎往往不是写代码而是把Vivado这尊大佛请进电脑。这个工具链安装包动辄几十上百GB版本跨度大、系统依赖多、License配置还容易踩坑——我自己装过十几遍Vivado从2018.3到2023.1从Windows到Linux踩过的坑加起来能写满一本小册子。这篇攻略就是把下载、安装、配置、排错这几段路替你趟一遍适合刚入门的学生、需要搭建EDA环境的工程师以及被各种安装报错折磨到崩溃的兄弟们。文章里写的每一步都是我实际跑通过的流程照着做基本能一次装成。1. 装之前先把这3件事想清楚——版本、安装包与系统很多人拿到安装包就闷头下一步等装到一半报错才发现版本选错了或者磁盘空间不够、缺少依赖库最后只能卸载重来。Vivado的安装本质上是个系统工程提前把下面三件事定下来后面就顺了。1.1 版本怎么选不是越新越好先说版本。Vivado的版本号从2018.X到2023.X后面还有2024、2025等更新版本但年份不代表“最新就是最好”。这里有个关键点Vivado版本跟目标芯片型号强绑定。如果你手里的开发板是7系列的比如Artix-7、Kintex-7那么2019.1之后的任何版本都能完美支持但如果你用的是Versal ACAP这种新架构就必须用2020.2以上的版本。我个人的建议是上大学课程、做毕设、跑基础实验直接用2020.2。这个版本是公认最稳定的版本之一网上教程最多遇到问题搜解决方案最容易。它支持到7系列和UltraScale系列对于绝大多数入门级开发板完全够用。公司的实际商用项目看芯片型号选版本。Xilinx官方文档UG973里面有每个版本支持的芯片列表下载前先去查一下。电脑配置不高、只有16GB内存的不要追新版本。Vivado各个版本吃资源差不多但新版会对磁盘空间要求更高。还有一个小技巧Vivado的License是向后兼容的你手里有一个2020.2的License文件装2023.1也一样能用。所以选版本的时候优先考虑芯片支持其次才是License。1.2 从官网下载安装包的正确姿势下载Vivado安装包认准官方渠道。AMD收购Xilinx之后官网域名是https://www.xilinx.com/support/download.html进去之后会看到各个版本的下载列表。很多新人第一次下载会犯一个错误直接点“Full Installation”下载那个几十GB的大包。其实Vivado的下载分两种形式下载方式文件大小适用场景Vivado HLx 全量安装包.tar.gz/.exe约30-100GB需要离线安装、内网部署WebPACK/单板定制安装器.exe约100-200MB在线安装边下边装下载前需要注册AMD账号并登录这里有个坑国内网络环境下载官网文件经常很慢甚至断流。我的经验是不要在浏览器里直接点链接下载而是用迅雷这类支持断点续传的工具复制下载链接后手动添加任务速度能快不少。另外下载页面里还区分了“Vivado HL WebPACK”和“Vivado HLx Editions”。WebPACK是免费版本支持部分中低端芯片HLx是付费版支持全部芯片。学生和开发者可以先下载全量安装包试用安装时再选择具体版本和License模式。这个环节到第3节我会细讲。1.3 系统环境的隐性门槛系统这块最容易翻车。Vivado对Windows和Linux的支持程度不一样我两边都长期使用过说几个重点Windows系统官方支持Windows 10 64位、Windows 11 64位。Windows Server系统不建议装容易出莫名其妙的问题。内存16GB是门槛8GB也能跑但综合大设计会卡到怀疑人生。磁盘剩余空间至少留100GBVivado全量安装完大约占50-70GB加上工程缓存、IP核生成文件100GB是比较稳的。路径必须全英文这个几乎是玄学级别的必踩坑。Windows用户名如果是中文比如“C:\Users\张三”Vivado装上去之后跑仿真、生成IP的时候会出现各种奇怪的路径错误排查半天都找不到原因。解决办法是装之前新建一个英文名的Windows账户或者在虚拟机里装。Linux系统官方支持RedHat、CentOS、Ubuntu等但Ubuntu是用户量最大的相对也最省心。需要先安装一堆依赖库比如libncurses5、libtinfo5、libstdc6、libgl1-mesa-dev等。不同Ubuntu版本依赖名不一样20.04和22.04安装命令就不同可以用apt-file search慢慢找。显示方面如果你用虚拟机装Linux然后跑Vivado一定要装好VMware Tools或者VirtualBox增强功能否则界面卡顿严重打开波形图的时候更是灾难。提示装Vivado之前先把电脑里已安装的杀毒软件、防火墙检查一遍。Vivado安装过程中要写入注册表、安装多个服务组件比如后面要说的WinPcap、Cable Drivers杀毒软件拦截会造成安装不完全后续使用各种灵异报错。2. 安装过程全解从解压到装完环境准备妥当接下来就是正式安装。下面按Windows 10系统为例把安装过程的每一步要点和注意事项过一遍Linux的差异点我会在关键处单独说明。2.1 解压、标准安装流程与安装类型选择如果下载的是全量安装包比如Xilinx_Vivado_SDK_Web_2020.2_1118_1232_Win64.exe直接双击运行。如果下载的是.tar.gz或者.zip分卷压缩包先解压到全英文路径比如D:\xilinx_installer。这里有个细节解压路径也不要带空格和中文后面安装器读路径的时候容易出编码问题。安装器打开之后流程是这样的Welcome界面直接Next。Licensing Agreement界面勾选同意Next。Select Edition to Install界面有Vivado HL WebPACK和Vivado HLx Editions两个选项。前面说过WebPACK是免费的只支持部分器件HLx是付费的但可以先点HLx版本试用。这里我建议直接选Vivado HLx Editions因为本地安装包是全量的你选WebPACK只会安装一小部分文件后面想升级还得重新装特别浪费生命。选HLx不影响License使用你有WebPACK License安装HLx版本之后License管理器会自动识别到可用功能。Vivado HLx Editions Customize界面这一步非常关键。2.2 Vivado HLx三种版本怎么选——装错就是好几十GB在Customize界面的左侧有3个选项Vivado HL WebPACK免费版。Vivado HL Design Edition标准版支持全部器件包含部分IP核。Vivado HL System Edition系统版包含所有IP核和嵌入式开发工具比如SDK现在叫Vitis。右侧是“Design Tools”和“Devices”两个勾选区域。“Design Tools”里默认勾选了Vivado HLx、Vitis、文档等。如果磁盘空间够我建议全部勾选因为Vitis或者旧版的SDK是跑MicroBlaze软核、做Zynq嵌入式开发必须的文档也建议勾选里面包含UG系列手册离线查资料方便。“Devices”区域是芯片型号支持列表按系列组织比如7 Series、UltraScale、UltraScale、Versal等。这里注意默认是全选状态如果不是确定只用某一款芯片最好不要手动取消某些系列的勾选以免后面新建工程时找不到对应的器件型号。但你如果确实只想装某一个系列的芯片支持可以只勾对应那一项这样能省几十GB空间。我个人的选择是把“7 Series”、“UltraScale”、“UltraScale”这三个勾上Versal暂时用不到就不装这能省下大约15GB。选完点击Next进入安装路径设置。2.3 安装路径与磁盘空间注意事项安装路径设置界面有两项Vivado软件安装路径默认是C:\Xilinx建议改成D盘比如D:\Xilinx\Vivado。User Data路径存储工程配置和日志文件默认在%APPDATA%\Xilinx这个可以保持默认。改路径时记住一个原则全部用英文路径层级不要太深。我发现放在C:\Xilinx这种根目录级别的最稳定有些同事喜欢放D:\Software\XilinxInstallation2019这种多层目录实际使用中也OK但一旦遇见工程路径里有中文或者空格它弹出的错误提示根本看不懂。设置好之后安装器会显示总预计下载/解压大小。确认磁盘空间足够后点Next。接下来是安装过程两步分别表示“正在下载”和“正在安装”。如果是全量离线包直接就是安装过程。这个阶段的等待时间取决于硬盘速度和CPU性能机械硬盘装50GB可能要一个半小时NVMe固态一般在20-40分钟。这段时间别闲着可以去把第3节的License准备工作做了。装完后安装器提示重启电脑按照提示重启不要偷懒。Vivado装完会安装一些驱动服务和环境变量重启才能生效。3. License配置装完之后最关键的一步Vivado装完双击桌面图标打开如果没配置License启动后会弹出一个Manage Xilinx License对话框提示找不到有效License。很多人卡在这一步其实配置License就两条路用免费的WebPACK License或者用付费的Node-Locked License。3.1 License文件怎么获取WebPACK License是免费申请的操作路径是官网的Xilinx License Site。所有人包括学生都可以在官网注册账号然后申请一个免费的Vivado ML Standard Edition旧称WebPACKLicense。申请流程要点登录AMD/Xilinx官网账号。进入License Management页面选择“Generate HostID”。这时页面上有两个HostIDEthernet MAC Address和C: Drive Serial Number。Vivado的License绑定的是网卡MAC所以记下MAC地址。填完申请表单提交几秒钟后License文件就会发到你注册邮箱里。下载.lic文件存到一个固定路径比如D:\Xilinx\license.lic。注意官网页面上的MAC地址可能是带冒号的而Vivado里显示的可能不带冒号两者填的时候要对应清楚否则生成的License文件绑定的HostID跟本地对不上装上去会显示“license is not valid for this host”。如果公司买的是付费License厂商会发给你一个Node-Locked的.lic文件同时提供对应许可证的Vivado.lic流程类似。3.2 Vivado License Manager设置方法拿到.lic文件之后在Vivado启动的License对话框里点Load License选择你的License文件然后再点Refresh HostID确认本机HostID和License里绑定的一致。如果没有问题状态会从Invalid变成Valid。如果你是启动后直接进入了Vivado主界面比如用了破解版或者试用License也可以在菜单栏执行Help → Manage License...打开License管理器然后在License File标签页里点Add License File定位到.lic文件添加完成之后主界面右下角的状态栏会显示License: OK。还有第三种方式在License Server标签页里填服务器的端口和IP这种适用于公司网络环境浮动License。格式是27000192.168.1.10这样的写法。配置浮动License时防火墙要放行对应TCP端口否则客户端连不上服务器。很多公司局域网环境把Vivado装好之后License管理器一直显示感叹号八成是防火墙拦了端口先加放行规则再刷新。3.3 License配置失败排查License配置失败是我见过最多的报错之一排查步骤给大家整理一下按顺序执行确认HostID一致在License管理器里点Host ID对比当前显示的和License文件里的HOSTID字段是否一致。不一致就直接报错。检查系统时间License文件有生效时间范围如果系统时间比License发布日期早或者比过期时间晚都会加载失败。这一点在虚拟机里特别常见——虚拟机如果开了时间同步且宿主机时间不准就会触发。路径不能有中文.lic文件所在路径如果有中文Vivado读取时可能报“Cannot open license file”换个纯英文路径。环境变量LM_LICENSE_FILE有时候手动设置了环境变量LM_LICENSE_FILE优先级高于License管理器里的配置。如果加载了一个License后状态没变检查一下系统环境变量里是否有这个变量有的话删除或改成正确路径。日志排查启动Vivado时带着终端或者看安装目录下的日志文件里面会明确提示是“No such feature exists”、“Invalid host”还是“Expired license”对症处理。第4节和第5节的很多报错其实都跟License没配好有关联你如果刚装完就遇到各种“Feature not available”的错先回头查License别去重装软件。4. 验证安装用最小工程跑通全流程License配好之后先别急着导入大工程。我习惯装完新环境第一件事是创建一个最小工程跑一遍“创建工程→添加约束→综合→实现→生成比特流”全流程。这一步能最快发现问题也能顺便验证路径、环境、License是否真的全部正常。4.1 用最小工程检查安装是否OK在Vivado里操作点击Create New Project工程名和路径用英文比如D:\fpga_workspace\led_test。选择RTL项目不勾选“Do not specify source at this time”。器件型号选择你手头开发板对应的型号。新手找不到型号的话可以在开发板配套资料里的“器件选型”里查到比如常见的Artix-7板子是xc7a35tcsg324-1。创建完成后在Design Sources里右键添加一个新的Verilog文件文件名led.v内容写个最简单的分频点亮LED任务module led( input wire clk, input wire rst_n, output reg led_out ); reg [25:0] counter; always (posedge clk or negedge rst_n) begin if (!rst_n) counter 26d0; else counter counter 1b1; end always (posedge clk or negedge rst_n) begin if (!rst_n) led_out 1b0; else if (counter 26d50_000_000) led_out ~led_out; end endmodule点击Run Synthesis综合完成后不关闭对话框直接点Run Implementation最后Generate Bitstream。如果三个步骤全部绿色完成说明Vivado主流程正常。4.2 首次启动的个性化设置工程跑通之后我建议再做两件事会省掉以后很多麻烦第一设置默认工程路径。在Vivado的Settings → General → Default Project Directory里把默认路径改成那个英文的D:\fpga_workspace这样以后每次新建工程不会忘记选择路径。第二打开“Write operating system files in a separate directory”之类的选项。这个看个人习惯但至少要把Settings → Tool Settings → Project里的“Number of jobs”根据自己的CPU核心数调整一下比如8核CPU就把综合和实现的并行任务数调到2或3能明显缩短编译时间。第三把“Enable CRC checking of hardware devices”勾选上。这个选项默认是关闭的但对于调试硬件时的稳定性很重要。具体在Settings → Hardware Server里后面连接开发板的时候能减少不少异常。5. 工程实战里的两个高频“红”Implement Design变红与DRC RTSTAT-2安装配置环节过了真正让人头大的是在跑工程时遇见的报错。根据我平时在FPGA群里看到的求助出现频率最高的两个就是Implement Design 变红和DRC RTSTAT-2。这两个问题经常被误认为是安装问题其实是工程或版本导致的。5.1 Implement Design变红的真实原因很多新手在综合阶段一切正常一到Implementation就报错日志里是一堆红字然后整个人就懵了。实际上Implement Design 变红的原因有好几类最典型的是这几种原因一时序约束文件有问题。比如约束文件里set_false_path的路径写错或者约束文件根本没被约束到对应的net上。Vivado在place阶段发现约束与设计不匹配直接报CRC错误或者input delay错误。原因二资源占用超出芯片容量。综合过了但实现阶段布局布线发现LUT或者BRAM不够会报Place Design Failed。原因三时钟网络冲突。比如两个不同的时钟域用同一个BUFG实现阶段会报错。排查方法很简单看Implementation底部的消息窗口找critical warning或者error级别的条目双击能定位到具体的约束或单元。我遇到最多的是PLL锁相环的输入时钟没约束对导致实现阶段把PLL输出时钟当成了异步时钟然后一堆timing violation。如果日志报的是DRC RTSTAT-2那就是下面这个情况。5.2 DRC RTSTAT-2为什么会出现DRC RTSTAT-2这个报错在网络热词里出现的频率很高相关信息其实对应的是实现阶段的一个规则检查报错信息常见输出类似[DRC RTSTAT-2] The design is being implemented with the device placed/routed by other tool这句话的意思是当前设计检测到器件已经被其他工具比如旧版本Vivado、ISE、或者Vivado的其他版本做了布局布线本工具认为当前实现结果与上一次不一致于是报错。这个报错常见于以下场景在旧版本Vivado里做过布局布线然后换新版本重新打开工程接着跑实现阶段就会触发这个检查。综合之后手动编辑过.XDC约束文件导致逻辑网表和约束不一致。直接复制了别人工程目录里的.runs文件夹重新打开之后没有清干净。解决思路就一个字清。具体做法是在Flow Navigator里点击Reset Implementation。如果还不行右键Implementation→Reset Runs。最稳妥的方法是修改工程里的约束文件后右键Create New Run把旧的run删掉重新生成。如果还是报错在Tcl Console里执行reset_run impl_1然后再launch_runs impl_1 -to_step write_bitstream -jobs 4。还有一种情况是新手从别人那里拷了整个工程目录自己电脑里的Vivado版本和工程生成的版本不一致。这种我建议直接用Tcl Console执行open_project打开Vivado会提示“Project was created with a different version”选择升级即可但升级完一定要从头跑综合直接进实现基本都会触发RTSTAT-2。5.3 其他高频报错速查表除了上面两个我把这些年遇到的高频报错整理成一个表大家可以贴在显示器旁边报错现象可能原因快速解决winpcap installation failedWinPcap驱动安装失败手动单独安装WinPcap或Npcap再重装Cable DriversVivado not responding打开卡死显卡驱动不兼容、许可证校验超时更新显卡驱动关闭杀软ERROR: [Common 17-55] get_property expects at least one objectTcl脚本路径写错检查Tcl命令里的get_property对象是否存在Permission denied在Linux下安装没有写权限用chown把安装目录权限改给当前用户[Place 30-574] Poor placement for routing布局但频繁长线连接增加pblock约束或调整时序约束ERROR: [Synth 8-3916] failed to link综合时IP核未生成重新生成IP核输出产品[Vivado 12-507] cannot write bitstream磁盘空间不足或bit文件路径无效清理磁盘检查输出路径这张表先码住后面开发中基本都能用上。6. 连接硬件的固件生成与WinPcap问题Vivado装好、工程能跑通你可能还缺最后一步把工程烧到板子上。这里有两个高频问题也是很多人在群里反复问的一个是“怎么在连接硬件的情况下生成固化文件”另一个是“WinPcap安装失败怎么搞”。下面细说。6.1 连接硬件时生成固化文件的操作流程先说需求很多人做的是Zynq或者带有Flash的FPGA板子想把程序固化到QSPI Flash或者其他非易失存储里这样板子掉电重启后依然能正常运行。在Vivado里连接硬件生成固化文件的流程是这样的工程正常综合、实现、生成比特流。在Flow Navigator里选择Program and Debug → Hardware Manager。点击Open Target选择Auto ConnectVivado会通过JTAG自动识别连接的板卡。连接成功之后右键设备选择Add Configuration Memory Device。在弹出的窗口里选择你的Flash型号。比如常见的s25fl128sxxxxxx0-spi-x1_x2_x4这些型号如果列表里找不到去板卡原理图里查Flash的具体型号然后在列表里搜厂商型号。配置存储设备后Vivado会提示加载比特流并烧录这个阶段会先下载到FPGA运行。确认功能正常后再勾选Program Configuration Memory Device软件会把bit文件转换成Flash格式并写入。这里有个关键如果是Zynq平台固化不仅仅是烧bit还需要烧FSBLFirst Stage Boot Loader和U-Boot或者用户app。你需要先在Vitis/SDK里生成Boot Image然后通过Program Flash Image功能把BOOT.BIN烧进去。很多同学在生成固化文件时卡住就是因为直接从比特流界面去烧FlashZynq自然起不来。另外连接硬件之前要让开发板的JTAG驱动被识别。在Windows设备管理器里查看是否有Xilinx USB Cable之类的设备如果没有需要手动安装驱动。驱动路径在安装目录下的data/xicom/cable_drivers/nt64里右键inf文件选择安装。6.2 WinPcap安装失败的解决方案说到JTAG驱动就绕不开WinPcap。Vivado安装过程中会尝试安装WinPcap用于虚拟以太网调试和部分JTAG功能但WinPcap在Windows 10/11上的兼容性问题一直很多。报错一般是WinPcap installation failed. Please install WinPcap manually.或者干脆在安装最后的 “Installing Cable Drivers” 阶段卡住。解决方案是这样的先去WinPcap官网下载winpcap-nmap-4.12.exe或者用NpcapNpcap是WinPcap的现代替代品。Npcap在安装时要注意勾选“WinPcap API兼容模式”否则Vivado不识别。手动安装好WinPcap或Npcap。打开Vivado安装目录下的data\xicom\cable_drivers\nt64\找到install_nt64.cmd或dpinst_x64.exe右键管理员运行。重新启动Vivado连接开发板。如果上面这步成功设备管理器里就能看到Xilinx Virtual Cable或者Xilinx USB Cable。还有一个备选方案是不使用Vivado自带的Hardware Manager而是用xsctXilinx Software Command-Line Tool配合手动驱动来连接调试。这个方法适合命令行熟悉的朋友但不如上面Windows GUI方式省心。注意凡是提示Cable driver is not installed、ERROR: [Labtools 27-2269] No devices detected90%都是驱动层的问题先查设备管理器别一上来就认为是开发板坏了。把USB线换一个接口直连主板后置USB别通过Hub也经常能解决识别不了的问题。7. 几个来自实践的额外建议最后分享几条平时很少有人提、但确实能让你用Vivado过程舒服很多的经验。第一别把Vivado装在系统盘。Vivado产生的临时文件非常大装在C盘用一段时间就会发现系统盘爆红电脑开始卡。装D盘然后把TEMP和TMP环境变量也指到非系统盘能有效减少C盘压力。第二善用Tcl脚本记录操作。Vivado的每一次GUI操作其实都会在Tcl Console里显示对应命令。新手学的时候不用刻意去记命令但养成看Tcl Console的习惯慢慢地你会发现自己能脱离GUI操作大部分流程了。遇到问题需要重跑综合时直接在Tcl Console里输入reset_run synth_1 launch_runs synth_1 -jobs 4 wait_on_run synth_1比在GUI里点半天快得多。第三工程目录建议用Git管理但别把整个.runs和.cache提交进去。这些目录动辄几十GB而且内容不稳定每次综合结果都不一样。做一个.gitignore只提交源码和约束文件最多留一份.xpr工程文件。这样换电脑或者团队协作的时候大家只需要拉下代码在自己的Vivado里重新跑一遍综合实现即可。第四如果装的是2020.2以上版本Windows下打开Vivado时建议右键“以管理员身份运行”。这不是必须的但不以管理员运行时某些路径下的文件写入权限不足会出现打开IP Catalog卡死、Archive工程失败等奇怪问题。我遇到过几次换成管理员运行之后就正常了。第五记好官网文档地址。Vivado的官方文档UG973是安装和版本选择指南UG835是Tcl命令参考UG892是设计流程指南。装完Vivado之后安装目录下的docs文件夹里就有本地HTML文档离线也能查。遇到报错先打开UG835查命令格式大部分情况比百度靠谱。Vivado安装这件事看着是个体力活其实里面藏了不少细节。版本匹配、License绑定、驱动兼容、路径规范每一环都有坑。按照这篇文章的顺序来大概率不用走回头路。我自己从最早装机装了两天到现在十分钟装完一个全流程环境靠的就是把上面这些点变成了一套固定的操作习惯。如果你在安装过程中遇到这篇文章没提到的问题建议先去看安装目录下的vivado.log或者xsetup.log日志文件会告诉你真实原因的很多时候比在论坛里求解更快。
返回列表