我在整个systemverilog代码中使用了大量自定义类型。
目前我在每个文件中都有typedef的副本,但是如果我可以在头文件中指定typedef并在每个模块中只包含一个头文件,那将会很棒。这将使我不必维护typedef的多个副本,并且还会显着清理我的代码。
我试图通过将typedef粘贴到头文件中来尝试这样做,但是工具(Vivado 2014.1)不喜欢typedef在模块之外并且我得到语法错误的事实。
我可以用一种语法来指定多个模块共有的typedef吗?
答案 0 :(得分:5)
您可以在package
中定义所有类型,只需在代码中的任意位置导入它们。
例如:
package ComplexPkg;
typedef struct{
shortreal i, r;
} Complex;
endpackage: ComplexPkg
然后:
import ComplexPkg::Complex;
有关packages
的更多信息,请参阅IEEE 1800-2012,第7页。 738。