You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

ModelSim修改代码后,如何将波形更新至最新仿真数据集?

解决ModelSim修改代码后波形不更新的问题

针对你遇到的修改代码后重新执行.do文件但波形无法更新到最新数据的问题,我来分享几个实用的排查和解决方法:

1. 编译前清空旧的work库

ModelSim默认会复用已编译的库文件,如果你只是重新编译部分文件,很可能残留旧的编译产物导致仿真用的还是旧代码。建议在.do文件最开头添加清理命令:

vdel -lib work -all

这条命令会彻底删除work库下的所有旧编译文件,确保后续的vcom *.vhd是重新编译所有源文件和测试台。

2. 自动加载波形,避免手动添加的旧信号残留

你之前是手动添加信号到波形窗口,这些信号可能关联的是旧的仿真实例。可以在.do文件中加入自动添加波形的命令,替换手动操作:
run xx us之前或者之后添加:

add wave -position end sim:/my_tb/*

这样每次仿真启动后会自动加载测试台my_tb下的所有信号,确保是最新的仿真实例的信号。如果之前有旧的波形窗口,还可以在vsim命令前加上关闭旧窗口的命令:

wave close

3. 检查编译是否覆盖所有修改的文件

有时候vcom *.vhd可能因为文件依赖顺序或者编译缓存的问题,没有正确编译修改过的文件。你可以尝试指定具体的文件编译顺序(比如先编译源文件,再编译测试台),而不是用通配符:

vcom src_module.vhd
vcom my_tb.vhd

这样能确保每个修改过的文件都被重新编译。

4. 重启ModelSim(终极手段)

如果上面的方法都不管用,可能是ModelSim的缓存或者进程残留导致的。完全关闭ModelSim,清理掉临时文件后再重新启动执行.do文件,一般能解决顽固的缓存问题。

按照上面的步骤修改你的.do文件后,应该就能每次都得到最新的仿真波形了。

内容的提问来源于stack exchange,提问作者Cong Li

火山引擎 最新活动