我在整个systemverilog代码中使用了大量自定义类型.
目前我在每个文件中都有typedef的副本,但是如果我可以在头文件中指定typedef并且在每个模块中只包含一个头文件,那将会很棒.这将使我不必维护typedef的多个副本,并且还会显着清理我的代码.
我试图通过将typedef粘贴到头文件中来尝试这样做,但是工具(Vivado 2014.1)不喜欢typedef在模块之外并且我得到语法错误的事实.
是否有一种语法可用于指定多个模块通用的typedef?
您可以在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.