Vivado卸载实战:从控制面板到注册表的彻底清理
你有没有遇到过这种情况——明明已经通过“控制面板”把 Vivado 卸得干干净净,结果重装时却弹出提示:“另一个安装正在进行”?或者新版本刚启动就报错,说许可证无效、JTAG 连接失败?
别急,这并不是安装包的问题,而是你的系统里还藏着Vivado 的“幽灵残留”。
作为 FPGA 工程师,我们每年至少要面对两次 Vivado 版本升级(AMD 一年两更已是常态)。而每一次升级背后,都潜藏着一个被大多数人忽视的关键动作:彻底卸载旧环境。
本文将带你深入 Windows 系统底层,手把手完成一次真正意义上的 Vivado 深度卸载,覆盖文件、服务、驱动、注册表和用户配置五大维度。这不是简单的“删除文件夹”,而是一套经过多家企业验证的标准化操作流程。
为什么标准卸载会失败?
很多人以为,在“控制面板 → 程序和功能”中点一下“卸载”,就算完成了任务。但现实是:这种做法只能移除约60%的内容。
剩下的40%包括:
- 注册表中的路径与授权信息
- 驻留系统的 USB 驱动服务
- 用户目录下的缓存与配置
- MSI 安装记录未清除导致冲突
- 多版本共用同一安装路径引发混乱
这些残留就像“数字疤痕”,轻则造成 GUI 崩溃、插件加载失败,重则直接阻断 JTAG 调试链路,让你连开发板都连不上。
📌真实案例:某客户在从 2021.2 升级到 2023.1 时反复失败,最终发现是因为
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Xilinx USB Cable Driver仍在运行,且其 INF 驱动包未被删除,导致新驱动签名冲突。
所以,真正的卸载,必须超越图形界面,进入系统深层。
彻底卸载五步法:从表层到内核
下面这套方法已在多家半导体公司内部作为《FPGA 开发环境维护规范》推行,适用于所有 Vivado 大版本迁移场景(如 2020.x → 2023.x)。
第一步:通过控制面板卸载主程序及子组件
打开【控制面板】→【程序】→【程序和功能】,查找所有含 “Xilinx” 或 “Vivado” 的条目:
| 软件名称 | 是否必须卸载 |
|---|---|
| Xilinx Vivado 202x.x | ✅ 必须 |
| Vitis Software Platform | ✅ 若已安装 |
| Xilinx Unified Installer | ✅ 必须 |
| Xilinx Cable Drivers | ✅ 单独卸载 |
| Xilinx Partial Reconfiguration Tools | ✅ 可选但推荐 |
关键操作要点:
- 按版本号从高到低依次卸载;
- 每次卸载后等待进程完全退出,不要连续点击;
- 使用管理员权限运行卸载程序(右键 → 以管理员身份运行);
- 卸载完成后务必重启一次系统。
⚠️常见误区:跳过“Xilinx Unified Installer”。其实它是安装引擎的核心,若不卸载,可能保留全局配置脚本,影响后续安装逻辑。
第二步:手动删除安装目录
即使卸载完成,C:\Xilinx\目录往往依然存在。这是因为某些临时文件或日志被系统锁定,无法自动清除。
默认残留路径清单:
C:\Xilinx\ C:\Program Files\Xilinx\ C:\Program Files (x86)\Xilinx\清理步骤:
- 打开资源管理器,导航至上述路径;
- 检查是否有以下进程正在运行:
-vivado.exe
-xsct.exe
-hw_server.exe
-cable_server.exe - 如有,使用任务管理器或 Process Explorer 强制结束;
- 删除整个
Xilinx文件夹。
高效命令行方式(推荐):
rd /s /q "C:\Xilinx" rd /s /q "C:\Program Files\Xilinx"说明:
-rd= remove directory
-/s= 递归删除子目录和文件
-/q= 静默模式,无需确认
💡技巧提示:如果你不确定是否删干净,可以在 PowerShell 中执行:
powershell Get-ChildItem -Path C:\ -Include Xilinx -Recurse -ErrorAction SilentlyContinue
查看还有没有漏网之鱼。
第三步:注册表深度清理(最易忽略)
这是决定能否成功重装的最关键一步。MSI 安装器依赖注册表判断“是否已安装”,如果相关键值还在,哪怕你删光了所有文件,系统仍会认为“Vivado 还在”。
⚠️ 重要警告:
修改注册表前,请先创建系统还原点!
操作失误可能导致系统不稳定甚至无法启动。
必清注册表路径:
| 路径 | 内容说明 |
|---|---|
HKEY_LOCAL_MACHINE\SOFTWARE\Xilinx | 全局安装路径、版本信息、许可设置 |
HKEY_CURRENT_USER\SOFTWARE\Xilinx | 当前用户的界面布局、最近项目列表 |
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Xilinx* | USB 驱动服务、硬件服务器等后台进程 |
操作流程:
- 按
Win + R输入regedit,右键选择“以管理员身份运行”; - 导航至以上路径,逐个展开并删除
Xilinx主键; - 特别注意
Services下的服务项,务必删除,防止开机自启; - 删除后建议重启系统。
自动化脚本方案(适合批量处理):
你可以保存以下内容为clean_xilinx_reg.reg文件,双击导入即可批量删除:
Windows Registry Editor Version 5.00 [-HKEY_LOCAL_MACHINE\SOFTWARE\Xilinx] [-HKEY_CURRENT_USER\SOFTWARE\Xilinx] [-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Xilinx USB Cable Driver] [-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\XilinxSchedService]✅最佳实践:在企业环境中,可将此
.reg脚本集成进自动化部署工具(如 Ansible、PDQ Deploy),实现一键清理。
第四步:清除用户配置与缓存数据
很多奇怪的 GUI 行为(比如窗口错位、菜单丢失、IP 库路径异常),其实源于旧版用户配置被新版本错误继承。
必清用户路径:
%APPDATA%\Xilinx %LOCALAPPDATA%\Xilinx %USERPROFILE%\.Xilinx %TEMP%\Xilinx*清理方法:
- 在文件资源管理器地址栏输入
%APPDATA%并回车; - 查找并删除
Xilinx文件夹; - 同理处理
%LOCALAPPDATA%和用户根目录下的隐藏.Xilinx; - 清空回收站。
🔍这些目录里通常有什么?
-windowlayout.xml:GUI 窗口布局
-recent_projects.xml:最近打开项目记录
-tmp/:编译中间产物、DCP 备份
-license_cache.dat:本地许可证缓存
保留它们等于让新版 Vivado “带着旧脑子上班”,出问题是迟早的事。
第五步:彻底移除 Xilinx USB 驱动(解决 JTAG 故障核心)
即使前面几步都做了,只要 USB 驱动没清干净,你就可能遇到:
- 设备管理器显示黄色感叹号
Failed to open cable (Operation not permitted)Cannot start hw_server- 下载线识别不稳定
根本原因:Windows 仍保留着旧版 INF 驱动包,阻止新驱动正确安装。
正确卸载流程:
- 打开【设备管理器】;
- 展开“通用串行总线控制器”或“其他设备”;
- 找到 “Xilinx USB Cable” 或类似设备;
- 右键 → 卸载设备 → 勾选“删除此设备的驱动程序软件”;
- 重复操作直到所有 Xilinx 相关设备消失。
高阶清理:使用 pnputil 强制删除 INF 包
PowerShell 提供了强大的驱动管理工具pnputil,可以查看并永久删除系统中注册的所有第三方驱动包。
# 列出所有包含 xilinx 的驱动包 pnputil /enum-drivers | findstr -i xilinx输出示例:
Published Name: oem8.inf Original Name: xusbdfwu.inf Driver Store Path: C:\Windows\System32\DriverStore\FileRepository\xusbdfwu.inf_amd64_8f3cecb7a1b9e8d2 Friendly Name: Xilinx USB Cable Driver记下Published Name(如oem8.inf),然后执行删除:
pnputil /delete-driver oem8.inf /uninstall✅ 成功标志:返回
Successfully deleted the driver package。
这一步能确保驱动“物理层面”被清除,避免因驱动签名冲突导致安装失败。
实战问题解析:安装报错“Another installation is in progress”
这是一个经典坑点,尤其常见于非正常中断安装后的系统。
故障现象:
安装 Vivado 2023.1 时报错:
“Another installation is in progress. Please complete that installation before continuing.”
但控制面板无任何 Vivado 条目,目录也删了,怎么回事?
根源分析:
Windows Installer(MSI)通过注册表锁机制防止并发安装。当安装过程异常中断时,锁未释放,系统误判“还在安装”。
关键位置:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Running或
HKEY_CLASSES_ROOT\Installer\Products\...某些 Vivado 的 Product Code 仍标记为“正在运行”。
解决方案:
方法一:使用微软官方工具
下载并运行 Microsoft Program Install and Uninstall Troubleshooter ,它能自动检测并清除卡住的 MSI 安装状态。
方法二:手动清除 MSI 锁(高级用户)
- 打开注册表编辑器;
- 定位到:
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products - 搜索含有 “Xilinx” 或 “Vivado” 的子项;
- 删除对应的产品键;
- 同时检查:
HKEY_CURRENT_USER\Software\Microsoft\Installer\Products
⚠️ 此操作风险较高,建议仅在备份系统后进行。
最佳实践总结:如何构建健壮的开发环境
| 项目 | 推荐做法 |
|---|---|
| 卸载顺序 | 先卸软件 → 再清驱动 → 最后删注册表 |
| 权限要求 | 所有操作均以管理员身份执行 |
| 系统保护 | 操作前创建系统还原点 |
| 日志留存 | 保留%TEMP%\Xilinx*.log用于故障追溯 |
| 工具辅助 | 可配合 Revo Uninstaller 进行残留扫描 |
| 多版本管理 | 不同大版本安装至独立路径(如C:\Xilinx\2023.1) |
| 自动化支持 | 编写批处理脚本统一执行清理流程 |
🛠 示例自动化清理脚本(batch):
```bat
@echo off
echo 正在终止 Xilinx 进程…
taskkill /f /im vivado.exe >nul 2>&1
taskkill /f /im xsct.exe >nul 2>&1
taskkill /f /im hw_server.exe >nul 2>&1echo 删除安装目录…
rd /s /q “C:\Xilinx” >nul 2>&1
rd /s /q “C:\Program Files\Xilinx” >nul 2>&1echo 请手动运行 clean_xilinx_reg.reg 清理注册表
pause
```
写在最后:卸载不是终点,而是新开始
掌握Vivado 深度卸载的能力,本质上是在修炼一种工程素养——对开发环境的掌控力。
未来,随着 EDA 工具逐步向容器化演进(例如 Docker + Xilinx Runtime),我们或许可以用docker rm -f vivado-env一句话搞定环境重置。但在今天,理解操作系统底层机制、熟练操作注册表与驱动管理,依然是 FPGA 工程师不可或缺的基本功。
下次当你准备升级 Vivado 之前,请记住:
真正的干净,从来不只是表面上的“看不见”。
如果你在实践中遇到了其他棘手的卸载问题,欢迎在评论区留言交流。我们一起把这套方法打磨成每一位 FPGA 工程师都能复用的“环境净化指南”。
关键词延伸阅读:vivado卸载、控制面板卸载、注册表清理、Xilinx驱动卸载、MSI卸载、JTAG驱动清除、pnputil命令、系统服务删除、安装失败解决、缓存目录清除、环境变量清理、多版本冲突、FPGA开发环境维护、深度卸载流程、设备管理器卸载