多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

Vitis安装避坑指南:版本对齐、License与驱动问题一次搞定

Vitis安装避坑指南:版本对齐、License与驱动问题一次搞定 如果把FPGA/SoC开发比作装修一套房子Vivado是砸墙布线那部分——综合、布局布线、生成比特流全靠它Vitis则是软装和智能家居的部分——在ARM核上写C/C程序、调试嵌入式软件、做异构计算都在这里完成。真正动手装Vitis的时候我才发现它跟Vivado压根就是一个安装包、一套环境体系版本没对齐、磁盘留不够、驱动没装上任何一个环节出问题后面就会连续踩坑打开界面闪退、下载调试不识别芯片、License Manager点了没反应。这篇文章把我这些年帮同事和自己处理过的Vitis安装问题从头到尾梳理了一遍。不管是刚从Vivado过渡到嵌入式开发的新手还是已经装了好几次都没成功的“折腾党”看完应该都能找到对应的解法。我的目标是让你照着操作一次装好而不是像我第一次那样装了三天、重装了四遍。1. 装之前必须想清楚的事版本对齐、磁盘规划与选型1.1 Vitis和Vivado是同一个安装包版本必须严格对齐这是很多人第一次踩的坑。我见过不少从Vivado过渡过来的朋友以为Vitis是个独立IDE直接去官网下载一个最新版Vitis装好之后拿旧版Vivado导出的硬件规格文件.xsa去创建平台结果弹出一大堆版本不匹配的报错。实际上从2019.2版本开始Vitis就彻底集成进了Vivado安装包安装程序里只有一个主入口Vitis、Vivado、Vitis HLS全都是里面的一组组件。版本对齐是硬规矩。你下载的安装包是2022.2那么里面Vivado和Vitis就都是2022.2。从Vivado导出的.xsa文件拿到Vitis里使用时最好来自同一个小版本。虽然2022.2和2023.1这种跨大版本也不是百分之百不能被读取但我在实际测试中遇到过几种情况有的工程能打开但驱动库调用错误有的直接提示需要重新生成硬件规格还有的能编译能下载但运行时外设映射错位程序跑起来行为完全不对。所以别再纠结“稍微混一下行不行”老老实实版本对齐才是省时间的路子。1.2 系统要求与磁盘规划默认路径才是最安全的路径先看操作系统。官方支持列表里Windows是10/11 64位专业版Ubuntu是20.04/22.04 LTS这些长期支持版本。家庭版Windows不是不能用我自己就在家庭版环境装过2020.2日常使用没问题但偶尔驱动签名策略会在安装USB Cable驱动时搞出一点幺蛾子。Linux用户如果用Ubuntu需要额外装一堆依赖库比如libncurses5、libtinfo5这些老版本Vitis尤其明显。磁盘空间是安装失败的重灾区。完整安装包含Vitis、Vivado、Vitis HLS和所有器件系列实际占用能到220GB以上。就算你只要Vivado基础加Vitis嵌入式开发也至少准备120GB。这里有个很多人没注意的细节即使你选择把工具装到D盘安装程序依然会在C盘写入大量公共文件比如C:\Xilinx下的公共数据、%APPDATA%里的配置还有解压临时文件。我建议C盘预留至少30GB否则安装过程中报“磁盘空间不足”或者解压中断你会非常被动。路径问题也值得单独说。官方默认路径是C:\Xilinx这个默认值是有讲究的。整个工具链里有大量Tcl脚本、Makefile和批处理文件它们对路径中的空格、中文、特殊字符非常敏感。我见过同事把Vitis装到“D:\开发工具\Vitis 2023.2”结果一跑综合脚本就报“找不到路径”折腾半天最后只能卸载重装到默认目录。如果你真的想换盘也建议用纯英文、无空格的简单路径比如D:\Xilinx。1.3 版本选择新用户别追新选版本这件事我的建议一直是新用户优先选LTS版本。2022.2、2023.1、2023.2这几个版本社区资料最多遇到问题基本都能搜到答案。2024、2025的新版本不是不能用但一些刚发布的小版本在license兼容、器件库完整度上可能还在磨合期没有必要为了几个新特性去当小白鼠。下载方式上也分两种Web Installer在线安装先下载一个小启动器然后运行时边下载边安装。适合网络质量极好的场景否则容易卡在某个组件反复重试。离线安装包Offline Installer完整安装镜像一次性下载本地解压后安装。强烈推荐这种方式尤其是公司网络环境下载一次后可以反复用给多台机器装也不用重新拉几GB文件。2. 下载、解压到安装向导跑完完整操作链路2.1 下载环节的实操要点去官网下载安装包需要注册AMD账号这个我不展开。重点说一下下载过程中容易被忽视的两件事。第一下载器。官方推荐用Xilinx Unified Installer下载器。它的好处是支持断点续传和分卷下载可以一边下载一边自动校验文件完整性。坏处是有时候速度不稳定长时间挂着容易掉线。我的经验是上午开下载器选择好要下载的组件后让它跑着千万别手贱关电脑如果中途断了重新打开下载器它通常会从断点继续。第二版本包组成。离线安装包下载下来通常是一大堆.tar.gz或者.zip分卷不是单个ISO。你要把所有分卷放在同一个目录下然后运行其中主安装文件Windows下是.exe或.bat安装程序会自动把分卷拼接并解压。我看到过有人只下载了第一分卷就急着安装结果程序报“找不到文件”其实是后面的分卷没下来。在Windows上解压ZIP包时建议用系统自带或7-Zip不要用某些压缩工具的重命名功能它们有时会把分卷序号搞乱导致安装程序识别失败。2.2 启动安装程序后的关键选项找到解压目录右键“以管理员身份运行”安装程序。这一步很关键不管理员运行可能后面驱动安装、环境变量写入都静默失败。安装向导里需要注意几个地方用户认证会让你登录AMD账号也可以跳过。登录的好处是安装时可以自动关联一些在线资源但不是必需的。版本选择这里就是Vitis和Vivado选择的核心入口。安装Vitis的话安装程序默认会带上Vivado作为底层工具链如果只装Vivado那就取消Vitis相关组件。Edition类型根据你的器件和功能需求选。做纯逻辑开发、器件规模又不大Standard/WebPACK就够需要Versal、高端器件的完整支持才考虑Enterprise。器件系列勾选会列出一堆FPGA/SoC系列比如Artix-7、Kintex-7、Virtex-7、Zynq-7000、Zynq UltraScale、Versal等。这是占用磁盘空间的大头。原则上只用到的系列就勾上其余别勾能省很多空间。比如你做Zynq-7000开发那么Artix、Kintex全都可以不勾最终能省几十GB。2.3 组件勾选策略全选还是精简这可能是安装向导里最让人纠结的页面。我的建议分两种场景如果磁盘足够剩余空间250GB以上直接选全部组件。省心以后用哪个工具都不用回来补装。如果磁盘紧张按需精简。嵌入式开发必选Vitis Core Development Kit和相应的器件系列如果你还要做HLS高层次综合就勾Vitis HLS担心以后要调试片上逻辑就保留Vivado里的仿真和逻辑分析仪组件。组件选择还有一个连带影响后续升级和添加组件。装完之后突然发现某个器件系列没勾可以通过安装目录下的“Add/Remove Components”功能补充安装不需要卸载重来。但过程比较慢所以我依然建议第一次安装在磁盘允许范围内尽量一次配齐。3. License配置与激活故障排查3.1 三种常见License类型怎么选关于License许可证我遇到的困惑非常多最典型的就是明明装完了Vitis打开软件写了点代码一编译却被提示没有license功能直接被锁住。这确实是很多人安装完成后踢到的第一块铁板。License的概念其实不复杂但你得先搞清楚自己该用哪一种类型不然申请和激活都容易走弯路。License的类型主要三种节点锁定式Node-Locked绑定一台电脑的MAC地址。申请时需要提供主机IDAMD官网生成一个.lic文件下载后导入即可。个人开发最常用。浮动式Floating装在服务器上多台机器共用适合团队。云LicenseCloud登录账号在线激活适合经常换机器的场景。个人开发者一般用节点锁定License就够了。注意申请时填写的MAC地址必须是实际安装工具这台机器的填错了激活不生效。另外系统时间不对会导致License过期或提前报错我见过有人把系统时间改成几年前结果Vivado直接认为license失效怎么折腾都不行。3.2 License Manager打不开怎么处理这是热搜里反复出现的词。License Manager打不开大概率不是你的问题而是安装环节里某个依赖没装好。最常见的诱因是WinPcap安装失败。Vivado的License Manager在Windows上依赖WinPcap来获取网卡信息如果WinPcap没装上或者被安全软件拦截License Manager就会闪退或无响应。解决思路很简单先手动安装WinPcap 4.1.3安装时看清楚提示别让杀毒软件拦截。装完之后再打开License Manager通常就好了。另一个诱因是Visual C运行库缺失。Vitis/Vivado这套工具链用到了大量原生组件VC运行库不全会导致各种“点了没反应”。去微软官网装最新的Visual C Redistributablex64和x86都要一劳永逸。还有一个小问题如果你之前装过低版本的License Manager配置文件可能已经损坏。这时可以删除C:\Users用户名\AppData\Roaming\XilinxLicense相关目录后重试或者用“以管理员身份运行”再打开。3.3 设置License的两种姿势打开License Manager之后添加.lic文件有两种常见方式在License Manager界面选择“Load License”找到你下载的.lic文件加载它会自动写入到安装目录的license文件夹。手动设置环境变量XILINXD_LICENSE_FILE指向.lic文件所在路径。这种方式在服务器或多版本共存场景下更灵活。很多教程只讲了第一种所以当遇到“明明导入了licenseVitis启动后还是不认”的时候检查一下环境变量是否被别的配置覆盖了。我在Windows上遇到过环境变量指向一个已经不存在的旧license路径导致新版软件一直用旧配置删掉旧变量后一切正常。4. 驱动、环境变量与板卡识别装完不等于能用4.1 驱动安装失败的完整排查链路安装程序在最后阶段会自动安装Xilinx USB Cable驱动但这一步出错率很高尤其是Windows系统。出错表现很一致设备管理器里出现一个带黄色感叹号的未知设备名字可能是“Xilinx USB Cable”或者直接是“Unknown USB Device”。这种情况下Vivado的Hardware Manager肯定连不上板子。手动安装驱动的步骤是这样打开设备管理器右键那个带感叹号的设备选择“更新驱动程序”。选择“浏览我的电脑以查找驱动程序”。路径指向安装目录下的驱动文件夹通常是C:\Xilinx\Vivado\2022.2\data\drivers\nt64或者C:\Xilinx版本\data\drivers。让系统搜索并安装安装完拔插一下USB线。如果系统提示“驱动签名问题”或“无法验证发布者”可以进入Windows高级启动选项选择“禁用驱动程序强制签名”后再装一次。这个操作在Windows 10/11上都是可行的我就是靠这招搞定过一块老平台USB Cable II。还有一类板卡用的是FTDI芯片比如Digilent系列下载器需要单独装FTDI VCP驱动。设备管理器里如果出现“USB Serial Converter”设备却没装好要么去FTDI官网下载驱动要么直接用Vivado驱动目录里自带的FTDI相关驱动。4.2 环境变量怎么检查Vivado/Vitis安装程序理论上会自动配置环境变量但有些情况下尤其被安全软件清理过注册表之后环境变量会丢失。需要关注的主要变量XILINX_VIVADO指向Vivado安装目录比如C:\Xilinx\Vivado\2022.2XILINX_VITIS指向Vitis安装目录比如C:\Xilinx\Vitis\2022.2PATH需要包含以上目录下的bin路径比如C:\Xilinx\Vivado\2022.2\binXILINXD_LICENSE_FILE指向license文件路径检查方法是Windows下打开命令提示符输入vivado -version和vitis -version如果提示“不是内部或外部命令”说明PATH没配好需要手动把对应bin目录加进去。4.3 JTAG链路与板卡识别的分层排查Vitis下载调试时提示“不识别芯片”这是热搜里出现频率最高的问题之一。我把它拆成分层排查的思路遇到这种报错不要慌按顺序查物理链路。USB线是否为数据线有些线只能充电不能传数据。JTAG适配器到目标板的排线是否插反了目标板是否已经供电JTAG接口的参考电压是否正常不要笑我确实碰到过电源线没插紧让排线虚接这类低级问题。驱动层。设备管理器里能否看到正常识别的Xilinx USB Cable或FTDI设备如果看不到回到上一节手动装驱动。Vivado层。打开Vivado点“Open Hardware Manager”连接目标看能否扫描到芯片。如果这里能看到芯片说明驱动和JTAG链路都正常问题出在Vitis侧。Vitis侧。Vitis里跑hello world之前需要先创建Platform并导入.xsa文件。如果Platform里选的目标器件和实际板卡不一致下载时就会提示“不识别芯片”。这时候回到Platform设置确认器件型号比如xc7z020clg400-1和实际板卡一致。Debug Configuration。右键工程Run As → Launch Hardware打开Debug Configuration检查Target Setup中的连接方式确保选择的是正确硬件目标和频率。JTAG频率太高在劣质线材上也会导致识别失败可以适当降到5MHz再试。这套排查链路我执行过不下十次90%的问题在驱动层和物理链路层就能解决剩下的才是软件配置问题。5. 用hello world验证安装从建工程到点灯5.1 先把.xsa文件准备好验证安装是否成功最直接的方式就是跑通一个最简的Zynq嵌入式程序。前提是你有一个来自Vivado的硬件工程导出了.xsa文件。在Vivado里完成Block Design搭建和处理系统配置之后点击File → Export Hardware勾选“Include bitstream”导出一个.xsa文件。这个文件包含了硬件平台信息是Vitis创建Platform的基础。这里要注意如果你导出.xsa时没有勾选包含比特流后面Vitis里做FPGA配置Overlay时会有麻烦但跑纯PS端的hello world没问题。如果想一劳永逸务必勾选。顺便回应热搜里的“如何在连接硬件的情况下生成固化文件”当你需要让程序上电自启动时在Vitis里可以Program Flash先把生成的启动镜像BOOT.BIN或MCS/HEX烧进QSPI Flash把启动模式拨到Flash启动即可。这个过程需要先验证基础下载调试正常所以放在实操验证环节之后再做。5.2 创建Platform和Application的完整步骤第一次打开Vitis它会让你选择一个Workspace目录建议新建一个专门的目录路径同样别带中文和空格。创建Platform的步骤File → New → Platform Project。输入工程名比如my_platform。点击Browse找到之前导出的.xsa文件Vitis会自动解析出硬件信息。保持默认选项Finish。Platform生成需要一点时间它会根据.xsa里的硬件信息生成BSP板级支持包和驱动。生成完后可以展开platform的BSP设置查看处理器型号、外设配置是否正确。创建Application的步骤File → New → Application Project。选择刚才创建的Platform作为目标平台。输入工程名比如hello_world。模板选择Hello World。Finish。编译Application右键工程 → Build Project。第一次编译会同时编译BSP时间稍长正常等待即可。如果编译报错缺头文件多半是Platform生成不完整可以右键Platform重新生成BSP再编。5.3 下载调试与芯片识别问题定位连接板卡右键hello_world工程 → Run As → Launch Hardware。如果一切正常你会在串口终端Vitis自带的Terminal或外面接的串口软件看到“Hello World”输出。如果这里跳出“不识别芯片”类的错误请对照第4.3节的排查链路走一遍。我实测中最容易忽视的环节有目标板的启动模式拨码。比如Zynq-7000开发板上有Boot Mode拨码拨到JTAG模式才能让JTAG链路正常工作。很多板卡默认从QSPI或SD启动JTAG调试时反而扫描不到芯片。电源。JTAG扫描芯片需要目标板供电正常而且JTAG参考电压要匹配。有些板卡支持1.8V/2.5V/3.3V跳线跳错也会识别失败。多下载器冲突。电脑同时插了多个Xilinx下载器时Hardware Manager会列出多个target要选择当前板卡对应的那个别选错。5.4 验证清单成功跑通hello world之后建议再做三个小验证连接Hardware Manager确认bitstream可以下载到PL端。这能证明下载器和JTAG链路在FPGA配置层面也稳定。在Vitis里做一次在线调试加个断点单步执行。这能验证调试功能是否完整。如果板卡有LED写一个翻转GPIO的小程序确认外设访问正常。做完这三步才能说这台机器的Vitis环境真的装好了。很多人的环境看着装完了实际上一跑硬件就露馅所以验证环节别跳过。6. 安装后遗症的清单式处理6.1 启动闪退和界面异常的常见诱因Vitis装完第一次启动就闪退排在前面的原因基本有两个显卡驱动老化和工作区路径异常。第一个好解决更新显卡驱动到最新版。有些场景下OpenGL加速组件没有正确识别Vitis的Eclipse界面会在绘制时崩溃。在Vitis安装目录下的ini配置里追加--vmargs -Dorg.eclipse.swt.internal.gtk.disable_gtk3trueLinux下这类参数能临时规避Windows下更多时候是显卡驱动问题。第二个容易被忽略Workspace路径所在磁盘权限不足。如果你把工作区放在C盘系统保护的Program Files目录下写文件时被权限拦截界面就会出现各种异常。解决方法是换一个普通用户可写的目录比如D:\workspace。6.2 不要乱动安装目录卸载也要干净有些用户为了“优化C盘”把C:\Xilinx下的文件移动到D盘或者手动删除部分组件。这是大忌。Vivado和Vitis的目录结构是高度耦合的关联脚本里到处是绝对路径引用手动移动会导致工具链批量失效。真需要换盘卸载重装是最稳妥的。卸载时也建议用控制面板里的“卸载程序”走官方卸载器。有些人直接删文件夹导致注册表、环境变量残留下次重装时新老配置冲突出现一些莫名其妙的报错。如果已经遇到了重装后仍然异常的情况可以手工删除以下位置再重装C:\Xilinx%APPDATA%\Xilinx%APPDATA%\XilinxVivado注册表中的HKEY_CURRENT_USER\Software\Xilinx6.3 热搜问题快速索引我把几个常见的“安装后遗症”整理成一张表方便你直接对号入座症状常见原因处理办法License Manager打不开WinPcap或VC运行库缺失手动安装WinPcap 4.1.3和VC Redistributable下载调试不识别芯片JTAG链路/驱动/版本不匹配按分层排查链路逐级检查安装驱动时设备管理器感叹号驱动签名或路径不对手动指定驱动目录必要时禁用强制签名启动闪退显卡驱动或工作区权限更新显卡驱动更换工作区目录implement design变红有时是license、有时是工程路径问题先看Message窗口报错再查license是否覆盖该器件winpcap安装失败安全软件拦截或旧版本残留关掉安全软件彻底清理后重装WinPcap6.4 几个保命小习惯最后分享几个我自己实测中逐渐养成的习惯。说实话这些习惯都是在一次次重装、一次次陪同事排查之后沉淀下来的可能比上面所有步骤都管用每次安装前先备份系统还原点。Vitis/Vivado装了卸、卸了装是常事有还原点能省很多事。用官方下载器下载时保持磁盘剩余空间在必要基础上再多留30%。临时解压目录需要双倍空间。装了新版本后先把旧版本的license环境变量清干净只保留当前需要的那一份。遇到报错先看日志。安装目录下的log文件路径在C:\Users用户名\AppData\Local\Xilinx或安装临时目录里日志里会把失败的具体组件写得很清楚比自己瞎猜高效得多。装Vitis这件事情说难也难说简单也简单。把版本选对、磁盘留够、路径干净、驱动认好、license配好剩下的就是水到渠成。希望这份完整的安装流程和排坑清单能帮你少走弯路一次装好把时间省下来花在真正的开发上。
返回列表