出错时从命令行退出Modelsim

时间:2016-08-26 10:17:25

标签: tcl command-line-arguments modelsim

我正在使用GUI和.tcl在命令行(vsim -c)中使用的.do文件,用于在Modelsim 10.3c中进行模拟

exec vsim -c -do DoFile.do

我需要的是: 如果发生错误,应退出modelsim并返回.tcl。否则它应该模拟项目。

如果我将行onerror { quit -f }放在我的.do文件中,则GUI会在第一个错误时退出。所以,这不舒服。

我没有设法在tcl中使用onerrorwarning: onerror command for use within macro)或$error(未知变量)

2 个答案:

答案 0 :(得分:3)

我需要有关DO和Tcl脚本的更多信息,但您可以在vcom(用于编译VHDL)或vlog(用于编译Verilog / SystemVerilog)上使用try-catch。 这是一个如何使用它的简短示例:

# set variable for compile error
set comperror ""

# compile files
catch "vcom -quiet -93 -work work name.vhd" comperror
catch "vcom -quiet -93 -work work name2.vhd" comperror
# ... and futher files..
if [expr  {${comperror}!=""}] then {
  # quit modelsim or do anything else
} else {
   # do simulation or execute further commands
}

您可以编译所有文件,如果发生错误,您可以退出。如果成功,您可以运行模拟。

答案 1 :(得分:1)

我找到了一个解决方法。我在.tcl中创建了一个文件,并将以下行放入.do脚本中:

cellForRow

因此,如果未生成该文件,GUI将不会退出。