在systemverilog头文件中存储自定义类型

时间:2014-08-15 07:21:22

标签: system-verilog

我在整个systemverilog代码中使用了大量自定义类型。

目前我在每个文件中都有typedef的副本,但是如果我可以在头文件中指定typedef并在每个模块中只包含一个头文件,那将会很棒。这将使我不必维护typedef的多个副本,并且还会显着清理我的代码。

我试图通过将typedef粘贴到头文件中来尝试这样做,但是工具(Vivado 2014.1)不喜欢typedef在模块之外并且我得到语法错误的事实。

我可以用一种语法来指定多个模块共有的typedef吗?

1 个答案:

答案 0 :(得分:5)

您可以在package中定义所有类型,只需在代码中的任意位置导入它们。

例如:

package ComplexPkg;
  typedef struct{
    shortreal i, r;
  } Complex;
endpackage: ComplexPkg

然后:

import ComplexPkg::Complex;

有关packages的更多信息,请参阅IEEE 1800-2012,第7页。 738。