Modelsim/Questa报vish-4014找不到/*对象do脚本提前退出如何解决
解决方案
1. 让do脚本遇错不终止
你可以通过以下两种方式实现,都不会中断脚本运行,适配无对象的空设计场景:
- 方案1:使用Tcl
catch命令单独捕获log命令的错误
把你的sim.do脚本修改为:# 捕获log命令的错误,即使没有匹配对象也继续执行 catch {log -r /*} run -all - 方案2:全局配置脚本出错自动继续
在sim.do脚本开头添加全局错误处理规则:onerror {resume} #Log all objects in the design. log -r /* run -all
2. 排查+acc不生效、无匹配对象的问题
你当前的仿真脚本存在明显配置错误,修正后即可正常识别所有信号:
- 模块名不匹配:你提供的Verilog源码模块名为
test_width,但vsim命令中启动的仿真模块是test_setup,如果test_setup为空模块/无内部信号,自然会报无匹配对象,先核对仿真的目标模块名。 - 优化参数调整:如果确认模块名正确还是识别不到信号,可以在vsim启动参数中添加
-novopt完全关闭优化(2021及以上版本Questa替换为-voptargs=+acc=npr),修改后的vsim命令参考:C:/questasim64_2020.4/win64/vsimk.exe -c test_width -wlf simout.setup.wlf -l simout.setup.log -voptargs=+acc -novopt -t 1fs -debugdb -do "do simout.setup.sim.do"
内容的提问来源于stack exchange,提问作者pico
相关产品推荐
相关产品推荐

