是否有一种机制可以将systemverilog包作为另一个名称导入,类似于Python中可用的名称?
我有一个我需要导入的包,包的名称是top_pkg
。我想将其导入subsystem_pkg
答案 0 :(得分:5)
有一种机制,但这并不容易。您可以做的是创建导入subsystem_pkg
的{{1}}。然后你可以top_pkg
从export
导入的所有符号,这样它们就好像直接在top_pkg
内声明一样。通常,只有那些在包内声明的符号才能导入,不是包装进口的(有时称为进口链)。 subsystem_pkg
命令链接导入。
为此目的难以实现的原因是通配符适用于进口和出口。您想要链接的每个符号都必须显式出现在链接包中。例如
export
第一个package top_pkg;
int a,b,c,d;
endpackage
package subsystem;
import top_pkg::*;
import top_pkg::b;
export top_pkg::*;
export top_pkg::c;
int e = d;
endpackage
语句表示在top_pkg 候选人中输入所有符号进行导入;它实际上并没有导入任何东西。第二个import语句显式导入import
。第一个b
语句表示要导出从export
导入的任何符号,此时此符号仅为top_pkg
。第二个b
语句隐式导入,然后显式导出export
。最后一个语句导致隐式导入c
,以及隐式导出' d'。
因此,当您导入d
时,您会从subsystem_pkg
获取符号b,c和d以及本地声明的`e。