我需要实例化一些在程序块期间弹出需求的模块。但我不允许在程序块中实例化。我应该在其他地方实例化这些模块,以便我可以在程序块中访问它们。
我只需要1个实例化,所以我没有使用生成语句。我只是使用... Center data_cent(.clk(clk),.dummy_4(dummy_6));
但是在检查语法时它会给出一个错误,指出“data_cent不是任务”。我无法弄清楚这个问题。如果有人可以提供帮助,我会很高兴。
答案 0 :(得分:1)
您可以在模块内实例化它,但在任何程序块之外。如果要访问子实例的内部网络,可以使用分层说明符。例如,如果您的实例包含名为foo
的内部网:
module top;
Center data_cent(.clk(clk),.dummy_4(dummy_6));
initial begin
$display(data_cent.foo);
end
endmodule
SystemVerilog还提供bind
构造。
答案 1 :(得分:0)
根据您的描述,我可以想到两种可能性: