К сожалению, синтаксис SystemVerilog не позволяет этого.Специальный метод new
не является статическим методом, и дескриптор класса должен существовать в некоторой переменной из-за способа управления памятью класса.Вы можете обойти это, обернув new
вокруг статического метода:
class A;
static function A create();
create = new();
endfunction
endclass
...
use_a(A::create());
Кстати, у UVM есть методы create
в BCL, и вам почти никогда не нужно напрямую вызывать new()
.