如何使用 YOSYS 导入 sv 包

how do I import sv packages using YOSYS

我想知道如何在使用 YOSYS 时导入 sv 包。例如 在文件 my_pkg.sv 我有以下

package my_pkg;
      parameter KL=64;
endpackage

现在在文件中 top.sv 我有以下内容

import my_pkg::*;
module top(
    input logic i_clk,
    output logic o_done
);
endmodule

Yosys 给出以下错误:

top.sv:1: ERROR: syntax error, unexpected TOK_ID

我期待 YOSYS 接受语法,因为我只是将包导入顶级文件。这是在模块中导入包的所有内容的常用方法,因此避免每次在模块中使用包参数时都必须在包名称前加上前缀。这适用于 Modelsim、VCS 以及 DC。有没有办法在 Yosys 中完成此操作?

看起来 Yosys (Yosys 0.9+1706 git sha1 ff4ca9dd, gcc 8.4.0-1ubuntu1~18.04 -fPIC -Os) 不支持顶级导入​​。一种可能的解决方法是使用工具将 SystemVerilog 代码转换为 verilog,然后将 verilog 代码提供给 Yosys。一个这样的工具是来自 Zach Snow 的 sv2v(提示是 kudo to Zach)在 https://github.com/zachjs/sv2v.