脚本参数

jgo*_*ers 4 yosys

有没有办法将参数(或命令行参数)传递给 Yosys 脚本?

我在这个问题中看到(我们可以在 Yosys 脚本中有变量吗?)您可以在 TCL 解释器中运行 Yosys 脚本。有什么方法可以传递参数吗?

我这样做的原因是我有一个脚本,我希望能够使用 Verilog 文件的参数化路径调用该脚本。当然,这是一个常见的需求,必须有一些简单的方法来做到这一点,但我没有看到。

Cli*_*nna 5

目前唯一的方法是使用环境变量和 TCL 脚本。例如,您可以编写一个 TCL 脚本test.tcl

yosys read_verilog $::env(VLOG_FILE_NAME)
yosys synth -top $::env(TOP_MODULE)
yosys write_verilog output.v
Run Code Online (Sandbox Code Playgroud)

然后在环境中调用 if withVLOG_FILE_NAMETOP_MODULEset :

VLOG_FILE_NAME=tests/simple/fiedler-cooley.v TOP_MODULE=up3down5 yosys test.tcl
Run Code Online (Sandbox Code Playgroud)

如果您从 shell 脚本运行 Yosys,您也可以简单地export VLOG_FILE_NAME=...在脚本顶部运行类似的内容。同样,export当您从 Makefile 运行 Yosys 时,您可以使用Makefile 语句。