tcl - 出现错误时从命令行退出 Modelsim

标签 tcl command-line-arguments modelsim

我正在使用 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/

相关文章:

VHDL整数范围包括在内? FPGA 与仿真的区别

语法 TCL : missing operator at _@_

tcl - 用TCL编写程序

linux - 打开愿望而不窃取焦点

bash - 如何在 bash 中使用变量指定命令行参数

windows - 如何将命令行上的双引号转义为 .vbs 脚本?

linux - 如何从 tcl 文件更改用户

bash - 如何在 Bash getopts 内置函数中使用长选项?

tags - 有没有办法断言设计中的所有信号在复位期间在上升时钟上初始化?

hardware - a <= a + 1 是 VHDL 中的一个好习惯吗?