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

sta*_*nri 0 system-verilog

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

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

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

是否有一种语法可用于指定多个模块通用的typedef?

Qiu*_*Qiu 5

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

例如:

package ComplexPkg;
  typedef struct{
    shortreal i, r;
  } Complex;
endpackage: ComplexPkg
Run Code Online (Sandbox Code Playgroud)

然后:

import ComplexPkg::Complex;
Run Code Online (Sandbox Code Playgroud)

有关packages您的更多信息,请参阅IEEE 1800-2012,p.738.