我正在尝试在 Vivado GUI Tcl 控制台中执行一个 tcl 脚本,我的脚本使用一个参数来决定必须配置哪种类型的运行(合成器、实现、位元等)。
我知道,如果脚本在 Vivado 命令行模式下执行,则使用 -tclargs
可以传递参数。就像是:
vivado -mode batch -source <filename> -tclargs <arguments>
我在 Vivado gui 模式下尝试了相同的操作,但出现错误。
ERROR: [Common 17-170] Unknown option '-tclargs', please type 'source -help' for usage info.
运行
'source -help'
:Syntax:
source [-encoding <arg>] [-notrace] [-quiet] [-verbose] <file>
Usage:
Name Description
------------------------
[-encoding] specify the encoding of the data stored in filename
[-notrace] disable tracing of sourced commands
[-quiet] Ignore command errors
[-verbose] Suspend message limits during command execution
<file> script to source
通过查看
-help
我感觉这是不可能的。另外,我找不到任何这样做的文件。我想知道是否有任何方法可以实现这一目标。 最佳答案
source
命令不设置参数;它更像是 C 的 #include
,而不是其他任何东西。因此,如果您使用 source
的脚本需要设置 argv
和 argc
- 就像脚本作为程序运行一样 - 那么您应该在 set
之前对它们进行 source
。就 Tcl 而言,它们是普通变量;它们恰好是默认设置的。
您可能还需要将 argv0
设置为脚本。一些程序期望在非交互模式下运行时。
set argv [list "a b c" foo bar 123]
set argc [llength $argv]
set argv0 theScript.tcl
source $argv0
关于tcl - 如何在 Vivado GUI tcl 控制台中将参数传递给 tcl 脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39202475/