在Verilog中,任务task和函数function之间有明显的区别,例如任务可以消耗时间而函数不能,函数里面不能带有诸如#100的时延语句或诸如@(posedge clock)、wait(ready)的阻塞语句,也不能调用任务(但是在systermverilog 中却可以调用task),还有verilog中的函数必须有返回值,并且返回值必须被使用,例如用到赋值语句中(也就是必须有等式赋值被使用)。
关于verilog中任务task和函数function的具体用法和区别参考我写过的一篇文章;
verilog中的任务task和函数function用法及区别
systemveilog中函数和任务的使用方法
1、一般情况下,不带参数的子程序在定义或调用时不需要带空括号();
2、begin...end为可选的</