为什么要在systemverilog中使用两次“ new”?

时间:2018-08-10 01:02:59

标签: system-verilog

您能让我知道为什么我们必须在systemverilog中两次输入“ new”关键字吗?

 class MyClass;
   int number; 
   function new(); 
     number = 0; 
   endfunction
 endclass

 module test;
   MyClass test1 = new();
 endmodule

如您所见,其中使用了两次“ new”关键字。

您能告诉我为什么我们需要两次使用吗?

1 个答案:

答案 0 :(得分:1)

function new();
    number = 0; 
endfunction 

提供函数new()的实现。当我们打电话时:

MyClass test1 = new();

我们正在创建test1。为了创建它,我们调用函数new(),我们在上面定义了它的实现。当我们调用new()时,将确保number的属性test1初始化为0(因为这是new()内部发生的事情)。

我希望我的解释清楚。