本文仅讨论verilog,systemverilog中的情况会有所不同。
task和function提供了一种将大型程序分解为较小的程序的方法,以便于阅读和调试。
本文讨论了task和function之间的区别,描述了如何定义和调用task和function。
task和function之间的区别:
以下规则区分了task和function:
—function应在一个仿真时间单位中执行;task可以包含时间控制语句。
—一个function不能调用task;task可以启用其他task和function。
—一个function应至少有一个input类型参数,并且不得有output或input类型参数;task可以有任何类型的参数。
—function应返回单个值;task不应有返回值。
function的目的是通过返回单个值来处理输入值。一个task可以支持多个目的,并且可以计算多个结果值。然而,只有output或inout类型参数
从task调用中传递结果值。
function可以在表达式中用作操作数;该操作数的值是函数返回的值。