我正在尝试在 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 的脚本需要设置 argvargc - 就像脚本作为程序运行一样 - 那么您应该在 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/

10-11 14:06
查看更多