(?TCL)脚本从外壳
与测试平台运行的ModelSim作为参数,我想打一个脚本,它可以从像shell执行: ./myscript -test1或tclsh的myscript.tcl -test1(?TCL)脚本从外壳
我希望它打开ModelSim,编译单元,加载所需的测试台,运行仿真。测试的名称将是一个参数。我已经制作了包含modelsim命令的宏文件(.do),以编译&来模拟所需的单位(+将信号添加到波形)。我在问,因为脚本编写不是我的专业领域。
因此,这里是我的问题:
如何,,告诉“的ModelSim(启动)做在指定的文件中的命令?
TCL是我正在寻找的语言//在TCL中可行吗?如果是这样,我应该熟悉哪些命令?
或者可能shell脚本已经足够,我应该在参考手册中查找特定的Modelsim命令?
感谢您的时间!
编辑:发布我为大家使用的小例子。用法:./foo.tcl测试名
#!/usr/bin/tclsh
# params
set testname [lindex $argv 0]
set testlist {test1 test2 test3}
# run vsim test $testname
if { [ lsearch $testlist $testname ] >= 0 } {
puts "Test found. Executing..."
open "|vsim -do $testname "
} else { puts "Test not found on the list!" }
您可以使用-do <arg>
命令行选项任意命令启动vsim
。参数可以是包含任意Tcl代码或Tcl命令字符串的.do文件的文件名(“run -all; quit”对于非交互式命令行模式(-c
)非常有用)。
Tcl是一种全功能的脚本语言。它可以处理您需要完成的任何自动化任务。最终,你不能使用Modelsim逃脱Tcl,因为几乎所有东西都在内部运行。我会建议你在.do文件中拼凑你需要的东西,然后使用-do
选项运行。
如果你创建一个.tcl脚本(.do文件可以运行QuestaSim/ModelSim命令和tcl命令),你可以做你想做的一切,包括运行其他的.do/.tcl文件。例如:
的ModelSim/QuestaSim命令行:
就像你所习惯的......
$: do MyDoFile.do
...而不是使用一个Tcl文件,它可以调用你的。做文件:
$: source ./MyDirectory/MyTCLScript.tcl
随着在那个MyTCLScript中。TCL可以有字面上如下:
在
MyTCLScript.tcl
:... #Use tabs for aliases source ./MyDirectory/OtherDirectory/OtherTCLScript.tcl MyAlias1 MyAlias2 do ./MyDoFile.do ...
最后,让你使用运行单个测试平台和排序命令,我建议在看的Tcl关于别名的文档。这里虽然是一个例子:
在
OtherTCLScript.tcl
:... alias MyAlias1 { eval <command><command flags> } alias MyAlias2 { eval <command><command flags> } ...
来源: 1.经验 2.奎斯塔SIM用户手册
您预计将努力解决您的在你向他们寻求帮助之前,你有自己的问题。另外,你一般只会在这里一次询问*一个问题。因此,选择这个问题的一个领域,并开始研究该领域需要做什么。当/如果遇到问题,请回过头来,在这里或在更合适的堆栈交换站点上提问。 – 2014-10-08 18:07:41