一 new() 构造函数
(1)new 函数左边的句柄类型,决定了调用哪个类的new函数
(2)new() 函数 ,不等价于 new[]
(3)对象,不等价于 对象的句柄
我们知道,在systemverilog语言规范中规定,如果一个类没有显式地声明构造函数(new()),那么编译仿真工具会自动提供一个隐式的new()函数。这个new函数会默认地将所有属性变量。初始化为默认值(“0”:2状态变量,“x”:4状态变量)
还是看下面的这个例子。
module tb;// program 亦可
class transaction ;rand bit [31:0] src,dst;string mac_name;function new(string name);$display("hello,cuurent name is %s",name);endfunction:newfunction print();// print() = print(void) , 代表不需要传递参数$display("hahahahha");endfunction:print
endclassinitial begintransaction T;T = new("systemverilog");// <1>创建对象