出错时从命令行退出 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
中使用 onerror
(warning: 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 将不会退出。
我正在使用一个 .do 文件,GUI 和 .tcl 在命令行 (vsim -c) 中使用该文件在 Modelsim 10.3c 中进行模拟
exec vsim -c -do DoFile.do
我需要的是:
如果发生错误,modelsim 应该退出并 return 到 .tcl
。否则它应该模拟项目。
如果我将行 onerror { quit -f }
放入我的 .do
文件中,则 GUI 会在出现第一个错误时退出。所以,这不是很舒服。
我没能在 tcl
中使用onerror
(warning: 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 将不会退出。