【问题标题】:Parameters to Script脚本参数
【发布时间】:2018-07-10 23:19:53
【问题描述】:

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

我在这个问题 (Can we have variables in a Yosys script?) 中看到您可以在 TCL 解释器中运行 Yosys 脚本。有什么方法可以传递参数吗?

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

【问题讨论】:

    标签: yosys


    【解决方案1】:

    目前唯一的方法是使用环境变量和 TCL 脚本。比如你可以写一个TCL脚本test.tcl:

    yosys read_verilog $::env(VLOG_FILE_NAME)
    yosys synth -top $::env(TOP_MODULE)
    yosys write_verilog output.v
    

    然后在环境中设置VLOG_FILE_NAME和TOP_MODULE调用if:

    VLOG_FILE_NAME=tests/simple/fiedler-cooley.v TOP_MODULE=up3down5 yosys test.tcl
    

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

    【讨论】:

      【解决方案2】:

      我面临着类似的情况。当我正在研究解决方案时出现了这个问题。不过,我最终采用了不同的方法:

      我正在为我的顶级模块创建一个包装器,用 m4 语言编写。很简单,覆盖参数值,然后包含我的顶层模块定义。

      然后在 Makefile 中,我处理 wrapper.m4 文件,以创建生成的 wrapper.v 文件,该文件将输入到 yosys。

      我已经详细说明了解决方案here。

      【讨论】:

        猜你喜欢
        • 2011-06-27
        • 2021-03-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-18
        • 2011-12-21
        相关资源
        最近更新 更多