静态变量与动态变量的区别
在SV中,将数据的生命周期分为动态(automatic)和静态(static)。
局部变量的生命周期同其所在域共存亡,如function/task中的临时变量,在其方法调用结束后,临时变量的生命也将终结,所以它们是动态生命周期。
全局变量伴随着程序开始执行到结束一直存在,它们是静态生命周期。
如果数据变量被声明为automatic,那么在进入该进程/方法后,automatic变量会被创建,而在离开该进程/方法后,automatic变量会被销毁。而static变量在仿真开始时就会被创建,自身不会被销毁,可以被多个进程/方法共享。
只有声明为automatic的变量才是动态变量,其他类型默认为static静态类型。