vivado杂记篇2-莫名其妙的综合失败问题
本来好好的vivado工程前期经过多次综合、实现以及生成bit流都没问题。突然某一天重新运行一下就一直报错提示综合失败但message里面也没有error的显示。到vivado工程里面的“**.runs”文件夹里找到“synth_1”文件夹再找到“hs_err**.log”的文件就出现如下的提示# An unexpected error has occurred (EXCEPTION_ACCESS_VIOLATION) # Stack: no stack trace available, please use hs_err_pid.dmp instead.解决办法如下一条条试验博主有时候通过第1个办法就解决了有时候通过第2个办法解决的大家都可以试试~### ️ 解决方案按推荐尝试顺序#### 1. 工程级重置清理缓存和运行文件有时候起作用这是最直接的方法用于修复可能损坏的工程缓存。请在Vivado的 **Tcl Console** 中依次运行以下命令# 重置整个工程清除所有综合和实现结果reset_project# 重置仿真文件reset_simulation# 可选如果IP状态异常可以清除IP缓存config_ip_cache -clear_output_repo运行 reset_project 会清除所有的综合、实现结果以及OOC生成的IP文件将工程恢复到较干净的状态。之后尝试重新运行综合或实现。#### 2. 禁用增量综合有时候起作用根据多个用户的反馈**增量综合**有时会触发此崩溃错误尤其是在使用特定IP或新版本Vivado时。- **操作方法**1. 打开Vivado工程。2. 在左侧 **Flow Navigator** 中展开 **Synthesis**。3. 右键点击 **Synthesis Settings**。4. 在 **Options** 标签页中找到 **Incremental Synthesis**将其设置为 **“None”**。5. 点击 **OK** 保存设置然后重新尝试综合。#### 3. 临时切换顶层模块博主没试过这是一种有趣的“刷新”Vivado内部状态的方法有用户反馈此方法奏效。- **操作方法**1. 在 **Sources** 窗口中任意选择一个与当前顶层模块完全不同的其他模块文件。2. 右键点击它选择 **Set as Top**。3. 尝试对这个新顶层进行综合。即使综合失败也没关系。4. 再次右键点击你**原来的**顶层模块重新将其 **Set as Top**。5. 再次尝试综合原来的设计。#### 4. 检查并禁用FlexNet Licensing Service 64博主没试过在某些Windows系统上FlexNet Licensing Service 64 服务与Vivado存在已知冲突会导致启动或运行时的访问冲突。- **操作方法**1. 按 Win R 键输入 msconfig 并回车打开系统配置。2. 切换到 **服务** 选项卡。3. 找到并 **取消勾选** FlexNet Licensing Service 64。4. 点击 **应用** 和 **确定**。5. **重启电脑**。重启后再次打开Vivado测试问题是否解决。#### 5. 增加Vivado的堆栈大小博主没试过如果问题是由于内存不足或堆栈溢出引起的可以尝试增加Vivado的堆栈空间。- **操作方法**- 在启动Vivado时通过命令行添加参数vivado -stack 2000- 或者如果你使用的是第三方工具如Plunify InTime可以在其配置文件中设置此参数。