我們先看來年下面的代碼:
class test;
task static bar();
……
endtask
class test;
static task bar();
……
endtask
在 SystemVerilog 中,這兩種聲明方式有本質區別,涉及方法的靜態/非靜態屬性以及局部變量的生命周期。
1. task static bar(); ... endtask
(靜態局部變量的非靜態方法)
class test;task static bar(); // 非靜態方法,但局部變量是靜態的int count = 0; // 靜態變量(所有實例共享)count++;$display("count = %0d", count);endtask
endclass
-
方法類型:非靜態方法(實例方法)
-
調用方式:必須通過類實例調用(
my_test.bar()
)