[{"data":1,"prerenderedAt":484},["ShallowReactive",2],{"content:\u002F2024\u002Fvivado-modelsim-rescue":3,"surround:\u002F2024\u002Fvivado-modelsim-rescue":472},{"id":4,"title":5,"body":6,"categories":446,"date":448,"description":449,"draft":450,"extension":451,"image":452,"meta":453,"navigation":455,"path":456,"permalink":452,"published":452,"readingTime":457,"recommend":452,"references":452,"seo":462,"sitemap":463,"stem":464,"tags":465,"type":469,"updated":470,"__hash__":471},"content\u002Fposts\u002F2024\u002Fvivado-modelsim-rescue.md","朋友的 Vivado 和 Modelsim 装上了吗",{"type":7,"value":8,"toc":424},"minimark",[9,13,22,33,42,50,54,57,61,64,78,81,88,100,103,108,135,153,158,161,164,193,199,202,205,208,214,247,296,299,303,306,309,316,319,322,325,328,335,346,349,356,368,371,375,378,381,385,393,396,399,403,406,409,414,421],[10,11,12],"h2",{"id":12},"给你发个安装包",[14,15,16,17,21],"p",{},"Skymaster 心血来潮，想要在自己的笔记本上配置 Vivado 和 Modelsim ",[18,19,20],"strong",{},"硬件开发环境","，用于预习本学期的《计算机组成原理》和《基于Vivado的FPGA设计基础》。于是，他想找我要安装包。",[14,23,24,25,32],{},"多提一嘴，为什么不自己下载？因为有些文件可能在网盘里，下载速度很慢；校园网在宿舍的网速上限也只有 50 Mbps，根据",[26,27,31],"a",{"href":28,"rel":29},"https:\u002F\u002Fwww.ithome.com\u002F0\u002F708\u002F282.htm",[30],"nofollow","FCC 欲调整美国宽带标准：下行 100 Mbps，上行 20 Mbps","，下行速度似乎已经脱离了「宽带」的范畴。",[14,34,35,36,41],{},"这我能忍？我刚配的千兆内网！很快啊，我就邀请 Skymaster 来我宿舍拉取共计几十 GB 的安装包。 ",[37,38,40],"tip",{"tip":39},"此处仅作夸张，实际传输速度在 90MiB\u002Fs 左右","啪地一下","，他的电脑连接上了我 5GHz 频段 160MHz 频宽的 Wi-Fi 6 无线局域网，安装包就传过去了。",[43,44,47],"alert",{"title":45,"type":46},"尽可能地支持正版","warning",[14,48,49],{},"本文不提供任何盗版资源。购买并使用正版软件是对开发者的一种认可，盗版软件也可能会有安全风险。",[10,51,53],{"id":52},"vivado-装上了吗","Vivado 装上了吗",[14,55,56],{},"安装包随附安装教程图文链接，Skymaster 具有良好的技术素养，我认为他应该能顺利安装。",[58,59,60],"h3",{"id":60},"无法检测许可证",[14,62,63],{},"然而，他告诉我，Vivado 许可证管理器导入许可证后，没有更新任何许可年份期限。Skymaster 同时表明他严格按照教程安装，并已尝试导入另一份许可证文件，问题依旧。我不信，动身前往他的宿舍尝试亲自卸载后安装。",[65,66,67],"quote",{},[14,68,69,70,73,74,77],{},"即使口头上说着「重启、重装、重买」是维修电脑的三大锦囊，但这已然属于「",[18,71,72],{},"治末病","」的范畴，科学的使用习惯才是能「",[18,75,76],{},"治未病","」的法宝。",[58,79,80],{"id":80},"安装包的启动路径也不能有中文",[14,82,83,84,87],{},"我卸载后按照安装教程重新安装，复现了……🤔没有复现，安装",[18,85,86],{},"卡住了","！",[14,89,90,91,95,96,99],{},"阅读日志，发现是无法找到 ",[92,93,94],"code",{"code":94},"D:\\ \\Vivado 2018.3\\"," 目录下的某个文件，而这里本应该是 ",[92,97,98],{"code":98},"D:\\新建文件夹\\Vivado 2018.3\\","。所以，安装包的启动路径不能有中文，我只得修改文件夹名称。",[14,101,102],{},"🤓☝️不过到饭点了，吃个饭先。",[104,105,107],"h4",{"id":106},"种种机缘巧合误寻得问题原因","种种机缘巧合，误寻得问题原因",[14,109,110,111,114,115,118,119,122,123,126,127,130,131,134],{},"我原本想在 Skymaster 的电脑 D 盘建一个 ",[92,112,113],{"code":113},"Install"," 或者 ",[92,116,117],{"code":117},"Package"," 文件夹，用于存放安装包。然而，Skymaster 将输入法（微软拼音）的中英文切换键位由 ",[92,120,121],{"code":121},"Shift"," 修改为了 ",[92,124,125],{"code":125},"Ctrl+空格","，这令我在切换中英文时",[18,128,129],{},"颇为恼火","，想着安装后就删掉了，就直接使用「",[18,132,133],{},"新建文件夹","」作为文件夹名称。",[14,136,137,138,141,142,144,145,148,149,152],{},"我了解某些特定场景（如游戏）下需要长期保持英文输入状态，因此有用户修改了输入法（微软拼音）的中英文切换键位，并且发布了相关教程。但这不利于频繁的语言切换。更好的方法是为电脑添加 ",[92,139,140],{"code":140},"英语(美国)"," 语言包键盘的美式键盘输入法，这样，在中文场景下可以方便地使用 ",[92,143,121],{"code":121}," 切换中英文，对应需要保持英文键盘的场景，使用 ",[92,146,147],{"code":147},"Alt+Shift"," 或 ",[92,150,151],{"code":151},"Win+空格"," 切换到英语的美式键盘输入法，还不用担心切换后误触到中英文切换键位。",[65,154,155],{},[14,156,157],{},"不乏有真材实料的教程，但搜索或是短视频平台推送的所谓「电脑小技巧」，大多是在误人子弟。诸如「垃圾清理」「电脑加速」之类的内容，往往只是迎合网友需求的噱头，却不能解决实际问题或反而引入更大的隐患。",[58,159,160],{"id":160},"中文用户名文件夹",[14,162,163],{},"修改安装包所在的文件夹名之后重新安装问题依旧，我不得不对着证书管理器的界面思考。偶然间，我瞥见了这段话：",[165,166,167,175],"blockquote",{},[14,168,169],{},[170,171,174],"span",{"className":172},[173],"title-like","加载许可证 - 基于证书的许可证（翻译后的版本）",[14,176,177,178,181,182,185,186,188,189,192],{},"点击“复制许可证”按钮，将基于证书的许可证（",[92,179,180],{"code":180},".lic"," 文件）复制到 ",[92,183,184],{"code":184},"%APPDATA%\\XilinxLicense"," 目录中。Xilinx 应用程序会自动检测位于 ",[92,187,184],{"code":184}," 目录中的有效且绑定到节点的许可证（",[92,190,191],{"code":191},"*.lic","）。",[14,194,195,196,198],{},"我顿时灵光一现，既然安装程序因为启动路径含有中文而乱码，虽然安装在了英文目录下，但证书管理器会不会因为用户文件夹名为中文而不能读取 ",[92,197,184],{"code":184}," 呢？",[14,200,201],{},"再一看，Skymaster 的用户文件夹名果然是中文，还带了几个乱码文件夹。",[14,203,204],{},"这并不怪他，因为系统是别人帮忙装的，并且 Windows 安装引导（OOBE）输入用户名界面的文本框提示是「您的姓名」，很容易输入中文。",[58,206,207],{"id":207},"绕过中文路径",[14,209,210,211,213],{},"起初，我以为证书管理器访问的是乱码目录，但结合之前安装程序中「中文变空格」的现象，显然我不能把证书抛到空格文件夹里。既然如此，我便提出几种解决无法访问 ",[92,212,184],{"code":184}," 的方案：",[215,216,217,226,233,240],"ol",{},[218,219,220,221,225],"li",{},"修改用户文件夹名为英文（我的另一篇踩坑中有",[26,222,224],{"href":223},"\u002F2024\u002Fall-pits-stepped#%E4%B8%AD%E6%96%87%E7%94%A8%E6%88%B7%E6%96%87%E4%BB%B6%E5%A4%B9%E5%90%8D","教程","），风险较高。",[218,227,228,229,232],{},"通过系统全局（为所有用户而不是单个用户）安装，这样证书的导入路径可能会变成 ",[92,230,231],{"code":231},"%ProgramData%\\XilinxLicense","（未尝试）。",[218,234,235,236,239],{},"灵机一动，把自己的证书打入内置的证书目录 ",[92,237,238],{"code":238},"C:\\Xilinx\\Vivado\\2018.3\\data\\ip\\core_licenses","，这样证书管理器就能自动导入了（不规范）。",[218,241,242,243,246],{},"证书管理器内其实给出了指定许可证路径的选项，通过环境变量 ",[92,244,245],{"code":245},"XILINXD_LICENSE_FILE"," 实现。",[165,248,249,255,264,270],{},[14,250,251],{},[170,252,254],{"className":253},[173],"管理许可证搜索路径（翻译后的版本）",[14,256,257,258,260,261,263],{},"要指向浮动服务器许可证，或指向除 ",[92,259,184],{"code":184}," 之外位置中的许可证文件，请设置以下环境变量之一。",[92,262,245],{"code":245}," 是与 Xilinx 许可证一起使用时首选的环境变量。",[14,265,266,269],{},[18,267,268],{},"示例","：",[271,272,273,282,289],"ul",{},[218,274,275,276],{},"指向浮动服务器许可证：",[92,277,280],{"className":278,"code":280,"language":281},[279],"language-ini","XILINXD_LICENSE_FILE=1234@server","ini",[218,283,284,285],{},"包含其他本地目录：",[92,286,288],{"className":287,"code":288,"language":281},[279],"XILINXD_LICENSE_FILE=C:\\licenses\\Xilinx.lic",[218,290,291,292],{},"指向多个位置：",[92,293,295],{"className":294,"code":295,"language":281},[279],"XILINXD_LICENSE_FILE=1234@server;C:\\licenses\\Xilinx.lic",[14,297,298],{},"这样，我们就导入了某个支持 HLS、AccelDSP、System Generator、软硬 CPU、SoC、嵌入式 Linux、重配置等功能的证书了。",[10,300,302],{"id":301},"modelsim-装上了吗","Modelsim 装上了吗",[14,304,305],{},"这个安装包也附带详细的文字版安装教程，这下 Skymaster 应该能顺利安装了。然而，他依旧遇到了诸多问题。",[58,307,308],{"id":308},"乱码的安装教程",[43,310,313],{"title":311,"type":312},"写文章时 AI 补全的内容","info",[14,314,315],{},"我打开安装教程，发现里面全是乱码，我顿时明白，安装教程的 TXT 文件是用 VS Code 打开的，而 VS Code 默认使用 UTF-8 编码，而安装教程的 TXT 文件是 GBK 编码。",[14,317,318],{},"AI 分析的原因没有问题，Skymaster 也确实给我发来了 VS Code 打开 TXT 文件乱码的截图。我重新把 TXT 内的内容通过 QQ 发给了 Skymaster，他按照我发的教程继续安装，随后又遇到了问题。",[58,320,321],{"id":321},"许可证生成失败",[14,323,324],{},"在宿舍 23:30 熄灯断电的前一刻，他告诉我注册机无法生成许可证，表现为流程执行结束后直接退出而不打开许可证文件。",[14,326,327],{},"这我能忍？完全忍不了！😠我再次来到他的宿舍，复现了问……😡还多复现了一个 VS Code 打开 TXT 文件��的问题。",[14,329,330,331,334],{},"更忍不了了，我直接一个「通过编码重新打开」为 GBK，「通过编码保存」为 UTF-8。在 VS Code 按下 ",[92,332,333],{"code":333},"Alt+Z"," 启用自动换行……🤬快捷键被 NVIDIA GeForce Experience 占用了。",[14,336,337,338,341,342,345],{},"右键点击 ",[92,339,340],{"code":340},"安装教程.txt","，选择「使用记事本打开」……😨我辣么大个记事本呢？通过 ",[92,343,344],{"code":344},"Shift+右键"," 打开详细右键菜单，选择「在记事本中编辑」……😱也没有记事本，只有传统记事本的「编辑」和「打印」选项。",[58,347,348],{"id":348},"电脑竟然没有记事本",[14,350,351,352,355],{},"通过开始菜单搜索 ",[92,353,354],{"code":354},"notepad","，果真没有。🤦通过命令行终于启动了记事本，发现这台 Win 11 笔记本搭载的竟然还是 Win32 Notepad，菜单栏上一个大大的高亮通知，提示升级到新版记事本。",[65,357,358,365],{},[359,360,362],"template",{"v-slot:icon":361},"",[14,363,364],{},"😭",[14,366,367],{},"四欲「施法」，总被打断。",[14,369,370],{},"肾上腺素让我的思绪渐渐清晰：注册机在生成许可证后会调用记事本打开，但这个电脑缺少了新版 Win 11「标配」的 UWP 版记事本，所以无法用记事本打开生成的 TXT 文件。所以——只要安装新版记事本，能弹出许可证窗口——问题就解决了。",[58,372,374],{"id":373},"安装记事本需解除-uwp-代理限制","安装记事本，需解除 UWP 代理限制",[14,376,377],{},"那就在微软商店安装……😵卡住了，网络不好。",[14,379,380],{},"Cl$(echo a)sh for Windows 或 v2$(echo r)ayaN 提供了 Fiddler EnableLoopback Utility 插件，能够解除 UWP 应用代理回环限制，从而在 UWP 应用上使用代理。解除代理限制后，这个 2 MB 的小记事本几秒就下载好了。",[58,382,384],{"id":383},"重新激活-modelsim","重新激活 Modelsim",[14,386,387,388,392],{},"安抚了许可证的情绪，给它放在合适的窝里，配置好环境变量，观察到 Modelsim 情绪良好，就是在 ",[37,389,391],{"tip":390},"高分辨率屏幕","高分屏"," 下有点糊。",[14,394,395],{},"在快捷方式属性 - 兼容性 - 更改高 DPI 设置里，勾选「替代高 DPI 缩放行为」，「缩放执行」选择「应用程序」，界面便清晰了。如果太小，也可以选择「系统(增强)」，会先放大到整数倍再缩小到系统缩放比例。",[14,397,398],{},"此时，具有详细安装教程+专业导师指点的软件安装服务结束了，我猛灌了两口 Skymaster 的「888 mL 国区限定版可口可乐」，觉得「偏要来看看怎么个事」还真遇到一些不一样的坑。",[10,400,402],{"id":401},"思考留意异常迹象","思考：留意异常迹象",[14,404,405],{},"我自诩为「Bug 圣体」，表现为我在使用程序的过程中，常能遇到并留意一些微小的异常迹象。",[14,407,408],{},"最近在与 KazariEX 使用 Vue 开发的过程中，遇到了不少令我困惑的现象，KazariEX 对 vue-language-tools 比较熟悉，他帮忙解决了一些问题并向上游提交了 PR。在这些 PR 中，我起到了关键的一环——「触发并留意到问题」。",[65,410,411],{},[14,412,413],{},"在重大问题出现之前，往往伴随着一些微小的异常迹象。然而，能敏锐捕捉的关键在于知晓预期行为并了解其中机理。若是对正常行为的理解不够深刻，又何以辨别「异常迹象」？",[14,415,416,420],{},[37,417,419],{"tip":418},"写实验报告写的","在本次实验中，我","在推测并证实 Vivado 证书管理器的用户证书路径乱码的灵感，源自安装包的启动路径在中文文件夹时会安装失败；而推测 Modelsim 注册机不弹出证书文件窗口的灵感，源自安装教程 TXT 竟然默认用 VS Code 而不是记事本打开。",[14,422,423],{},"主人公 Skymaster 看到这篇文章，他说「我才是真正的 bug 圣体，这些 bug 的原因谁能想到」。因此，我重新为昨天的自己授予「玄学流电脑疑难杂症解决糕手」称号。",{"title":361,"searchDepth":425,"depth":425,"links":426},4,[427,429,438,445],{"id":12,"depth":428,"text":12},2,{"id":52,"depth":428,"text":53,"children":430},[431,433,436,437],{"id":60,"depth":432,"text":60},3,{"id":80,"depth":432,"text":80,"children":434},[435],{"id":106,"depth":425,"text":107},{"id":160,"depth":432,"text":160},{"id":207,"depth":432,"text":207},{"id":301,"depth":428,"text":302,"children":439},[440,441,442,443,444],{"id":308,"depth":432,"text":308},{"id":321,"depth":432,"text":321},{"id":348,"depth":432,"text":348},{"id":373,"depth":432,"text":374},{"id":383,"depth":432,"text":384},{"id":401,"depth":428,"text":402},[447],"技术","2024-12-03 08:00:41","明明只是遵照教程配置硬件开发环境，Vivado 添加许可证后却没有产品 License，Modelsim 注册机也会在生成许可证后闪退。教程竟不能覆盖这些情况了！亲自动手，误打误撞地在种种机缘巧合之下，探索 Windows 的种种「环境之谜」。",false,"md",null,{"slots":454},{},true,"\u002F2024\u002Fvivado-modelsim-rescue",{"text":458,"minutes":459,"time":460,"words":461},"14 min read",13.435,806100,2687,{"title":5,"description":449},{"loc":456},"posts\u002F2024\u002Fvivado-modelsim-rescue",[466,467,468],"Vivado","Modelsim","环境配置","story","2024-12-03 21:37:53","vefzMxuKOTRt8EG22thRt7Eh2DT1COGEQQpE5VB3pYE",[473,478],{"title":474,"path":475,"stem":476,"date":477,"type":469,"children":-1},"迟到三月的年末博客杂谈：动力、文章和内容","\u002F2024\u002Fblog-record","posts\u002F2024\u002Fblog-record","2024-11-19 08:08:07",{"title":479,"path":480,"stem":481,"date":482,"type":483,"children":-1},"一些数码外设的评价和“捡垃圾”心得","\u002F2024\u002Fdigital-products-bought","posts\u002F2024\u002Fdigital-products-bought","2024-12-19 19:24:26","tech",1782091373324]