SystemVerilog在任务task和函数function方面做了很多的改进,使其更加接近于C语言,从而使代码的编写变得更加容易,尤其是在处理参数传递上面。
3.1 过程语句
SystemVerilog从C和C++中引用了很多操作符和语句。下面就来简单介绍几点。
1)for循环,在for循环中定义循环变量,它的作用范围仅限于循环内部,从而有助于避免一些代码漏洞。
for (int i=0;i<10;i++)
2)自动递增符/自动递减符,++/–,既可作前缀,也可作后缀。
3)标识符,可以在begin或fork语句中使用标识符,那么在相对应的end或join语句中放置相同的标号。同样,你也可以将标识符放在endmodule、endtask、endfunction等语句中。
initial
begin:example
......
end:example
4)循环功能,相比于Verilog,循环功能增加了continue,用于在循环中跳过本轮循环剩下的语句而直接进入下一轮;增加了break,用于终止并跳出循环。
3.2 任务、函数以及void函数
在Verilog中,任务task和函数function之间有着明显的区别,其中task可以消耗时间而函数不能。SystemVerilog允许函数调用任务,但只能在由fork…join_none语句生成的线程中调用。
如果有一个不消耗时间的S