我们可以在 Yosys 脚本中有变量吗?

Fri*_*dFX 4 yosys

我想通过分解常见参数来使我的 Yosys 脚本更加 DRY,例如在以下示例中:

read_liberty -lib  /long/path/to/lib/file
...
dfflibmap -liberty  /long/path/to/lib/file
...
abc  -liberty   /long/path/to/lib/file
Run Code Online (Sandbox Code Playgroud)

我还没有找到声明或取消引用变量的方法,有没有像 TCL ( set lib_file /long/path/to/lib/file) 或 Bash ( export lib_file=/long/path/to/lib/file) 那样的方法?

Cli*_*nna 6

你可以用TCL。详情请参阅yosys -h tcl。使用yosys -c <script_file>(而不是yosys -s <script_file>本地 Yosys 脚本)运行 TCL脚本。

我现在在提交 b8d7f57 中为 .tcl 文件添加了前端检测。因此,从 b8d7f57 开始,您还可以yosys <script_file>用来运行 TCL 脚本,如果<script_file>.tcl.

  • 非常感谢,这简化了一些事情。为了其他人的利益:除了使用 `-c` 选项运行 Yosys 之外,您还需要在脚本顶部添加行 `yosys -import` 以使所有 Yosys 命令可用于 TCL 解释器并重命名`proc` 调用 `procs`,因为 `proc` 是 TCL 保留字。 (2认同)