前言
在实际应用中,经常会遇到句柄和new函数,但是对二者的意义一直没有搞明白。通过查阅资料,谈谈个人对句柄与new函数的理解,有错误还请各位批评指正!
句柄
通常以类class的名字声明一个句柄,如
driver drv;
在声明句柄drv的时候,drv会被初始化为null值,此刻还没有为其分配一个对象。
new函数
drv = new();
通过new函数,创建driver对象,并为其分配空间。同时,在new函数在为对象分配内存的时候,也会对其变量进行初始化,且会返回一个存储着对象内存的地址给句柄。因此句柄可以通过这个地址索引到指向的对象。
当然,我们也可以自定义new函数将变量赋予预设的初值。
如 class driver; logic a, b; function new(); a = 3; b = 2; endfunction endclass