tcl - 在继续 TCL 脚本之前如何等待 Modelsim Simulations 完成

标签 tcl vhdl modelsim

我正在尝试在 Modelsim 中执行回归测试。我调用一个 TCL 脚本来编译我的源文件并启动 vsim。我启动了一个 .do 文件,它运行了一系列测试平台,所有这些测试平台都输出结果文件。我要添加的是一个自动检查器,用于验证结果文件是否与已知的良好运行相匹配。问题是在启动modelsim 之后,TCL 脚本在执行检查器“results_pass.py”之前不会等待模拟完成。

set nice_pid [open "|$modelsim_dir/vsim.exe -do do_files/vsim.do -novopt -gui"]
cd ../../Scripts
set script_name "results_pass.py"
set tb_name "rcp"
call_python $script_name $tb_name
vwait forever

对于那些想知道我为什么要调用 Python 脚本的人。主要是因为我对 TCL 知之甚少,但没有时间去将遗留的 TCL 脚本更改为 Python。

无论如何,我相信我可以在第 1 行和第 2 行之间保留一些东西,它会等待来自 modelim 的一些指示,表明它已完成执行我的 .do 文件。任何建议表示赞赏。

最佳答案

你试过VUnit吗? https://github.com/LarsAsplund/vunit

它是一个开源的 VHDL 测试框架,已经可以满足您的需求。

它可以并行运行测试以及使用不同的泛型值。

一个测试台可以有多个测试,这些测试可以在独立的模拟中运行,也可以在同一个模拟中运行。

它可以发出 Jenkins 可以理解的测试报告,其中包含测试输出、运行时间和状态。

它带有一个 VHDL 库的便利函数,例如 check_equal。

它具有完整的 VHDL 依赖性扫描,因此只需添加文件,VUnit 就会知道要增量编译什么以加快编辑/编译/运行周期。

可以运行用户定义的模拟后检查,以验证例如输出文件是否符合黄金数据。

除了批量运行之外,它还可以在带有单个标志的 GUI 中启动测试。

它支持 Modelsim 和 GHDL,Aldec 和 NVC 即将推出。

我个人用它来管理 200 多个测试用例。

免责声明我是主要作者之一。
它的创建是为了避免世界上的每个 VHDL 团队使用不同质量的内部脚本重新发明轮子。

关于tcl - 在继续 TCL 脚本之前如何等待 Modelsim Simulations 完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30717730/

相关文章:

tcl - 对 tclsh 使用内联命令

tcl - 包需要 Tk - 在 tclsh 中不起作用

TCL 在字符串中设置特殊字符

VHDL 是在 Generic 中使用字符串的有效语法吗?

compiler-errors - 如何为 Questa Modelsim 2020 编译 UVM 库?

vhdl - Modelsim在 Debug模式下更改变量的显示值基数

string - TCL 中的两个星号字符串匹配

VHDL的rising_edge函数改为使用下降沿?

vhdl - 我可以在 VHDL 中创建嵌套的 with-select-when 语句吗?

vhdl - 信号分配在进程中如何工作?