Tcl 出现错误时从命令行退出Modelsim
我正在使用一个.do文件,GUI和命令行(vsim-c)中的.tcl使用该文件在Modelsim 10.3c中进行模拟Tcl 出现错误时从命令行退出Modelsim,tcl,command-line-arguments,modelsim,Tcl,Command Line Arguments,Modelsim,我正在使用一个.do文件,GUI和命令行(vsim-c)中的.tcl使用该文件在Modelsim 10.3c中进行模拟 exec vsim -c -do DoFile.do 我需要的是: 如果发生错误,应退出modelsim并返回.tcl。否则,它应该模拟项目 如果我将行onerror{quit-f}放在我的.do文件中,GUI将在第一个错误时退出。所以,这并不舒服 我没有设法在tcl中使用onerror(警告:在宏中使用onerror命令)或$error(未知变量)我需要有关DO和tcl脚本
exec vsim -c -do DoFile.do
我需要的是:
如果发生错误,应退出modelsim并返回.tcl
。否则,它应该模拟项目
如果我将行onerror{quit-f}
放在我的.do
文件中,GUI将在第一个错误时退出。所以,这并不舒服
我没有设法在tcl中使用
onerror
(警告:在宏中使用onerror命令)或$error
(未知变量)我需要有关DO和tcl脚本的更多信息,但您可以在vcom上使用try catch(用于编译VHDL)或vlog(用于编译Verilog/SystemVerilog)。
下面是一个如何使用它的简短示例:
# 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
}
您可以编译所有文件,如果发生错误,您可以退出。如果成功,您可以运行模拟 我需要有关DO和Tcl脚本的更多信息,但您可以使用vcom上的try-catch(用于编译VHDL)或vlog(用于编译Verilog/SystemVerilog)。
下面是一个如何使用它的简短示例:
# 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将不会退出 我找到了一份工作。我在.tcl中创建了一个文件,并将以下行放入.do脚本中:
if [file exists ../Command_Line_Enable.txt] {
onerror { quit -f }
}
因此,如果没有生成该文件,GUI将不会退出 您的建议很好,但我有几个文件,其中包含大量的vcom
行。不,我只有一个.tcl脚本,用于启动多个模拟,每个模拟都有一个.do文件。您的建议很好,但我有几个文件,其中包含大量的vcom
行。不,我只有一个.tcl脚本,用于启动多个模拟,每个模拟都有一个.do文件。