导入systemverilog包作为另一个名称

noo*_*ntu 1 system-verilog uvm

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

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

dav*_*_59 5

有一种机制,但这并不容易.你可以做的是创建一个subsystem_pkg导入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
Run Code Online (Sandbox Code Playgroud)

第一个import声明说要在top_pkg 候选者中输入所有符号进行输入; 它实际上并没有导入任何东西.第二个import语句显式导入b.第一个export语句说要导出从中导入的任何符号,top_pkg此时此符号仅为b.第二个export语句隐式导入,然后显式导出c.最后一个语句导致隐式导入d,以及隐式导出'd'.

因此,当您导入时subsystem_pkg,您将获得符号b,c和d top_pkg以及本地声明的`e.