如何从 TCL 控制台在 ModelSim/QuestaSim 中执行“Zoom Fit”?

Pae*_*els 3 simulator tcl vhdl modelsim

我在 GUI 模式下从命令行使用 ModelSim / Questa-SIM。如果 ModelSim 在 GUI 模式下运行,我想从导入的“wave.do”文件中执行“Zoom Fit”。

我通过 将此文件传递给 vsim -do wave.do。这是脚本:

add wave *
run -all
Run Code Online (Sandbox Code Playgroud)

我启动了 vsim 并将波形窗口保存为test.do. 该文件包含如下语句:

WaveRestoreZoom {0 fs} {2724750 ps}
Run Code Online (Sandbox Code Playgroud)

TCL中可以计算上限吗?

我还找到了一条simtime语句,但是使用simtime作为第二个参数会报错:

VSIM1> simtime
       # {5,195 ns} {1       } /arith_counter_gray_tb 0 0
VSIM1> WaveRestoreZoom {0 fs} {simetime}
       # zoomrange: invalid range "0 fs simetime"
Run Code Online (Sandbox Code Playgroud)

sca*_*eff 6

如果我理解您想要正确执行的操作,那么wave zoom full对我有用。

如果您使用,您的技术就会起作用WaveRestoreZoom {0 fs} [simtime]。通过放入simtime花括号,您要求将其视为文字字符串。方括号要求它尝试计算其中的表达式。您同样可以使用WaveRestoreZoom {0 fs} [eval simtime].