Win11系统Vivado18.3执行Run Synthesis时卡死
综合本身已经顺利跑完,真正卡住的是综合之后的一步。
日志里的关键信息
- 综合约 2 分钟就完成了,最后报告
Synthesis finished with 0 errors, 0 critical warnings。 - 日志最后一行是
INFO: [Project 1-571] Translating synthesized netlist,后面没有任何输出。
所以不是综合慢,而是 Vivado 在把各个网表合并进来时卡死了。
最可能的原因:工程里有 NGC 格式的网表
BlackBox 报告里除了 Vivado IP(CLK_GEN、FIFO、SDPRAM 这些 .xci),还有几个看起来不像 IP 的黑盒:dru、VIDEO_ENC、I2C_MASTER。其中 dru 是 Xilinx SDI 参考设计(XAPP)里的数据恢复单元,这个模块通常以 dru.ngc 的形式提供,工程里的 dru.v 只是个空壳。
Vivado 遇到 NGC 文件时,会在这一步调用旧的 ISE 工具 ngc2edif.exe 把它转成 EDIF。这个工具在新版 Windows 上会无限挂起。Xillybus 遇到过一模一样的现象:部分用户在某些 Windows 版本上综合时一直卡在 Translating synthesized netlist,原因是 Vivado 无法在这些平台上把 NGC 转成 EDIF,看起来是 ngc2edif.exe 依赖的运行库缺失。这也能解释为什么同一个工程以前在 Win7/Win10 上能编,换到 Win11 就卡。
先确认一下
- 卡住时打开任务管理器,看有没有
ngc2edif.exe进程。 - 在 Vivado Tcl Console 里执行
get_files *.ngc,看工程里有哪些 NGC 文件。
经过确认,确实是 ngc2edif.exe 进程卡住了。
解决办法1
参考:
https://adaptivesupport.amd.com/s/article/000034620?language=en_US
https://knowledge.ni.com/KnowledgeArticleDetails?id=kA0VU0000008pq90AA&l=en-US
Patch文件:xilinx-ise-win10-hang-hotfix.zip,可从上述第二个链接下载。
或者通过百度网盘下载:
链接: https://pan.baidu.com/s/1ZYQFZsmwheWUoh8m8I6d_w?pwd=ntfn 提取码: ntfn
Patch安装,x64系统(以vivado18.3安装在D:\Xilinx\Vivado\目录为例):
把 xilinx-ise-win10-hang-hotfix\nt64\libPortability.dll 拷贝到 D:\Xilinx\Vivado\2018.3\ids_lite\ISE\lib\nt64\ 目录下。
解决办法2
- 把 NGC 换成 EDIF,一劳永逸: 在一台能正常工作的机器上(Win10、Linux 版 Vivado,或者装了 ISE 14.7 的环境)运行:
ngc2edif dru.ngc dru.edf
然后在工程里移除 dru.ngc,加入 dru.edf。文件名要和模块名一致,dru.v 这个空壳保留不动。其他 NGC 文件也同样处理。转好的 .edf 建议直接提交到代码库,以后任何机器都不用再转换。如果你们以前有 Win10 机器编过这个工程,也可以去那台机器的 synth_1/.Xil 或工程目录下找找有没有已经转好的 .edf。
本文来自博客园,作者:闹闹爸爸,转载请注明原文链接:https://www.cnblogs.com/wanglouxiaozi/p/23615243

浙公网安备 33010602011771号