sv中数据生命周期

sv 中增加了大量的数据类型,对比verilog sv 更接近c c++,所以就要更加关心数据的作用域和生命周期。
c c++ 中变量分为动态变量和静态变量,全局变量和局部变量。sv 中根据声明周期将变量分为动态变量和静态变量
automatic 和static:

  1. 局部变量在作用域中存在,离开作用域就会被销毁。也就是function 和task 被调用时变量被创建,调用结束后变量即被销毁。
  2. 全局变量一直存在,例如在module 中的变量,一般可以理解为电路,创建后就不可能销毁,仅仅是停用。
  3. 静态变量由于不会被调用结束销毁,可以被其他方法和类共享使用。
  4. 方法也会定义为静态和动态,静态方法中的所有变量也是静态变量,动态变量中的变量默认是动态变量,但是可以被声明为静态。
  5. 静态变量需要被声明时的同时做初始化。
  6. 与c c++ 的程序一致,函数外的所有变量都是静态变量。
  7. module interface program 中的所有变量都默认static.

你可能感兴趣的:(system,verilog,systemverilog)