无法在systemverilog中导出软件包

时间:2019-03-22 01:19:40

标签: package system-verilog

我试图制作一个大的包,以导出子包,以便在添加新的子包时不对测试文件产生任何依赖性。为此,我只是按照以下步骤操作,但出现了编译错误,似乎导出无法如LRM中所述正常运行。我的代码中有没有遗漏的地方?

package sub_pkg_A;
  ..
endpackage

package sub_pkg_B;
  ..
endpackage

// just import and export
package top_pkg;
   import sub_pkg_A::*;
   import sub_pkg_B::*;
   export sub_pkg_A::*;
   export sub_pkg_B::*;
endpackage

// test file
module my_test;
    import top_pkg::*;
    ..
endmodule

1 个答案:

答案 0 :(得分:1)

问题在于通配符导入语句import pkg::*;不会导入任何标识符,除非存在对该标识符的明确引用。

package sub_pkg_A;
  int A,B,C;
endpackage

// just import and export
package top_pkg;
   import sub_pkg_A::*; // A, B, C become candidates for importing
   int D = A; // imports A
   export sub_pkg_A::*; // exports A
   export sub_pkg_A::B; // imports/ exports B

endpackage

// test file
module my_test;
    import top_pkg::*; // A, B, D become candidates for importing. 
    ..
endmodule