#systemverilog# 关键字之 变量声明周期与静态方法关系探讨
我们先看来年下面的代码:
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()
)