去年接手一个老项目,需要用到Xilinx的ISE14.7工具链。本以为安装就是点几下Next的事,结果从License加载到JTAG连接,踩遍了所有能踩的坑。如果你也在Win10上折腾这个老古董,不妨看看我的血泪史。
ISE14.7发布于2013年,那时候Win10还没出生。要让这个"老爷爷"在新系统上跑起来,得先做好这些准备:
提示:建议在虚拟机中安装测试,避免污染主机环境。我用的是VMware Workstation 16 + Win10 20H2组合。
安装包建议从Xilinx官网下载(现在叫AMD官网了),虽然要注册账号但能确保文件完整。我试过几个第三方打包的版本,不是缺文件就是被修改过。
第一个拦路虎就是License加载。点击"Load License"后程序直接闪退,连错误提示都没有。经过反复测试,发现这几个关键点:
启动器位数问题:
-m32"C:\Xilinx\14.7\ISE_DS\common\bin\nt64\ise.exe" -m32系统环境变量设置:
bash复制set XILINX=C:\Xilinx\14.7\ISE_DS\ISE
set XILINX_DSP=C:\Xilinx\14.7\ISE_DS
set PATH=%XILINX%\bin\nt64;%PATH%
License文件格式:
用记事本打开.lic文件,检查第一行是否为:
code复制SERVER this_host ANY 2100
如果是this_host,需要替换为你的计算机名。
当你好不容易加载完License,打开IMPACT准备烧录时——又闪退了。这个问题源于64位系统的DLL兼容性问题,解决方法如下:
导航到安装目录:
code复制C:\Xilinx\14.7\ISE_DS\ISE\lib\nt64
执行以下操作:
libPortability.dll为libPortability_bak.dlllibPortabilityNOSH.dll并重命名为libPortability.dll如果仍然闪退,尝试:
bash复制cd C:\Xilinx\14.7\ISE_DS\ISE\bin\nt64
impact -batch
当一切看似正常,ChipScope却死活检测不到下载器时,按照这个流程排查:
症状:
code复制ERROR: Failed to detect cable. Try to open a specific cable from the 'JTAG Chain' menu.
解决方案:
驱动文件替换:
code复制C:\Xilinx\14.7\ISE_DS\ISE\lib\nt64
C:\Xilinx\14.7\ISE_DS\common\lib\nt64
libPortability.dlllibPortabilityNOSH.dll并重命名为libPortability.dllUSB控制器设置:
线缆检测技巧:
很多开发者会同时安装ISE和Vivado,这时JTAG驱动就会打架。这是我总结的和平共处原则:
冲突表现:
解决方案:
驱动安装顺序:
bash复制cd C:\Xilinx\14.7\ISE_DS\ISE\bin\nt64
install_drivers.exe
驱动切换脚本:
创建两个bat文件方便切换:
ise_driver.bat:
bash复制@echo off
devcon remove USB\VID_0403&PID_6010
devcon remove USB\VID_0403&PID_6014
cd C:\Xilinx\14.7\ISE_DS\ISE\bin\nt64
install_drivers.exe
vivado_driver.bat:
bash复制@echo off
devcon remove USB\VID_0403&PID_6010
devcon remove USB\VID_0403&PID_6014
cd C:\Vivado\2021.1\data\xicom\cable_drivers\nt64\digilent
install_digilent.exe
使用技巧:
当你好不容易搭建好环境,准备仿真时又遇到:
code复制The selected process was not run because a prior process failed
这个问题源于ISE自带的MinGW版本太老,解决方法如下:
备份原目录:
bash复制ren C:\Xilinx\14.7\ISE_DS\ISE\gnu\MinGW\5.0.0\nt nt_bak
创建新目录并安装MinGW5.1.4:
bash复制mkdir C:\Xilinx\14.7\ISE_DS\ISE\gnu\MinGW\5.0.0\nt
cd /d C:\Xilinx\14.7\ISE_DS\ISE\gnu\MinGW\5.0.0\nt
msiexec /i MinGW-5.1.4.exe
环境变量配置:
code复制Name: MINGW_HOME
Value: C:\Xilinx\14.7\ISE_DS\ISE\gnu\MinGW\5.0.0\nt
code复制%MINGW_HOME%\bin;%MINGW_HOME%\msys\1.0\bin
测试技巧:
问题1:工程文件打不开
bash复制cd C:\Xilinx\14.7\ISE_DS\common\bin\nt64
ise.exe "%1"
问题2:综合时卡死
问题3:汉字显示乱码
code复制HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
折腾完这一大圈,终于能让ISE14.7在Win10上稳定工作了。虽然过程曲折,但对FPGA工具链的理解也更深了一层。建议把这些解决方案整理成checklist,下次重装系统时能省不少时间。