在Verilog FPGA中有task和function两种说明语句:函数的目的是通过返回一个值来响应输入的值;而任务则是支持多种目的,能计算多个结果值,这些结果值只能通过被调用的任务的输出或者总线端口送出。
两者相关的用法定义在这里就不赘述,我们直接上大家最想要的干货吧!!!不多bb!哈哈哈。
task(任务)和function(函数)主要有一下四个不同点:
- 仿真时间单位:任务可以在自己的内部定义自己的仿真时间单位,而函数只能与主模块共用一个仿真时间单位。
- 任务与函数相当于包含的关系:函数包含于任务,任务包含函数:即:函数不能启动任务,而任务可以包含其他任务和许多函数。
- 返回值:任务不返回值,而函数当且仅返回一个值。
- 输入变量:任务可以没有或者有多个输入的变量,而函数只能有一个输出变量(因为其对应一个输出返回值)。