我有一个名为my_class的类。在my_class中有一个名为my_port的类。 my_port参数化为其中一个参数为my_class。问题是,它们在不同的文件中,默认参数是my_class。我有一个my_class_pkg和my_port_pkg的包。如果我将my_port_pkg导入到my_class_pkg中,我仍然无法编译,因为my_port_pkg仍然需要能够看到my_class,因为它也使用该信息。这个交叉引用通常如何解决?systemverilog中的跨类/文件参考汇编
class my_port#(type T = my_class) extends base_class #(T);
//code here
endclass
和
class my_class
my_port#(something) X;
//code here
endclass
和
package my_class_pkg
import my_port_pkg::*;
`include "my_class.sv";
endpackage
和
package my_port_pkg
`include "my_port.sv";
endpackage
你可以显示一些代码,你的描述不是很清楚。你在my_checker中说,有一个类my_port。你的意思是嵌套声明或参考。 my_checker在哪里声明?进口报表在哪里?为什么不将my_class_pkg导入my_port_pkg工作? –
我已更新我的原始帖子。 my_class具有my_port的声明,my_port具有默认为my_class的参数化类型。这是否回答你的问题? – InternetDPS
仍然没有足够的代码。软件包在哪里?,哪里是进口?,哪里是my_checker? –