我正在使用 GUI 和命令行 (vsim -c) 中的 .tcl 使用的 .do 文件在 Modelsim 10.3c 中进行模拟
exec vsim -c -do DoFile.do
我需要的是:
如果发生错误,modelsim应该退出并返回到.tcl
。否则它应该模拟该项目。
如果我将 onerror { quit -f }
行放入 .do
文件中,GUI 将在出现第一个错误时退出。所以,这不太舒服。
我没有设法在内部使用onerror
(警告:在宏内使用onerror命令
)或$error
(未知变量) tcl
最佳答案
我需要有关您的 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 - 出现错误时从命令行退出 Modelsim,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39163920/