硅芯思见:【137】SystemVerilog中的生命周期lifetime
通过上述示例,关于SystemVerilog中的生命周期我们可以得到一些结论:
Ø 声明于module/program/interface/checker/task/function之外的变量,具有静态生命周期;
Ø 位于module/program/interface/checker/task/function之外的变量是不能通过automatic进行修饰声明的;
Ø 声明于module/program/interface/checker中,但是位于task/function之外,则变量是module/program/interface/checker中的局部变量,具有静态生命周期,并且不能声明为automatic;
Ø 声明于静态方法和块中的变量可以显式的指定为automatic,这时这些变量生命周期仅存在于方法或者块的每次调用中,并且在每次调用时,这些变量都会重新被初始化;
Ø 对方法直接进行静态或者动态生命周期声明,从而可以影响方法中所有变量的生命周期属性;
Ø 对module/program/interface/checker中的方法直接进行动态或者静态生命周期的声明,可以影响方法中变量的生命周期的属性;
Ø 对module/program/interface/checker指定automatic或者static从而影响定义在这些结构中的方法或者块中的变量的生命周期;
Ø 具有静态生命周期的方法实际上作用对象是方法中的变量或者参数;
Ø 静态变量表示用户期望在仿真开始时对变量仅进行一次初始化;
Ø 变量如果没有在过程块或者方法中,是不能使用automatic进行声明;
Ø 静态变量声明的时候进行的初始化操作将发生在所有initial或者always语句启动之前;