在Verilog-2001中增加了一个新的关键字:automatic。该关键字可以让任务或函数在运行中从新调用该任务和函数。

      function automatic [63:0] factorial;
      input [31:0] n;
      if (n == 1)
      factorial = 1;
      else
      factorial = n * factorial(n-1);
      endfunction