在System Verilog中,begin end是可选的
任务
task mytask1 (output logic [ ] x,
input logic y);
...
endtask
还可以使用ref类型的参数对变量进行引用,类似于C中的指针,但ref不允许进行数组参数的传递
还可以使用缺省参数
增加了return语句
从函数中返回一个数组
方法一:定义数组类型,在函数声明中使用该类型
typedef int fixed_array5[5];
fixed_array5 f5;
function fixed_array5 init(int start);
foreach(init[i])
init[i] = i + start;
endfunction
init函数创建了一个数组,该数组的值被拷贝到数组f5中,但如果数组很大,会引起性能上的问题
方法2:通过引用来进行数组参数的传递,以ref参数的形式将数组传递到函数中
function void init(ref int f[5], input int start);
foreach (f[i])
f[i] = i + start;
endfunction
时间值
$time 返回根据模块时间要求进行舍入的整数
$realtime 返回带小数部分的完整实数
// 时间标度(9-ns,12-ps),小数点后的数据精度,时间值之后的后缀字符串,显示最小宽度
$timeformat(-9, 3, "ns", 8)