SV中class的properties和methods默认都是public的,但是可以声明为local和protected。
一个properties声明为local类型的,则只在该class中的methods可以调用该变量。即使subclass也不可以调用。
local interger i;
一个properties或者methods声明为protected,与local类似,但是在subclass中可见。
extern protected virtual automatic task_name();
SV中的Task和Function不需要,必须加一个begin..end来指明body,但是需要加入标识符。
task muliple_line;
......body...
endtask :multiple_line
子功能模块(funciton)在执行到子程序的最后一行就返回,将返回值赋给与功能同名的变量,也可以显式的调用return来返回。
在function中不能再声明一个同名的var,会造成冲突。
task内部是不会返回值的,但是也可以调用return,但是不带返回值。program直接显示调用return。
数组变量到function的传递,通过ref模块或者直接数组变量(数据量会比较大)
SV中module和program,package的子程序默认是静态存储的,当需要动态存储时,仍然需要显