| 比较点 | 任务 | 函数 |
| 输入输出 | 可以有任意多个输入输出 | 至少一输入,不能有输出和双向端口 |
| 调用 | 任务只能在过程语句中调用,而不能再连续赋值语句中调用 | 函数可以作为赋值操作的表达式,用于过程赋值和连续赋值语句 |
| 触发事件控制 | 任务不能出现always语句;可以包含延时控制语句(#),但只能面向仿真,不能综合 | 函数中不能出现always、#,这样的语句,要保证函数执行在零时间内完成 |
| 调用其他 | 可以调用其他任务和函数 | 只能调用函数,不能调用任务 |
| 返回值 | 通过输出端口传递返回值 | 通过函数名返回,只有一个返回值 |
| 其他说明 | 任务调用语句可以作为一条 | 函数调用语句不能单独作为 |
| 比较点 | 任务 | 函数 |
| 输入输出 | 可以有任意多个输入输出 | 至少一输入,不能有输出和双向端口 |
| 调用 | 任务只能在过程语句中调用,而不能再连续赋值语句中调用 | 函数可以作为赋值操作的表达式,用于过程赋值和连续赋值语句 |
| 触发事件控制 | 任务不能出现always语句;可以包含延时控制语句(#),但只能面向仿真,不能综合 | 函数中不能出现always、#,这样的语句,要保证函数执行在零时间内完成 |
| 调用其他 | 可以调用其他任务和函数 | 只能调用函数,不能调用任务 |
| 返回值 | 通过输出端口传递返回值 | 通过函数名返回,只有一个返回值 |
| 其他说明 | 任务调用语句可以作为一条 | 函数调用语句不能单独作为 |