出错时从命令行退出 Modelsim

Quit Modelsim from command line on error

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

exec vsim -c -do DoFile.do

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

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

我没能在 tcl

中使用 onerrorwarning: onerror command for use within macro)或 $error(未知变量)

我需要有关您的 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
}

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

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

if [file exists ../Command_Line_Enable.txt] {
     onerror { quit -f }
}

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