有没有办法将参数(或命令行参数)传递给 Yosys 脚本?
我在这个问题中看到(我们可以在 Yosys 脚本中有变量吗?)您可以在 TCL 解释器中运行 Yosys 脚本。有什么方法可以传递参数吗?
我这样做的原因是我有一个脚本,我希望能够使用 Verilog 文件的参数化路径调用该脚本。当然,这是一个常见的需求,必须有一些简单的方法来做到这一点,但我没有看到。
目前唯一的方法是使用环境变量和 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_NAME和TOP_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 语句。