new()和new[]有什么区别?
new()和new[]有什么区别?
1、new[]的使用较为简单,一般用来开辟内存并初始化,常用于设置动态数组的大小。
int a[]; //声明动态数组
initial begina = new[3]; //为动态数组分配3个元素foreach (a[i]) a[i] = i; //元素初始化
end
2、new()用在systemverilog中OOP的构造函数;
构造函数除了分配内存外,还初始化变量,在默认情况下,将变量设置成默认的数值,二值变量为0, 四值变量为x, 也可以通过自定义的new函数将变量设置成你想要的数值;
class Transaction;logic[3:0] addr;logic[9:0] data;int dyn[];function new;addr = 8;data = 1;endfunction : new
endclass
Transaction tr; //声明一个句柄
tr = new(); //创建对象