导入systemverilog包作为另一个名称

时间:2017-04-26 20:45:32

标签: system-verilog uvm

是否有一种机制可以将systemverilog包作为另一个名称导入,类似于Python中可用的名称?

我有一个我需要导入的包,包的名称是top_pkg。我想将其导入subsystem_pkg

1 个答案:

答案 0 :(得分:5)

有一种机制,但这并不容易。您可以做的是创建导入subsystem_pkg的{​​{1}}。然后你可以top_pkgexport导入的所有符号,这样它们就好像直接在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。