朋友的 Vivado 和 Modelsim 装上了吗

给你发个安装包

Skymaster 心血来潮,想要在自己的笔记本上配置 Vivado 和 Modelsim 硬件开发环境,用于预习本学期的《计算机组成原理》和《基于Vivado的FPGA设计基础》。于是,他想找我要安装包。

多提一嘴,为什么不自己下载?因为有些文件可能在网盘里,下载速度很慢;校园网在宿舍的网速上限也只有 50 Mbps,根据FCC 欲调整美国宽带标准:下行 100 Mbps,上行 20 Mbps,下行速度似乎已经脱离了「宽带」的范畴。

这我能忍?我刚配的千兆内网!很快啊,我就邀请 Skymaster 来我宿舍拉取共计几十 GB 的安装包。 啪地一下,他的电脑连接上了我 5GHz 频段 160MHz 频宽的 Wi-Fi 6 无线局域网,安装包就传过去了。

尽可能地支持正版

本文不提供任何盗版资源。购买并使用正版软件是对开发者的一种认可,盗版软件也可能会有安全风险。

Vivado 装上了吗

安装包随附安装教程图文链接,Skymaster 具有良好的技术素养,我认为他应该能顺利安装。

无法检测许可证

然而,他告诉我,Vivado 许可证管理器导入许可证后,没有更新任何许可年份期限。Skymaster 同时表明他严格按照教程安装,并已尝试导入另一份许可证文件,问题依旧。我不信,动身前往他的宿舍尝试亲自卸载后安装。

即使口头上说着「重启、重装、重买」是维修电脑的三大锦囊,但这已然属于「治末病」的范畴,科学的使用习惯才是能「治未病」的法宝。

安装包的启动路径也不能有中文

我卸载后按照安装教程重新安装,复现了……🤔没有复现,安装卡住了

阅读日志,发现是无法找到 D:\ \Vivado 2018.3\ 目录下的某个文件,而这里本应该是 D:\新建文件夹\Vivado 2018.3\。所以,安装包的启动路径不能有中文,我只得修改文件夹名称。

🤓☝️不过到饭点了,吃个饭先。

种种机缘巧合,误寻得问题原因

我原本想在 Skymaster 的电脑 D 盘建一个 Install 或者 Package 文件夹,用于存放安装包。然而,Skymaster 将输入法(微软拼音)的中英文切换键位由 Shift 修改为了 Ctrl+空格,这令我在切换中英文时颇为恼火,想着安装后就删掉了,就直接使用「新建文件夹」作为文件夹名称。

我了解某些特定场景(如游戏)下需要长期保持英文输入状态,因此有用户修改了输入法(微软拼音)的中英文切换键位,并且发布了相关教程。但这不利于频繁的语言切换。更好的方法是为电脑添加 英语(美国) 语言包键盘的美式键盘输入法,这样,在中文场景下可以方便地使用 Shift 切换中英文,对应需要保持英文键盘的场景,使用 Alt+ShiftWin+空格 切换到英语的美式键盘输入法,还不用担心切换后误触到中英文切换键位。

不乏有真材实料的教程,但搜索或是短视频平台推送的所谓「电脑小技巧」,大多是在误人子弟。诸如「垃圾清理」「电脑加速」之类的内容,往往只是迎合网友需求的噱头,却不能解决实际问题或反而引入更大的隐患。

中文用户名文件夹

修改安装包所在的文件夹名之后重新安装问题依旧,我不得不对着证书管理器的界面思考。偶然间,我瞥见了这段话:

加载许可证 - 基于证书的许可证(翻译后的版本)

点击“复制许可证”按钮,将基于证书的许可证(.lic 文件)复制到 %APPDATA%\XilinxLicense 目录中。Xilinx 应用程序会自动检测位于 %APPDATA%\XilinxLicense 目录中的有效且绑定到节点的许可证(*.lic)。

我顿时灵光一现,既然安装程序因为启动路径含有中文而乱码,虽然安装在了英文目录下,但证书管理器会不会因为用户文件夹名为中文而不能读取 %APPDATA%\XilinxLicense 呢?

再一看,Skymaster 的用户文件夹名果然是中文,还带了几个乱码文件夹。

这并不怪他,因为系统是别人帮忙装的,并且 Windows 安装引导(OOBE)输入用户名界面的文本框提示是「您的姓名」,很容易输入中文。

绕过中文路径

起初,我以为证书管理器访问的是乱码目录,但结合之前安装程序中「中文变空格」的现象,显然我不能把证书抛到空格文件夹里。既然如此,我便提出几种解决无法访问 %APPDATA%\XilinxLicense 的方案:

  1. 修改用户文件夹名为英文(我的另一篇踩坑中有教程),风险较高。
  2. 通过系统全局(为所有用户而不是单个用户)安装,这样证书的导入路径可能会变成 %ProgramData%\XilinxLicense(未尝试)。
  3. 灵机一动,把自己的证书打入内置的证书目录 C:\Xilinx\Vivado\2018.3\data\ip\core_licenses,这样证书管理器就能自动导入了(不规范)。
  4. 证书管理器内其实给出了指定许可证路径的选项,通过环境变量 XILINXD_LICENSE_FILE 实现。

管理许可证搜索路径(翻译后的版本)

要指向浮动服务器许可证,或指向除 %APPDATA%\XilinxLicense 之外位置中的许可证文件,请设置以下环境变量之一。XILINXD_LICENSE_FILE 是与 Xilinx 许可证一起使用时首选的环境变量。

示例

  • 指向浮动服务器许可证:XILINXD_LICENSE_FILE=1234@server
  • 包含其他本地目录:XILINXD_LICENSE_FILE=C:\licenses\Xilinx.lic
  • 指向多个位置:XILINXD_LICENSE_FILE=1234@server;C:\licenses\Xilinx.lic

这样,我们就导入了某个支持 HLS、AccelDSP、System Generator、软硬 CPU、SoC、嵌入式 Linux、重配置等功能的证书了。

Modelsim 装上了吗

这个安装包也附带详细的文字版安装教程,这下 Skymaster 应该能顺利安装了。然而,他依旧遇到了诸多问题。

乱码的安装教程

写文章时 AI 补全的内容

我打开安装教程,发现里面全是乱码,我顿时明白,安装教程的 TXT 文件是用 VS Code 打开的,而 VS Code 默认使用 UTF-8 编码,而安装教程的 TXT 文件是 GBK 编码。

AI 分析的原因没有问题,Skymaster 也确实给我发来了 VS Code 打开 TXT 文件乱码的截图。我重新把 TXT 内的内容通过 QQ 发给了 Skymaster,他按照我发的教程继续安装,随后又遇到了问题。

许可证生成失败

在宿舍 23:30 熄灯断电的前一刻,他告诉我注册机无法生成许可证,表现为流程执行结束后直接退出而不打开许可证文件。

这我能忍?完全忍不了!😠我再次来到他的宿舍,复现了问……😡还多复现了一个 VS Code 打开 TXT 文件��的问题。

更忍不了了,我直接一个「通过编码重新打开」为 GBK,「通过编码保存」为 UTF-8。在 VS Code 按下 Alt+Z 启用自动换行……🤬快捷键被 NVIDIA GeForce Experience 占用了。

右键点击 安装教程.txt,选择「使用记事本打开」……😨我辣么大个记事本呢?通过 Shift+右键 打开详细右键菜单,选择「在记事本中编辑」……😱也没有记事本,只有传统记事本的「编辑」和「打印」选项。

电脑竟然没有记事本

通过开始菜单搜索 notepad,果真没有。🤦通过命令行终于启动了记事本,发现这台 Win 11 笔记本搭载的竟然还是 Win32 Notepad,菜单栏上一个大大的高亮通知,提示升级到新版记事本。

😭

四欲「施法」,总被打断。

肾上腺素让我的思绪渐渐清晰:注册机在生成许可证后会调用记事本打开,但这个电脑缺少了新版 Win 11「标配」的 UWP 版记事本,所以无法用记事本打开生成的 TXT 文件。所以——只要安装新版记事本,能弹出许可证窗口——问题就解决了。

安装记事本,需解除 UWP 代理限制

那就在微软商店安装……😵卡住了,网络不好。

Cl$(echo a)sh for Windows 或 v2$(echo r)ayaN 提供了 Fiddler EnableLoopback Utility 插件,能够解除 UWP 应用代理回环限制,从而在 UWP 应用上使用代理。解除代理限制后,这个 2 MB 的小记事本几秒就下载好了。

重新激活 Modelsim

安抚了许可证的情绪,给它放在合适的窝里,配置好环境变量,观察到 Modelsim 情绪良好,就是在 高分屏 下有点糊。

在快捷方式属性 - 兼容性 - 更改高 DPI 设置里,勾选「替代高 DPI 缩放行为」,「缩放执行」选择「应用程序」,界面便清晰了。如果太小,也可以选择「系统(增强)」,会先放大到整数倍再缩小到系统缩放比例。

此时,具有详细安装教程+专业导师指点的软件安装服务结束了,我猛灌了两口 Skymaster 的「888 mL 国区限定版可口可乐」,觉得「偏要来看看怎么个事」还真遇到一些不一样的坑。

思考:留意异常迹象

我自诩为「Bug 圣体」,表现为我在使用程序的过程中,常能遇到并留意一些微小的异常迹象。

最近在与 KazariEX 使用 Vue 开发的过程中,遇到了不少令我困惑的现象,KazariEX 对 vue-language-tools 比较熟悉,他帮忙解决了一些问题并向上游提交了 PR。在这些 PR 中,我起到了关键的一环——「触发并留意到问题」。

在重大问题出现之前,往往伴随着一些微小的异常迹象。然而,能敏锐捕捉的关键在于知晓预期行为并了解其中机理。若是对正常行为的理解不够深刻,又何以辨别「异常迹象」?

在本次实验中,我在推测并证实 Vivado 证书管理器的用户证书路径乱码的灵感,源自安装包的启动路径在中文文件夹时会安装失败;而推测 Modelsim 注册机不弹出证书文件窗口的灵感,源自安装教程 TXT 竟然默认用 VS Code 而不是记事本打开。

主人公 Skymaster 看到这篇文章,他说「我才是真正的 bug 圣体,这些 bug 的原因谁能想到」。因此,我重新为昨天的自己授予「玄学流电脑疑难杂症解决糕手」称号。

新故事即将发生

VitePress 不完全优化指南

评论区

评论加载中...