使用ModelSim,如何在将信号添加到波形之前获取所有信号的仿真数据window?

With ModelSim, how to obtain all signals' simulation data before adding signals to waveform window?

背景:ModelSim v10.4d 安装了 quartus v16.0

我是 Cadence Incisive 用户,现在必须转给 ModelSim 导师,但是使用 ModelSim 我找不到在将所有信号数据添加到波形之前获取所有信号数据的方法 window。

例如,

在 .do(tcl) ModelSim 仿真脚本中,典型的流程可能是:

1,vcom : compile all sources files and testbench
2,vsim : load testbench for simulation
3,view structure/signals/wave : open some windows
4,add wave : add signals to waveform window
5,run xx us : run simulation for a certain time

使用此流程,每次向波形 window 添加信号时,我都必须重新执行第 5 步,否则它会显示 "NO DATA" 新添加的信号。

所以我想知道是否可以跳过第4步,只做一次第5步以获得所有信号的模拟数据,然后我们选择信号发送到波形window,我们有每个信号的数据无需重新执行 "run".

如果您想在设计中添加每个信号,只需执行如下操作:

add wave -recursive -depth 10 *

这会将每个信号添加到最多 10 个层级深度。请注意,信号记录仅适用于 add 命令后的模拟 运行。

在大型设计中,记录每个信号会导致仿真速度变慢。通过在运行模拟之前选择您真正感兴趣的信号,您将获得最短的模拟运行时间。

您可以使用 'sim' 面板快速浏览设计,然后 right-click 'Objects' 面板中的对象添加到 wave。在这里您还可以添加到 > Wave > 区域中的信号,或者在 'sim' 面板中您可以添加到 > Wave > 区域和下方的信号.

您需要的命令是log。参考手册说:

This command creates a wave log format (WLF) file containing simulation data for all HDL objects whose names match the provided specifications.

试试这个流程,你可以在第 5 步结束之前转到第 6 步:

1- vcom *.vhd : 编译所有源文件和测试平台
2- vsim work.my_tb : 加载测试平台进行模拟
3- 查看 structure/signals/wave : 打开一些 windows
4- log * -r : 告诉 modelsim 记录一切
5- run xx us : 运行模拟一定时间
6- 将信号添加到波形 window

使用 log * -r 会减慢模拟速度并填满您的磁盘。因此,您可能希望针对设计的特定部分而不是使用 *,或者可能希望使用 -depth 选项来限制深度。完整的详细信息可以在 Modelsim 参考手册中找到,可通过 Help 菜单获得。